Açık Kaynak Cloud Çözümleri

Açık kaynak bulut platformları, Amazon ve Rackspace gibi ticari sağlayıcılara alternatif olarak kendi veri merkezinizde IaaS kurmayı mümkün kılıyor. Bu yazıda Eucalyptus, OpenNebula, Nimbus, Ubuntu Enterprise Cloud ve geçen hafta duyurulan OpenStack'i karşılaştırıyorum.

Bulut bilişim konusunda son altı ayda en çok aldığım sorulardan biri şu: “AWS güzel de, biz verimizi kendi veri merkezimizde, kendi kontrolümüzde tutmak istiyoruz; bunu nasıl yaparız?” Cevabı kısa: açık kaynak bulut platformları ile. Bu yazıda Temmuz 2010 itibarıyla piyasada bulunan açık kaynak IaaS projelerine bir bakış atacağım: Eucalyptus, OpenNebula, Nimbus, Ubuntu Enterprise Cloud ve geçen hafta duyurulan OpenStack.

Neden açık kaynak bulut?

Önce motivasyona bakalım. Birkaç ortak gerekçe var:

  • Vendor lock-in kaygısı. Tek bir sağlayıcının API’sine, fiyat politikasına, SLA’ine bağımlı kalmak istemiyorsunuz.
  • Veri egemenliği. Verinin nerede tutulduğu mevzuat açısından kritik. Türkiye’deki banka, kamu ve telekom kurumları için bu kalem hemen hemen kilit niteliğinde.
  • Maliyet hesabı. Belli bir ölçeğin üzerinde, kendi donanımınız üzerinde bulut çalıştırmak Amazon’dan ucuz olabilir. Özellikle CPU/RAM yoğun, sürekli açık iş yüklerinde.
  • Şeffaflık ve özelleştirme. Kaynak kodu elinizde olunca, ihtiyacınıza göre bileşen ekleyebilir, davranışı değiştirebilirsiniz.

Bu kaygıların hepsini birden, kendi veri merkezinde IaaS kurmak isteyen kurumların belirli bir profili paylaşıyor: orta-büyük ölçek, içeride yetkin sistem mühendisi, mevzuat baskısı altında.

Eucalyptus

Bugün açık kaynak bulut denildiğinde akla gelen ilk isim. Santa Barbara Kaliforniya Üniversitesi’nde başlatılan bir akademik araştırma projesi olarak doğdu (2008), ardından 2009’da Eucalyptus Systems şirketi kuruldu. Mart 2010’da Eucalyptus 2.0 ile birlikte ürün ciddi şekilde olgunlaştı.

En değerli özelliği: Amazon EC2 ve S3 API’leriyle birebir uyumlu. Yani bir tarafta AWS, bir tarafta kendi Eucalyptus bulutunuzla çalışmak, “hybrid cloud” senaryolarını gerçekten mümkün kılıyor. EC2 üzerindeki bir uygulamayı, aynı araçlarla (euca2ools veya AWS CLI türevleri) iç bulutunuza taşıyabilirsiniz.

Mimari beş ana bileşenden oluşuyor:

  • Cloud Controller (CLC): Üst seviye API ve karar mekanizması.
  • Cluster Controller (CC): Bir grup sunucuyu yönetir.
  • Node Controller (NC): Her hipervizör sunucusunda çalışıp VM’leri kontrol eder.
  • Storage Controller (SC): Blok depolama (EBS muadili).
  • Walrus: S3 muadili nesne depolama.

Hipervizör tarafında KVM ve Xen destekleniyor; VMware desteği Enterprise Edition ile geliyor. Ubuntu, Eucalyptus’u kendi sunucu dağıtımına entegre ettiği için (UEC, aşağıda) Linux dünyasında dağıtım kanalı oldukça yaygın.

Tek dezavantajı, açık kaynak ve ticari sürüm arasındaki ayrımın gittikçe belirginleşmesi; bazı kurumsal özellikler yalnızca ücretli versiyonda mevcut.

OpenNebula

Madrid Universidad Complutense’de yürütülen bir araştırma projesinden doğdu. 2008’de ilk sürümünü, bu yıl başlarında ise 1.4 sürümünü çıkardı. Eucalyptus’a göre daha “araştırmacı” bir kimliği var; Avrupa’daki birçok HPC ve grid bilişim projesi (RESERVOIR gibi) OpenNebula üzerine kuruluyor.

Felsefe olarak farkı şu: Eucalyptus, kendi içinde bütünlüklü bir AWS klonu sunmaya çalışırken, OpenNebula bir bulut “araç kutusu” gibi konumlanıyor. Hipervizör (KVM, Xen, VMware), depolama (NFS, LVM, iSCSI) ve ağ bileşenleriyle ilgili çok fazla esneklik tanıyor; her parçayı kendi ortamınıza göre seçebiliyorsunuz. AWS uyumlu bir EC2/S3 arayüzü de var ama yalnızca seçeneklerden biri.

OpenNebula, AB destekli RESERVOIR projesinde federated cloud (birden çok bulutu birleştirme) konusuna kafa yoran bir ekip tarafından geliştiriliyor; bu nedenle hybrid cloud senaryolarında oldukça olgun. Java/Python karışımı bir kod tabanı ve XML-RPC ağırlıklı bir mimarisi var.

Nimbus

Chicago Üniversitesi / Argonne National Laboratory çıkışlı, daha çok bilimsel hesaplama (science cloud) dünyasına yönelik bir proje. Adından da anlaşılacağı gibi tipik kullanıcısı, fizik ya da biyoinformatik tarafında HPC iş yüklerini buluta taşımak isteyen bir araştırmacı.

Globus Toolkit’in bir parçası olarak başladı, sonrasında bağımsızlaştı. EC2 uyumlu bir arayüz sunuyor. Cumulus adında S3 uyumlu bir depolama bileşeni var. Üretim ortamından çok deneysel ortamlarda, FutureGrid gibi araştırma platformlarında karşımıza çıkıyor. Kurumsal IaaS arayan biri için ilk tercih değil ama mimariyi öğrenmek isteyenler için sade bir başlangıç noktası.

Ubuntu Enterprise Cloud (UEC)

Canonical, 2009’da yayımlanan Ubuntu Server 9.04 ile birlikte Eucalyptus’u dağıtımın bir parçası haline getirdi. UEC, esasen Eucalyptus + Ubuntu Server’ın paketlenmiş hali. Apt deposundan birkaç komutla CLC, CC, NC bileşenlerini kurabiliyorsunuz; Ubuntu 10.04 LTS ile birlikte kurulum ciddi şekilde sadeleşti.

Bence UEC’in kıymeti, “açık kaynak bulutu deneyelim” diyen ekibin kapısını en kısa süreden aralayan ürün olması. Bir hafta sonu, üç-dört eski sunucu üzerinde UEC kurup AWS’in nasıl çalıştığını yakından görebilirsiniz. Pek çok Türk şirketinin de bu noktadan başlayacağını tahmin ediyorum.

OpenStack, Hafta sonunun büyük sürprizi

19 Temmuz 2010, yani bu yazıyı yazmamdan birkaç gün önce, sektörü ciddi şekilde sallayan bir duyuru geldi: Rackspace ve NASA, kendi bulut platformlarının arkasındaki kodu açık kaynak olarak birleştirip OpenStack adıyla yayımladıklarını açıkladılar.

İki bileşenle başlıyor:

  • Nova, NASA Ames’in Nebula projesinden gelen compute (sanal makine yönetim) motoru.
  • Swift, Rackspace Cloud Files’ın altında çalışan, kanıtlanmış nesne depolama yazılımı.

Kod Apache 2.0 lisansıyla yayımlandı; yani Eucalyptus’taki “açık çekirdek + ticari kabuk” modelinin aksine, baştan tamamen permissive bir lisans. Projeyi Rackspace ve NASA’nın yanı sıra Citrix, Dell, AMD, RightScale, Spiceworks gibi 25 firma desteklediğini duyurdu. 13-16 Temmuz’da Austin’de düzenlenen ilk geliştirici buluşmasında yol haritası belirlendiğini, ilk stabil sürümün (kod adı Austin) sonbaharda gelmesinin hedeflendiğini öğreniyoruz.

OpenStack’in vaadi şu: Tek bir firma kontrolünde olmayan, gerçekten topluluk yönetimine açık, kurumsal ölçekte test edilmiş bir bulut altyapısı. Rackspace’in Cloud Files’ın milyarlarca nesneyle çalışan operasyonel deneyimi de NASA’nın bilimsel hesaplama ölçeğindeki Nebula deneyimi de masada. Eucalyptus’a kıyasla en büyük farkı bu olabilir: lisans temiz, yönetim merkezi tek bir şirkete bağlı değil ve yatırımcı listesi şimdiden ciddi.

Tabii ki bunlar şu an için vaat. Kod yeni açıldı, dokümantasyon henüz az, ilk sürüm aylar sonra gelecek. Önümüzdeki bir-iki yıl, OpenStack’in laboratuvardan üretim ortamına taşınma yıllar olacak. Ben kişisel olarak çok heyecanlıyım ve takip etmeye devam edeceğim; OpenStack’e özel bir yazıyı çok yakında yayımlayacağım.

Hangisini seçmeli?

Tek cümlelik bir tavsiye vermek zor; ama 2010 yazı itibarıyla durum kabaca şöyle özetlenebilir:

  • AWS uyumluluğu kritik ise ve hızlı bir başlangıç istiyorsanız: Eucalyptus veya doğrudan Ubuntu Enterprise Cloud.
  • Esnek, modüler, araştırma odaklı bir altyapı kuracaksanız: OpenNebula.
  • Bilimsel hesaplama / HPC dünyasındaysanız: Nimbus (veya OpenNebula).
  • Geleceğe yatırım yapmak, topluluk yönetimli bir platforma bağlanmak istiyorsanız: OpenStack’i yakın takibe alın; bugün üretime kurmak için erken ama 2011’de manzara çok farklı olabilir.

Türkiye için ne anlama geliyor?

Türkiye’de açık kaynak bulut projelerine ciddi anlamda bakan kurumların sayısı az, ama hızla artıyor. Özellikle bankacılık, telekom ve kamu projelerinde “veri yurt içinde kalsın” şartı bu platformları gündeme getiriyor. Akademik tarafta da TÜBİTAK ULAKBİM’in grid altyapısının üzerine bir bulut katmanı kurma fikrinin sıklıkla konuşulduğunu duyuyorum. Önümüzdeki bir-iki yıl içinde, sistem entegratörlerinden açık kaynak bulut tabanlı çözüm tekliflerinin yaygınlaşacağını tahmin ediyorum.

Açık kaynak bulut, ticari sağlayıcılara bir alternatif değil, çoğu zaman onları tamamlayan bir kanal. Sanırım önümüzdeki yıllarda Türkiye’de bu iki kanalın da paralel büyüdüğüne tanık olacağız. Yorum ve sorularınızı bekliyorum.