OpenStack Nedir? Servisleri Nelerdir? – Bölüm 1
Merhaba,
Openstack son zamanlarda oldukça gündemde olan bir konu. Firmalarında bu ürüne olan ilgisi git gide artmaktadır. Peki Openstack nedir? Neden kullanmalıyız? Aslında bu soruları Openstack ile henüz tanışmamış birçok kişi kendine sormakta veya araştırmaktadır. Ben bu yazımda kısaca Openstack’in ne olduğu konusunda bilgiler vereceğim. Tabi bu serinin içerisinde kuruulumda olacağı için Openstack üzerindeki servislerin ne işe yaradığını detaylı olarak anlatacağım.
OpenStack 2010 yılının Temmuz ayında başlanan ve Rackspace cloud ve NASA tarafından ortaklaşa geliştirilen bir cloud computing platformudur. OpenStack projesi sayesinde standart donanımlar üzerinde çalışan bir cloud computing servis’i kullanılabilir hale gelmiştir. İlk official release’in code name’i Austin’dir. Bu official release’de çıktıktan 4 ay sonrada ilk update’ler gelmiştir.
Açık kaynak kodlu bir proje olduğu için 150’nin üzerinde firma bu projenin gelişimine katkı sağlamaktadır. Eğer siz kendi şirketinizde bir cloud alt yapısı oluşturmak istiyorsanız ve bunu lisans maaliyeti olmadan gerçekleştirmek istiyorsanız Openstack tam size göre. Hatta birazda yazılım, scripting bilginiz var ise kendinizde çeşitli katkılar sağlayabilirsiniz. OpenStack’i konumlandırmak isterseniz, hypervisor olarak birden fazla seçenek karşınıza çıkıyor. Yani burada siz hypervisor olarak KVM, Xen, VirtualBox, VMware veya Hyper-V kullanabilirsiniz. Bunların üzerinde OpenStack’i çalıştırabilirsiniz.
OpenStack’in aslında en ilgi çekici yanı açık kaynak kodlu olması. Geliştirilmeye uygun bir proje olduğu için siz kendi ortamınıza göre istediğiniz değişikliği yapabilirsiniz. Tabi bunun yanında OpenStack’i IBM, Cisco, HP, DELL vs vs destekleyen bir çok firma bulunmaktadır. Türkiye’de de belirli başlı firmalar OpenStack’i kullanmaktadırlar.
Birçok firma kendi OpenStack üzerinde çeşitli geliştirmeler yaparak kendi dağıtımlarını çıkarmışlardır
2012 yılında Redhat ilk preview Openstack dağıtımını duyurdu. Bunun ismi Essex ‘di.
2013 yılında Oracle sponsor olarak OpenStack’a katıldığını açıkladı. 24 Eylül 2014’de IceHouse sunuldu.
2014 yılında HP Helion ürününü açıkladı ve HP Helion OpenStack Community preview versiyonu yayınlandı.
2015 yılında Platform9, OpenStack’in VMware vSphere ile birlikte çalışabilir olduğunu açıkladı.
Yukarıdaki sıralamada mutlaka arada atladıklarım olmuştur. Openstack’in gelişme sürecinden kısaca bahsettim. Daha yazacak çok şey var elbet ancak bukadarı genel anlamda yeterli diye düşünüyorum.
OpenStack’i kullanabilmeniz için çeşitli bileşenlerini bir araya getirip mimariyi oluşturmanız gerekiyor. Bunun için OpenStack’in servislerinden kısaca bahsedeyim.
Öncelikle OpenStack’in tüm servislerinin Python ile yazıldığını belirteyim.
Compute (Nova):
Aslında bu en kolay anlaşılabilecek servis. Bu servis IaaS’ın bir parçasıdır ve bunun sayesinde compute yani sanallaştırma yönetimi yapılır. Yönetim, sunucu kaynak havuzunun otomatikleştirilmesi hemde bare metal ve HPC yani high performance computing’in; genişletilmiş sanallaştırma teknolojilerine uygun olarak çalışması için tasarlanmıştır. KVM, VMware, Xen, Hyper-V, XenServer, lxc gibi destekleri bulunmaktadır. Virtual machine’ler yani sanal makineler bunun üzerinde çalıştığı için en önemli servislerin birtanesidir.
Image Service (Glance):
Glance servisi image yönetimini yapar. Yani sanal makinaların imajlarını yönetir. Depolamış olduğunuz image’ları template olarak kullanabilirsiniz. Bunun bir sınırı olmadığı için sınırsız sayıda image’i veya template’i saklayabilir, kullanabilirsiniz. Openstack.org, glance ve diğer openstack module’lerinin update’lerini her 6 ayda bir çıkartır.
Dashboard (Horizon):
Horizon modülü sayesinde biz grafik arayüze bağlanabilir ve buradan provision işlemlerini gerçekleştirebiliriz. Bu modüle 3.party ürünleri ve servisleri kendi içinde barındırır. Yani faturalandırma, monitoring gibi ekstra yönetim araçlarınıda barındırır. Branding işlemleri için oldukça customize edilebilir bir yazısı vardır. Hatta bazı vendor bu arayüzü değiştirip müşterilerinede kullandırmaktadır.
Identity Service (Keystone):
Keystone sayesinde kimlik yönetimini yapabilirsiniz. Bu servis sayesinde ortak bir kimlik yönetimi yapabilirsiniz. Bu aslında VMware’deki SSO sistemini biraz andırıyor. Keystone’u, LDAP ile entegre edebilir veya mevcut backend directory service’leri ile entegre edebilirsiniz. Standart kullanıcı adı veya token-based sistemler support edilmektedir.
Networking (Neutron):
Neutron servisi, OpenStack üüzerinde bulunan network ve IP adres’lerini yönetir. Bunu biraz daha detaylandıracak olursak, Neutron sayesinde IP adres’ler, izin verilen static IP adresler veya DHCP bu servis tarafından yönetilebilir.Bu servis sayesinde kullanıcılar kendi networklerini oluşturabilir.
Block Storage (Cinder):
OpenStack Block Storage yani Cinder, OpenStack Compute instance’lar ile kullanılmak üzere sürekli olarak block level storage sağlar. Block Storage sistemi, block device’larının oluşturulması ve sunuculara bağlanması ekstra olarak detach edilmesini yönetir. Block storage volume’ları tamemen OpenStack Compute’e entegredirler ve Dashboard sayesinde bulut kullanıcılarının kendi depolama ihtiyaçlarını yönetmelerine izin verir. Local Linux server storage yerine şu depolama platformlarınıda kullanabilir. Ceph, CloudByte, Coraid, EMC (ScaleIO, VMAX and VNX), GlusterFS, Hitachi Data Systems, IBM Storage (IBM DS8000, Storwize family, SAN Volume Controller, XIV Storage System, and GPFS), Linux LIO, NetApp, Nexenta, Nimble Storage, Scality, SolidFire, HP (StoreVirtual and 3PAR StoreServ families) and Pure Storage. Block level storage performansa duyarlı senaryolar için uygundur. Bu senaryolar; database depolaması, genişletilebilir dosya sistemleri veya raw block level storage erişimi olan bir sunucu sağlamadır. Snapshot yönetimi, block storage volume’leri üzerinde depolanmış verilerin yedeklenmesi için güçlü fonksiyonlar sağlar. Snapshot’lar geri yüklenebilirler veya yeni bir blcok storage volume’u oluşturmak için kullanılabilirler.
Orchestration (Heat):
Heat, hem doğal bir OpenStack REST API’ı hem de CloudFormation uyumlu bir Query API’ı yoluyla, şablonlar kullanarak birden fazla birleşik cloud uygulamasını yönetmek için bir servistir.
Telemetry/Metering (Ceilometer):
OpenStack Telemetry Servisi (Ceilometer), faturalama sistemleri için bir Single Point Of Contact sağlar, böylece şu anki ve gelecekteki bütün OpenStack komponentleri üzerinde müşteri faturası oluşturmak için ihtiyacınız olan bütün sayaçları sağlar. Sayaçların dağıtımı izlenebilir ve denetlenebilirdir. Sayaçlar, yeni projeleri desteklemek için kolaylıkla genişletilebilir olmalıdırlar. Veri toplayan ajanlar genel sistemden bağımsız olmalıdırlar.
Database (Trove):
Trove, ilişkisel ve ilişkisel olmayan veritabanı motorunu hazırlayan bir database-as-a-service’dir.
Elastic Map Reduce (Sahara):
Sahara, Hadoop cluster’ları kolayca ve hızla hazırlayan bir komponentir. Kullanıcılar, Hadoop sürüm numarası, cluster topolojisi tipi, flavor detayları (disk alanı belirleme, işlemci ve RAM ayarları) ve diğerleri gibi çeşitli parametreleri belirlerler. Bir kullanıcı bu parametrelerin hepsini belirledikten sonra Sahara, birkaç dakika içinde cluster’ı dağıtır. Sahara ayrıca, istendiğinde çalışanların node’lerı ekleyip çıkararak önceden var olan bir hadoop cluster’ını ölçeklemek için araçlar da sağlar. Hadoop ile ilgili bilgiyi aşağıdaki link’den öğrenebilirsiniz.
https://en.wikipedia.org/wiki/Apache_Hadoop
Bare Metal Provisioning (Ironic):
Ironic, sanal makinelerin yerine bare metal makinelerin hazırlanmasını amaçlayan, gelişmekte olan bir OpenStack projesidir. Başlangıçta Nova Baremetal sürücüsünden ayrılmıştı ve ayrı bir program olarak geliştirildi. Bir bare-metal hypervisor API’ı ve bare-metal hypervisor’larla etkileşim içinde olan bir plugin dizisi olarak en iyi fikirdi. Default olarak, makineleri hazırlamak ve açmak kapamak için uyum içinde PXE ve IPMI’ı kullanacaktır, ancak Ironic, ek fonksiyonları uygulamak için üreticiye özel plugin’leri destekler ve onlarla genişletilebilir.
Multiple Tenant Cloud Messaging (Zaqar):
Zaqar, Web geliştiricileri için çok kiracılı bir bulut mesajlaşma servisidir. Olay yayınını desteklemek için ek semantiğe sahip Amazon’un SQS ürününün öncülüğünü yaptığı fikirleri birleştirir. Servis, geliştiricilerin çeşitli iletişim örneklerini kullanarak SaaS’ının çeşitli komponentleri ve mobil uygulamaları arasında mesaj göndermek için kullanabileceği, tam bir RESTful API özelliğine sahiptir. Bu API’ın temeli, ölçeklenebilirlik ve güvenlik düşünülerek tasarlanmış olan etkin bir mesajlaşma motorudur. Diğer OpenStack komponentleri, olayları son kullanıcılara yansıtmak ve “bulut-üstü” katmanda çalışan konuk ajanlarla iletişim kurmak için Zaqar ile entegre olabilirler. Bulut operatörleri Zaqar’ı, müşterilerine SQS ve SNS’in eşitini sağlamak için kullanabilirler. Zaqar daha önce Marconi olarak biliniyordu.
Shared File System Service (Manila):
OpenStack Paylaşılan Dosya Sistemi Servisi (Manila), üreticinin bilinmediği bir çerçevede paylaşımları yönetmek için açık bir API sağlar. Standart temel, bir paylaşımı yaratma, silme ve erişime izin verme/reddetme yeteneklerini içerir, tek başına veya çeşitli farklı ağ ortamlarında kullanılabilir. EMC, NetApp, HP, IBM, Oracle, Quobyte ve Hitachi Data Systems’in ticari depolama cihazları desteklendiği gibi, Red Hat GlusterFS gibi dosya sistemi teknolojileri de desteklenir.
DNSaaS (Designate):
DNS as a Service’dir.
Search service (Searchlight):
Searchlight, OpenStack bulut servisleri üzerinde gelişmiş ve uygun arama özellikleri sağlar. Bunu, verilerini ElasticSearch’e indeksleyerek, diğer OpenStack API sunucularından kullanıcı arama sorgularını boşaltarak gerçekleştirir. Searchlight, Horizon’la entegre olmaya başlıyor ve bir Komut satırı arayüzü de sağlıyor.
Security API (Barbican):
Barbican, sırların güvenle depolanması, hazırlanması ve yönetilmesi için tasarlanmış olan bir REST API’ıdır. Büyük geçici Bulutlar da dahil olmak üzere bütün ortamlar için kullanışlı olması hedeflenmiştir.
Kaynak: https://en.wikipedia.org/wiki/OpenStack
Umarım faydalı olmuştur.
İyi çalışmalar.