Faydalı Bilgiler

Cloud Computing nedir?

  • 0 Comment
  • 12 Nisan 2011
About Hakan Demirel

Özel bir şirkette Front-end Developer olarak çalışmakta. Twitter üzerinden @hakandemirel hesabını takip edebilir yada hakandemirel.com adresinden daha fazla bilgi alabilirsiniz.

Social Links

Cloud Computing yani Bulut Hesaplama, geleneksel bilgisayar konseptindeki yerel hesaplama yöntemlerini tarihe gömüyor. Cloud computing kısaca, ihtiyaç duyduğunuz verilerin ve hesaplamaların sizin bilgisayarınızda değilde, uzaktaki birçok bilgisayarda tutulması ve hesaplanması mantığına dayanıyor. Hesaplanan veriler sonradan internet üzerinden sizin bilgisayarlarınıza yönlendiriliyorlar. Bu durumda elinizdeki bilgisayarın kapasitesinin ne olduğunun önemi kalmıyor. Ayrıca bu verilere dünyanın herhangi bir yerinden ve herhangi bir donanımla erişim sağlanıyor. Bu da doğal olarak platform bağımsızlık sağlıyor. Yani sizin kullandığınız sistem ister Windows, ister Linux olsun istediğiniz uygulamayı çalıştırabilirsiniz.

Cloud Computing’in mantığı aslında birkaç yazılım türünde gizli. Bunların en başında gelen web tabanlı yazılımlar. Yazılarımı takip edenler gelecekle ilgili öngörülerimde sürekli bu tip uygulamaların öneminden bahsettiğimi hatırlarlar. Bunlara örnek olarak Google’ın ofis uygulamalarını verebiliriz. Veriler ve işlemler tamamen uzaktaki bilgisayar kümelerinde tutuluyor ve size sadece sonuçları yansıyor.

Bir diğer yazılım çeşidi ise, bir şekilde bir ağ üzerinde çalışan yazılımlar. Bunlar sadece tarayıcı kullanarak ulaşabileceğiniz uygulamalar değiller. Daha çok Client/Server (İstemci/Sunucu) mantığıyla çalışan uygulamalar. Buna örnek olarak son zamanlarda oldukça dikkat çeken OnLive‘ı örnek gösterebiliriz. OnLive kısaca, oyunların uzaktaki sunucu kümelerinde çalıştırılarak size video olarak aktarılması esasına dayanıyor. Siz oyunu oynuyorsunuz oyunun ekran görüntüsü anında video formatında kaydedilerek size sunuluyor. Bu durumda bilgisayarınızın performansının bir önemi kalmıyor. Sadece internet bağlantınızın hızı önem kazanıyor.

Cloud Computing’in Temelleri

Bulut hesaplamanın temelinde hosting mantığı ve Grid computing yatıyor. Uygulamalarınızı uzaktaki dev sunucu çiftliklerine (server farms) göndererek depoluyorsunuz. Uygulamanızın ihtiyaç duyduğu işlem gücü ise, dağıtık sistemler tarafından karşılanıyor. Yani, birden fazla bilgisayara paylaştırılıyor. Buna grid computing deniyor. Aslına bakarsanız bu pekde yeni birşey sayılmaz. Yıllar önce başlatılan SETI projesi gibi çoğu proje hali hazırda dünyadaki milyonlarca gönüllü insanın bilgisayarlarının işlemci gücünü kullanıyor.

Bulut hesaplama kümelerinde bulunan uygulamalar ise, yine bu hizmeti sunan şirketler tarafından belirleniyor. Microsoft .Net platformuna destek verirken Sun’da Java platformunu destekliyor. Siz ise, ihtiyacınız olan uygulamaları (Örneğin, SqlServer, Oracle gibi) kiralayarak kullanıyorsunuz.Buna Utility computing deniyor. Uzaktaki sunucu kümelerine ise, kullandığınız disk alanına ve işlem kapasitesine göre ödeme yapıyorsunuz.

Gördüğünüz gibi, bulut hesaplamanın aslında yeni bir tarafı yok. Bilişim sektöründe alışık olduğumuz üzere, yapılan birkaç şeyi birleştirip yeni birşeymiş gibi sunulması mantığı. Benim bundan pek şikayet ettiğim söylenemez, çünkü bu konsept yaygınlaştıkça oldukça fazla gelir kapısı açılacaktır. Bu günden bu konsepte yatırım yapma şansı olanlar ise kesinlikle karlı çıkacaklardır.

Bulut hesaplama konsepti Adobe Air gibi platformları oldukça yaygınlaştırabilir. Bildiğiniz üzere Adobe Air, internet üzerindeki uygulamaların, sanki bilgisayarınıza kurulan bir yazılım gibi masaüstünüzde çalıştırabilmesi esasına dayanıyor.

Cloud Computing’in Diğer Unsurları

Bulut hesaplamanın en önemli unsurlarından birisi, servis olarak altyapısı yani IAAS (Infrastructure as a Service). Bu bildiğimiz sanallaştırma hizmetleri gibi altyapı servislerinin sunucu çiftliklerinde yapılması esasına dayanıyor. Yani geliştiriciler istedikleri sistemlere sahip olabiliyorlar ve bunları kontrol edebiliyorlar. Buna örnek olarak Amazon EC2 servisini gösterebiliriz.

Bir diğer unsur, servis olarak platform yani PAAS (Platform as Sevice). Burada, geliştiricilere uzak sunucularda barınan komple bir geliştirme ortamı sunuluyor. Bu sayede bilgisayarınıza bir library indirmeden işlemleri gerekleştirebiliyorsunuz. Buna örnek olarak, Google’ın Chart API’si veya yine Google’ın Pyhton (Django) kütüphanesi Google App Engine verilebilir. Her zaman olmasada bu kütüphaneleri kullanarak geliştirdiğiniz yazılımları isterseniz, sağlayıcının sunucusunda tutabilirsiniz. Bu yüzden bu tarz sistemlerle geliştirilmiş yazılımlara bulut yazılımı (cloudware) deniliyor.

Son bir unsur ise, servis olarak yazılım yani SAAS(Software as Service). Buradaki mantık daha çok son kullanıcıyı ilgilendiriyor. Müşteriler geleneksel yazılım satın alma modelinden vazgeçerek daha ileri gidiyorlar. İsterlerse bir yazılımı ihtiyaçları ölçeğinde kiralayabiliyorlar. Bu ihtiyaçlar, zaman, işlem gücü veya kapasite olabiliyor. Örnek olarak, bir oyunu sadece bitirdiğiniz zamana kadar kiraladığınızı düşünün. Bu uygulamalar platform bağımsız oluyorlar ve kullanıcılara ekstra sunucu, yazılım, bakım, eleman gibi maliyetler çıkarmıyorlar. Bu durumda uygulama geliştirici birden çok lokasyonda kurulu uygulamada çıkacak sorunlar için endişelenmek durumunda kalmıyor (bakım, hata düzeltme vs gibi). Saas’la ilgili ayrıntılı bilgi almak için burayı takip edebilirsiniz.

Güncel Cloud Computing Servisleri

I) Microsoft Azure

Windows Azure, kısaca, geliştirdiğiniz uygulamaların Microsoft sunucularında barındırılması esasına dayanıyor. Bu sunucularda Azura servislerinden (geneli .Net platformu destekli) faydalanabiliyorsunuz. Bunlar içerisinde .Net framework hizmetleri, Sql Server Hizmetleri, Live servisleri, SharePoint servisleri ve Dynamics (Microsoftun CRM yazılımı) servisleri bulunuyor. Size myapp.azure.com gibi bir alan adı veriliyor. Siz elinizdeki domaini buraya yönlendiriyorsunuz. Tabii uygulamalarınızı azure’ye göre modifiye etmeniz gerekecek. Bunu Visual Studio içerisinden kolaylıkla yapabilirsiniz. İlgili video ise aşağıda.

Sonuçta geliştirdiğiniz uygulamalar yukarıdaki servislerden(Utility computing) belirli bir ücret karşılığı yararlanabiliyorlar. Sizde işlemci kullanım oranınıza ve depolama alanı ihtiyacınıza göre bir ücret ödüyorsunuz.

II) Sun Open Cloud

Sun Open Cloud ise, sektördeki ilk açık kaynak bulut hesaplama sistemi oluyor. Sunduğu servisler; Java platformu desteği, Mysql ve OpenSolaris. Bu platformun temel amacı, uygulamalarınızın aynı platform üzerinde bulunan uygulamalarla entegre çalışması. Bu sayede bir topluluk bilinci oluşturulması amaçlanıyormuş. Yine Windows Azure’de olduğu gibi Sun OpenCloud’da da iki servis mevcut ve siz bunları kullanma oranınıza göre para ödüyorsunuz. Bu servisler, Sun Cloud Storage Service (Bulut Veri Depolama Servisi) ve Sun Cloud Compute Service (Bulut Bilgi işleme Servisi). 2009 yazında faaliyete başlayacak servis şimdiden oldukça ses getirdi.

III) Google App Engine

Google tarafından sunulan Google App Engine, daha çok Pyhton üzerinde Django çatısıyla kullanılıyor. Bu platformun esnekliği diğerlerine göre oldukça düşük. Ama yinede oldukça yenilikçi fikirleri var. Google bu servisiyle maliyeti düşük uygulamalar için bir kapı açmış oluyor. Google App Engine ile uygulama geliştirmek için, App Engine SDK’sını edinmeniz gerekiyor. Bu Api’ler içerisinde Google’ın diğer servislerine entegrasyon ve Veritabanı işlemleri, Kullanıcı işlemleri veya Önbellekleme işlemleri gibi çoğu işlem için hazır destek var.

Sonuç

Sonuç olarak, geleceğin bulut hesaplama sistemlerinde yattığını söyleyebiliriz. Tabiiki bunun için önümüzde oldukça uzun bir yol var. Standartların geliştirilmesi ve insanların bu sisteme alışmaları biraz zaman alacaktır. Sonuçta insanlar, her zaman her yerden ve her platformdan bilgiye erişebilir ve onu işleyebilir hale gelecekler. Bu sebeple internet yazılımları ve onları barındırabileceğimiz Bulut hesaplama sistemleri geleceğe yönelik yapılabilecek en önemli yatırımlardır.

Bunun bilincinde olup, bu pazara önceden girmek ise bence kimseyi üzmeyecek.

Leave a Comment