Cloud Computing
Çalıştırmak istediğiniz bir program için gerekli olan sistem gereksinimlerinden kurtulmaya hazır mısınız? Eğer yanıtınız evet ise, Cloud Computing (Bulut hesablama) adlı yeni teknoloji, tam olarak sizin isteğinize hizmet edecek bir uygulama.
Cloud Computing, alışılageldiği üzere işlemlerin sizin kendi makineniz üzerinde çalıştırılmasının bir adım ötesine geçerek, ihtiyaç duyulan verilerin ve uygulamaların uzaktaki bir çok bilgisayarda tutulması ve çalıştırılması anlamına geliyor. Hesaplanan verilerin ve çalıştırılan uygulamaların sonuçları internet bağlantısı üzerinden tekrar sizin bilgisayarınıza yönlendiriliyor. Tasarımdaki bu esneklik, internet bağlantısının yüksek hızlarda olması haricinde, son kullanıcıya neredeyse hiçbir yük getirmiyor. Donanım yükünü ve diğer ara birimlerin etkisini ortadan kaldıran Cloud Computing işlemi, sadece bir Ethernet kartına ve internet bağlantısına gereksinim duyması açısından, yüksek hızda internet kullanan kullanıcılar için ideal bir çözüm. Sağladığı platform bağımsızlığının yanında, Cloud computing işlemini kullananabilmek için belli bir işletim sistemine sahip olmanız da gerekmiyor. Bu da demek oluyor ki işletim sisteminizin Linux veya Windows tabanlı olması, uygulamaları çalıştırabilme önünde bir engel teşgil etmiyor.
Cloud Computing’in çalışma mantığı aslında web tabanlı yazılımlar başta olmak üzere birkaç yazılım türünde gizli. Bunlar içerisinde ağ üzerinde çalışan yazılımlar bulunmaktadır. Bunlar tarayıcı yüzünden ulaşamayacağımız Client/Server mantığıyla çalışan uygulamaları destekler. Buna güncel örnek vermek gerekirse, çağın oyun oynama anlayışını değiştirme potansiyeline sahip olan www.onlive.com sitesinin uygulaması başı çekiyor. Ücret karşılığı aldığınız pakete dahil olarak gelenler, sadece internet ortamına açılmanızı sağlayan küçük bir konsol ve tek bir joystick. Sizden tek istenen ise ortalama 8mbps gibi bir bağlantı hızı. Konsolunuzun tek yaptığı, dijitalleştirilen hareket verilerinin yüksek internet hızı ile sunucuya iletilmesini sağlamak ve sunucuda oynatılan oyunun sonuçlarını sizin monitörünüze, televizyonunuza aktarmak. Sitenin bahşettiği gecikme süresi ise 10 milisaniye gibi fps oyuncularını bile zorlamayacak derecede ufak bir süre. Grafiklerin ve arka plan işlerin server üzerinde koşturulması nedeniyle yüksek donanıma bütçe ayıramayacak insanlar için gayet makul bir uygulama.
Cloud Computing’in temelleri
Cloud Computing’in temellerinde hosting ve grid computing mantığı yatıyor. Uygulama ve işlemleriniz devasa server farm’lara (sunucu çiftlikleri) gönderilerek depolanıyor, gereksinim duyulan işlem gücü ise serverlar ve dağınık sistemler tarafından karşılanıyor. Aslında bu işlem biçimi, yıllar öncesinde uygulaması başlatılan SETI projesi gibi (http://www.seti.org/Page.aspx?pid=1366 ) dünyadaki milyonlarca gönüllü insanın bilgisayarlarının işlem gücünü kullanma açısından çok da yabancı olduğumuz bir uygulama çeşidi değil.
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 şimdiye kadar aşina olunmamış pek bir yönü yok. Bilişim sektöründe alışık olduğumuz üzere, yapılan birkaç şeyi birleştirip yeni bir şeymiş gibi sunulması mantığının devam ettirildiği bir uygulama çeşidi. Bu günden bu konsepte yatırım yapma şansı olanlar için şu kesinlikle söylenebilinir ki 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 unsurumuz ise servis olarak platform. Yani PAAS (Platform as Sevice). Burada, geliştiricilere, uzak sunucularda barındırılmış komple bir geliştirme ortamı sunuluyor. Bu sayede bilgisayarınıza bir library indirmeden işlemlerinizi gerekleştirebiliyorsunuz. Buna örnek olarak, Google’ın Chart API’si veya Google’ın Pyhton (Django) kütüphanesi Google App Engine verilebilir. Her zaman olmasa da bu kütüphaneleri kullanarak geliştirdiğiniz yazılımları isterseniz kendi pcnizde, isterseniz de 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 platformdan 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 Azure servislerinden (geneli .Net platformu destekli) faydalanabiliyorsunuz. Bunlar içerisinde .Net framework hizmetleri, Sql Server Hizmetleri, Live servisleri, SharePoint servisleri ve Dynamics (Microsoft’un CRM yazılımı) servisleri bulunuyor. Size http://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.
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 bilgisayar yönetim temellerinin bulut hesaplama sistemlerinde yattığını söyleyebiliriz. Tabi ki bunun için önümüzde oldukça uzun bir yol var. Son kullanıcı bazında düşünürsek internet hız standartların geliştirilmesi ve insanların da bu sisteme alışmaları biraz zaman alacaktır. Sonuç olarak da insanlar, her zaman her yerden ve her platformdan bilgiye erişebilir ve onu işleyebilir hale gelecekler. Bu sebepten dolayı internet yazılımları ve onları barındırabileceğimiz Cloud Computing sistemleri günümüz kriterlerinde geleceğe yönelik yapılabilecek en önemli yatırımlardır. Benim bakış açıma göre bunun bilincinde olup, bu pazara önceden yatırım yapmak, hizmeti sağlayana büyük ölçekli karlar getirecektir.
Saygılarımla,
Ümit Can Türker.