Ünite 8: Bulut Platformunda Program Geliştirme

Bulut Platform

Bulut bilişim gerek donanım gerek yazılım servislerini son kullanıcıya hizmet olarak sunabilen, dinamik olarak ölçeklendirilebilen yapılara verilen genel isimdir. Buradaki bulut kelimesi İnternetin yerine kullanılmaktadır. Zira günümüzde uzaktaki bir kaynağı son kullanıcıya hizmet olarak servis etmenin en kolay yolu internettir.

Günümüzde kullanılan anlamı ile ilk bulut bilişim uygulaması, 1999 yılında ortaya çıkan Salesforce.com şirketine aittir. Şirket basit bir web sayfası üzerinden kurumsal yazılım uygulamalarını sunmuştur.

2000’lerin başındaki “dot-com” olayından sonra, Amazon.com şirketi bulut bilişimin gelişmesinde anahtar bir rol oynadı. İlk gerçek ticarileşmiş bulut bilişim hizmeti olan Amazon S3, 2006 yılında hizmete girmiştir.

2008 yılında NASA’nın OpenNebula isimli uygulaması, geliştirilen ilk açık kaynak kod yazılım (open-source software) olarak tarihteki yerini almıştır. Uygulama sayesinde kullanıcılar özel ve karma bulutları oluşturabilmektedirler.

2008 yılında Microsoft şirketi, Azure isminde bir bulut bilişim platformu yapacağını duyurmuştur. Microsoft şirketine ait ürün 2010 yılında Windows Azure olarak raflardaki yerini almıştır. 2010 yılında ise Rackspace Hosting ve NASA tarafından ortak geliştirilen OpenStack isimli yazılım kullanıcıların beğenisine sunulmuştur. 2011 yılında IBM şirketi IBM SmartCloud isimli ürününü piyasaya sürmüştür. 2012 yılına gelindiğinde ise Oracle şirketi Oracle Cloud isimli ürün ile piyasadaki yerini almıştır. 2014 yılındaWindows Azure ürününün ismi Microsoft Azure olarak değiştirilmiştir. Aynı yıl Google şirketi, Google App Engine isimli bulut bilişim yazılımını tanıtmıştır.

Bulut Bilişim Erişim Modelleri

Bulut bilişim sistemleri erişim modellerine göre dört sınıfa ayrılmaktadır. Bu sınıflandırma genel bulut, topluluk bulut, özel bulut ve karma bulut şeklindedir.

Genel Bulut Yapıları

Genel bulut yapılarında depolama, yazılım ve diğer kaynaklar, hizmet sağlayan şirket tarafından son kullanıcılara sunulur. Hizmet, kullandığın kadar öde modeli ile ya da ücretsiz olarak kullanıcılara fatura edilebilir. Sunuculara erişim, İnternet üzerinden sağlanır. Amazon EC2, Google App Engine, SalesForce.com vb. ürünleri genel bulut yapısı içerisinde sayabiliriz.

Topluluk Bulut Yapıları

Topluluk bulut hizmet sağlayıcıları, ortak ihtiyaçları olan özel bir topluluktaki çeşitli organizasyonlar arasında altyapının paylaşılmasına imkân verir. Örneğin medya kuruluşları, sağlık sektöründe olan kuruluşlar, ortak bir bulut kullanarak bilgi işlem ihtiyaçlarını bu topluluk bulut yapısı ile karşılayabilirler.

Özel Bulut Yapıları

Özel bulut yapıları sadece tek bir organizasyon için işletilen bulut yapılarıdır. Altyapı, şirket tarafından veya dışarıdaki bir kurum tarafından yönetilebilir. Bu tür yapılar, diğer bulut yapılarının avantajlarını içermelerinin yanı sıra, yapı üzerinde şirketin daha çok denetim imkânı olmasını sağlar. Bu tür yapılar daha çok şirket içi ağlar üzerinde çalışır.

Karma Bulut Yapıları

Karma bulut yapıları, iki veya daha fazla özel, topluluk veya genel bulut yapılarının birleşmesinden oluşur. Bu tür yapılarda, kurumlar özel bulut mimarilerinde kendilerine ait özel bilgileri tutarlarken, yapı içindeki genel bulut yapısı ile son kullanıcıya ulaşırlar.

Bulut Bilişim Hizmet Modelleri

Servisler, belirli işleri yapması için otomatikleştirilmiş alt yordamların toplamı olarak tarif edilebilir. Bu tanımdan yola çıkarak servislerin hizmet olarak sunulmasını üç ana başlık altında toplanabilir:

  • Hizmet olarak Altyapı (Infrastructure as a Service): Teknoloji firmaları veya geliştiriciler için disk alanı ya da hesap yapabilme gibi kaynakları sunar.
  • Hizmet olarak Platform (Platform as a Service): Teknoloji firmaları ve geliştiriciler için bulut bilişime hazır çözümler üretilmesini sağlayan yapıların sunulduğu modeldir.
  • Hizmet olarak Yazılım (Software as a Service): Belirli bir amaç için geliştirilmiş yazılımların son kullanıcılara sunulmasını sağlayan yapılardır.

Hizmet Olarak Altyapı (Infrastructure as a Service-IaaS)

Hizmet olarak altyapı sunucu, ağ altyapısı, veri depolama alanı ve veri merkezi gibi donanımların hizmet olarak sunulması anlamına gelmektedir. Bu hizmet tipini kullananlar, ihtiyaç duyulan donanımları satın almak yerine, elektrik ve su gibi hizmetlerde olduğu gibi “kullandığın kadar öde” prensibi ile ihtiyaç olduğu sürece ve ihtiyaç olduğu kadar kiralarlar. Bu şekilde hizmet almanın bir başka avantajı ise müşteri ihtiyaçlarına göre, kiralanan yapının dinamik bir biçimde ölçeklenebilir olmasıdır. Bir başka faydalı nokta ise zaman içerisinde ortaya çıkan anlık ihtiyaçlar çerçevesinde, kiralama hizmetinin dinamik olarak ölçekli yükseltilmesi (scale up) ya da ölçekli küçültülmesi (scale down) özelliğidir.

Hizmet Olarak Platform (Platform as a Service-PaaS)

Hizmet olarak platform, kullanıcılara altyapının yanı sıra bir yazılım platformu da sunar. Son kullanıcı, belirli donanımlar üzerine kurulmuş olan bu yazılım platformunu kullanarak yazılım geliştirebilir ya da geliştirdiği yazılımı ölçekli olarak çalıştırabilir. Platform hizmetinin geliştiriciler açısından en temel faydası, yazılım geliştirme ve yazılım dağıtım süreçlerinin tek elden yönetilebilir olmasıdır. Hizmet olarak platform ortamları, ihtiyaca göre dinamik olarak ölçekli yükseltilme (scale up) ya da ölçekli küçültülme (scale down) özelliğine sahiptir. Bu özelliklerin yanı sıra kullanıcı verilerinin ve uygulamanın güvenliği, yine bu platform tarafından sağlanır. Sağladığı birçok avantaja karşın Hizmet olarak Platform yapılarının başlıca dezavantajı, geliştiricileri belli başlı geliştirme araçlarını kullanmak zorunda bırakmasıdır.

Hizmet Olarak Yazılım (Software as a Service-SaaS)

Bu model, bir hizmet sağlayıcı şirkete ait sunucularda çalışarak belirli bir işi gerçekleştiren yazılımın, hizmet olarak son kullanıcıya dağıtılmasına karşılık gelmektedir. Yazılım sağlama hizmeti ile kullanıcıların ihtiyaç duyduğu CRM, ERP, finans, muhasebe, e-posta gibi yazılımlar bulut üzerinden dağıtılır. Bu yöntem sayesinde son kullanıcılar yazılımın geliştirilmesi, çalıştırılması gibi maliyetleri en aza indirgeyebilirler. Tek bir yazılım birden çok müşteri tarafından kullanıldığı için ilgili maliyetler yazılımı kullanan müşteriler arasında paylaşılmış olur. Genellikle bu modelde yazılıma web tarayıcı üzerinden erişim sağlanır. Bu durum, son kullanıcının herhangi ek bir yazılım kurmadan, dünya üzerindeki herhangi bir noktadan sunulan hizmeti kullanabilmesi anlamına gelmektedir. Diğer hizmet modellerinde olduğu gibi, kullanıcılar aldıkları hizmet kadar ücretlendirilirler.

Örnek Yazılım Uygulaması

Ünitenin bu bölümünde, bir web uygulamasını adım adım geliştirerek Microsoft Azure bulut bilişim platformunda yayımlanacak. Uygulama HTML tabanlı bir “Merhaba Dünya” uygulaması olacaktır. İlk adımda Azure ortamını hazırlamak gerekmektedir. Bunun için ilk önce bir Azure hesabı alınmalı. Hesabı açtıktan sonra yapılması gereken işlemler, WEB APPS düğmesine tıklanır. Açılan alt pencerede COMPUTE > WEB APP > CUSTOM CREATE seçeneği seçilir.

Çıkan ekranda, oluşturacak olan web sayfası ile ilgili temel bilgilerin girilmesi beklenmektedir.

URL: Sayfanın yayımlanacağı İnternet adresini tutmaktadır. Bu alana, daha önceden alınmamış olmak kaydı ile istediğiniz şekilde veri girebilirsiniz. Bu uygulama için dersimizin kodu olan YBS406U girilebilir.

APP Service Plan: Uygulamanın ne çeşit bir barındırma olacağını ifade ediyor. Burada, “Create new web App Service plan” seçeneğini seçilir.

Region: Hangi bölgedeki sunucuda yer alacağını seçilir.

Database: Uygulamada kullanmak istenilen veritaban seçilir.

Sağ alttaki ok tuşuna basıldığında, uygulama oluşturulur ve çalışır hale gelir. Herhangi bir web tarayıcıya http://ybs406u.azurewebsites.net/ adresi girildiğinde uygulamanın çalıştığını belirten ekranı görebilirsiniz.

Uygulamanızı örnek olarak .NET kodu çalıştıracak şekilde yapılandırmak isterseniz, “Configure” menüsüne girmeniz gereklidir.

Açılan ekranda istenilen ayarlamaları yapmak mümkündür. Örneğin, .NET Framework sürümünü değiştirmek isterseniz, arzu ettiğiniz .NET Framework sürümünü seçip sayfanın en altında bulunan “Save” düğmesine basmanız yeterlidir. Bu sayfada, uygulama ile ilgili diğer tüm ayarları da yapmak mümkündür.

Azure sunucusunda uygulama alanı oluşturulduktan sonra uygulamayı geliştirmeye başlanabilir. Yazılım geliştirmek için WebMatrix3 aracını kullanacaktır. WebMatrix3, ücretsiz, hafif ve bulut bağlantılı bir web geliştirme aracıdır.

WebMatrix3 açılış ekranında üç seçenek bulunmaktadır:

  • “My Sites”: Eskiden oluşturulmuş projelere ulaşılır.
  • “New”: Yeni proje oluşturulur.
  • “Open”: Uzak bir kaynaktaki proje açılır.

Yeni bir proje açmak için “New” butonuna tıklatıldığında üç seçenek çıkar:

  • “Empty Site” seçeneği ile herhangi bir ön tanımlı dosya yerine boş bir proje oluşturulur.
  • “App Gallery” seçeneği ile onlarca farklı uygulamaya ulaşılabilir.
  • “Template Gallery” seçeneği ile hazır yazılım şablonlarına ulaşılabilir.

“Merhaba dünya” yazılı index.html sayfası oluşturulduktan sonra projeyi, Azure Bulut üzerinde açtığımız alana yüklemeye geldi. WebMatrix3 geliştirme aracını kullanarak proje kolaylıkla yüklenebilir. Bunun için öncelikle Azure Bulut Platformuna bağlanılması gerekmektedir.

Azure Bulut platformuna bağlanmayı takiben, daha önce oluşturulan web uygulaması olan “ybs406u” isimli uygulama açılır. Sunucu üzerindeki hesap bilgilerini “Download the publish profile” seçeneğini kullanarak bilgisayara indirilir. Bu dosya, Azure Bulut Platformunda işlem yapılabilmesi için gerekli olan kullanıcı adı ve şifreleri içeren XML tabanlı bir dosyadır. İndirilen dosya bir metin editörü ile açılır.

WebMatrix3 kullanarak Azure platformuna yükleme yapmayı tercih etmezseniz, buradaki bilgileri kullanarak önce siteyi derleyip, daha sonra derlenmiş olan siteyi herhangi bir FTP programı kullanarak da platforma yükleyebilirsiniz. Yüklemek için gerekli olan şifreleri ve kullanıcı isimlerini değiştirmek istiyorsanız “Reset your deployment credentials” seçeneğini kullanabilirsiniz. Örnek uygulamamızı WebMatrix3 ile platforma yükleyeceğiz. Gerekli bilgileri içeren dosyamızı bilgisayarımıza indirdikten sonraWebMatrix3 yazılımını açıp “Publish” düğmesine basalım.

Açılan ekranda “Import publish profile” seçeneği ile indirdiğiniz dosyanın yolunu gösterebilirsiniz.

Bu aşamada, WebMatrix3 uygulamayı nereye yükleyeceğini, hangi kullanıcı adını ve şifreyi kullanacağını bilmektedir. “Save” seçeneği ile kaydedip bu ekrandan çıkılır.

Gelen ekranda “Continue” butonuna basıldığında, uygulama derlenerek Azure Platformuna otomatik olarak yüklenir. WebMatrix3 yazılımı son kontrolleri de yaparak, yazdığınız uygulama ile Azure Platformunun uyumluluğuna yönelik bir rapor ekranı çıkarır. Bu ekranda “Continue” seçeneği ile devam edilir. Son olarak değişen dosyalar listelenir ve yeniden “Continue” butonuna basılır. Uygulamanızı başarı ile yükleyebildiğiniz takdirde, ekranın alt tarafında “Publishing –Complete” şeklinde bir uyarı notu ortaya çıkar.