OpenStack – Bulutu Avucunuzun İçine Alın

Rackspace ve NASA'nın 19 Temmuz 2010'da duyurduğu OpenStack, açık kaynak bulut dünyasında yepyeni bir oyuncu. İki bileşenle başlıyor: Nova (NASA Nebula'dan compute) ve Swift (Rackspace Cloud Files'tan depolama). Bu yazıda projenin detaylarına ve önemine bakıyorum.

Rackspace

OpenStack’i tek cümlede özetleyelim: Hosting sektöründe yıllardır son derece sağlam bir konumda olan Rackspace firmasının cloud servislerini biliyorsunuzdur. Şimdi tüm bu servislerin altında çalışan yazılım, açık kaynak hale getiriliyor desem? Üstüne bir de NASA’nın kendi bulut platformu Nebula’nın işlem motorunu bu projeye dahil ettiğini söylesem?

İşte tam olarak böyle bir şey oluyor. 19 Temmuz 2010’da Rackspace ve NASA, ortaklaşa OpenStack’i duyurdular. Geçen yazımda açık kaynak bulut platformlarını ele alırken kısaca değinmiştim; OpenStack o kadar önemli bir gelişme ki ayrıca bir yazıyı hak ediyor.

Duyuru: ne, kim, nereden?

OpenStack açık kaynak bir bulut platformu oluşturmak için başlatılan bir proje. Rackspace’in başlattığı projeye şu an itibarıyla 25 firma gönüllü olarak destek veriyor. Destekçiler arasında AMD, Citrix, Dell, RightScale, Spiceworks, Limelight, Cloudkick, NTT Data gibi büyük firmalar var; bu liste projenin ciddiyetini ortaya koyuyor. Bence asıl darbeyi vuran şu: NASA, kendi bulut platformu olan Nebula projesinin işlem motorunu OpenStack’e bağışlayarak işin sembolik ağırlığını da bir hayli yukarı çekti. Destekçilerin tam listesini openstack.org/community adresinden görebilirsiniz.

Geçtiğimiz hafta, 13-16 Temmuz tarihlerinde Austin’de yaklaşık 100 geliştirici ve kurucu partnerin katıldığı bir tasarım buluşması yapıldı. Bu buluşmada projenin yol haritası ve ilk sürüm planı belirlendi. İlk stabil sürüm, kod adı Austin ile yaklaşık üç-dört ay sonra, Ekim 2010’da gelecek. Dolayısıyla bu yazıyı yazarken elimizde henüz “kâğıt üzerinde mimari” ve Swift’in canlı kodu var; Nova kısmen iniş halinde.

Lisans ve yönetim modeli

Rackspace, projeyi başlatırken iki konuda net oldu: kodlar Apache 2.0 lisansı altında, dolayısıyla isteyen herkes oldukça rahat ve esnek şekilde kullanabilir, değiştirebilir, hatta ticari ürün yapabilir. İkincisi: yönetim modeli, tek bir firmanın kontrolünde değil. Topluluk yönetimine açık, “açık geliştirme modeli” (open development model) sözü veriliyor. Bu, Eucalyptus’taki “açık kaynak çekirdek + ticari kurumsal sürüm” yaklaşımından önemli bir kopuş. Eğer söz tutulursa, OpenStack açık kaynak bulut dünyasında gerçekten kendine has bir konumlanma yapacak.

Projenin uzun vadeli hedefi, “kapalı kutu” gibi cloud hizmeti sunan firmaların yarattığı korkuyu silmek, bulut için açık standartlar yaratmak ve servis sağlayıcılar için büyük bir ekosistem inşa etmek olarak açıklanıyor. Bu, küçük ve orta ölçekli hosting firmalarının kendi bulut hizmetlerini Rackspace ile aynı altyapı üzerinde sunabilmesi anlamına gelir. Türkiye gibi yerel pazarlar için son derece önemli bir vaat.

İki bileşen, iki güçlü miras

OpenStack ilk sürümünde iki bileşen sunacak:

Swift, Nesne Depolama (Object Storage)

Swift, Rackspace’in Cloud Files servisinin altında yıllardır production’da çalışan yazılımın açık kaynak versiyonu. Bu çok kıymetli, çünkü Cloud Files şu anda milyarlarca nesneyi servis ediyor ve gerçek anlamda kanıtlanmış bir kod tabanı. Mimari olarak Amazon S3’e benzer bir model: HTTP REST API üzerinden büyük miktarda dosya/nesne depoluyorsunuz; sistem bu nesneleri birden fazla diske, birden fazla sunucuya replike ediyor.

Swift’in temel bileşenleri:

  • Proxy Server: İstemcilerden HTTP isteklerini karşılayan ön cephe.
  • Account/Container/Object Server’lar: Hesap, container (S3’teki “bucket” karşılığı) ve nesnelerin tutulmasından sorumlu olan arka uç süreçleri.
  • Ring: Verinin hangi diske düşeceğini hesaplayan tutarlı hash mekanizması. Veri ekleyip çıkarmada “rebalance” mantığı bunun üzerinde çalışır.
  • Replicator, Updater, Auditor süreçleri: Verinin tutarlılığını ve dayanıklılığını sağlar.

Swift, doğası gereği eventually consistent bir sistem. Geleneksel POSIX dosya sistemi mantığını beklemeyin; ama büyük ölçekli web içeriği, yedekleme, log arşivleme gibi senaryolarda son derece etkili.

Nova, Compute (İşlem)

Nova, NASA’nın Nebula projesinden geliyor. Nebula, NASA Ames Araştırma Merkezi’nin kendi bilimsel iş yüklerini koşturmak için tasarladığı, EC2 benzeri bir IaaS sistemi. Nova, bu sistemin VM yönetiminden sorumlu olan kısmı.

Nova’nın bileşenleri (yol haritasından okuduğum kadarıyla):

  • API Server: EC2 uyumlu (ve gelecekte kendine has) REST arayüzü.
  • Compute Worker: Her hipervizör sunucusunda çalışan, VM oluşturma ve yönetme sürecini yürüten ajan. Başlangıçta KVM ve Xen, sonra HyperV ve ESX desteği planlanıyor.
  • Network Controller: Sanal makinelere IP atamak, VLAN/Flat ağ topolojilerini yönetmek.
  • Scheduler: Yeni bir VM isteğini, kaynak havuzundaki uygun bir compute node’a yerleştiren karar mekanizması.
  • Object Store: Başlangıçta basit bir imaj depolama, ileride Swift ile entegre çalışacak.

Tüm bileşenler arasındaki haberleşmenin AMQP (muhtemelen RabbitMQ) üzerinden, dağıtık ve gevşek bağlı bir mimariyle yapılması planlanıyor. Python ile yazılıyor.

Eucalyptus ile karşılaştırma

Geçen yazımda Eucalyptus’a uzunca yer vermiştim; doğal olarak akla “OpenStack, Eucalyptus’ı eskitir mi?” sorusu geliyor. Birkaç boyutta bakalım:

  • Olgunluk: Eucalyptus 2.0 yayınlandı, üretimde çalışan müşterileri var. OpenStack daha kod-açıldı seviyesinde. Bugün üretim kurulumu için Eucalyptus hâlâ daha rasyonel seçim.
  • Lisans: Eucalyptus, kurumsal özellikleri ticari sürüme saklarken OpenStack baştan Apache 2.0 ile geliyor. Uzun vadede bu büyük bir fark yaratır.
  • AWS uyumluluğu: Eucalyptus’un en güçlü yanı, EC2/S3 ile API uyumluluğu. OpenStack de başlangıçta EC2 uyumluluğunu hedefliyor ama uzun vadede kendi API’sini olgunlaştıracak.
  • Yönetim modeli: Eucalyptus tek firmanın projesi; OpenStack ise topluluk vaadi taşıyor.
  • Operasyonel deneyim: Swift, milyarlarca nesneyi servis etmiş bir kod. Eucalyptus’un Walrus’u akademik kökenli; ölçek açısından Swift daha sağlam.

Benim öngörüm: 2011 ve 2012, bu iki projenin paralel olgunlaştığı yıllar olacak. Sonrasında topluluğa açıklık konusundaki vaatlerini tutarsa OpenStack, açık kaynak bulutun önemli omurgasına dönüşür. Bir yıl içinde bu satırlara dönüp ne kadar haklı çıktığımı görmek ilginç olacak.

Benzer ruhtaki başka bir proje

OpenStack çıkmadan önce benzer ruha sahip bir proje olarak Red Hat’in DeltaCloud’unu da hatırlatmak isterim. DeltaCloud, farklı bulut sağlayıcılarına (EC2, Rackspace, vSphere) tek bir API üzerinden erişim sağlayan bir soyutlama katmanı sunuyor. Hedefi OpenStack’inkiyle aynı değil, DeltaCloud bir API gateway, OpenStack ise bir IaaS platformu, ama “tek sağlayıcıya bağlı kalmayalım” felsefesi açısından birbirini tamamlıyorlar.

Türkiye ve KOBİ’ler için ne anlama geliyor?

İster büyük bir veri merkezi olun, ister küçük bir hosting firması, hatta isterseniz evinizde hobi amaçlı bir cloud yapı kurup “hey ben yaptım bunu!” demek isteyen biri olun, OpenStack önümüzdeki bir-iki yıl içinde işleri ciddi şekilde kolaylaştıracak gibi duruyor.

Türkiye için özellikle düşündüklerim şunlar:

  • Hosting firmaları, klasik VPS ürünlerinden bulut tabanlı IaaS’a geçiş için bir kaldıraç bulacaklar. OpenStack üzerine kurulu bir Türk Rackspace’i hayal edilebilir.
  • Sistem entegratörleri, banka ve kamu projelerinde “yerli bulut” inşa edebilecek bir altyapıya kavuşuyor.
  • Geliştiriciler, kendi cebinden üç-dört ucuz sunucu alıp evde küçük bir bulut kurabilir, AWS benzeri bir deneyim için para ödemek zorunda kalmaz.
  • Akademi, Eucalyptus ve OpenNebula’nın yanına OpenStack’i ekleyerek araştırma altyapısını çeşitlendirebilir.

Proje 19.07.2010 tarihinde openstack.org üzerinden kamuoyuna açıldı. Şu anki durumda Swift kullanılabilir, Nova’nın stabil sürümü Eylül-Ekim civarında bekleniyor. Detayları ve kodları ilgili siteden incelemenizi tavsiye ederim.

Kapanış

Açık kaynak yazılım dünyasında her on yılda bir sahne dengeleri değiştiren projeler çıkar: Linux çekirdeği, Apache, MySQL, Hadoop… Sezgim, OpenStack’in de bu kervana katılabileceği yönünde. Tabii ki bu, kodun teslim edileceği aylarda, topluluğun gerçekten Rackspace’in vaat ettiği gibi çoğul ve sağlıklı bir biçimde büyümesine bağlı. İlk stabil sürüm geldiğinde, mümkünse bir test ortamı kurup detaylı bir kurulum yazısı paylaşmak istiyorum. Bu süreçte yorumlarınızı ve sorularınızı bekliyorum.