Mesos nedir?

DevOps dünyasında, özellikle “autonomic” altyapı ve konteynerlerin canlı ortam dahil orkestrasyon ve yönetiminde Mesos artık söz sahibi konumda bulunmakta.

 

Mesos, C++ dilinde ilk olarak Berkeley altında geliştirilen ve şu an Apache Foundation altında açık kaynak koda sahip olan proje, sunuculardaki kaynakları(CPU, RAM, Disk, ….) soyutlayarak, datacenter ınızı tek bir büyük sunucu gibi yönetmenizi sağlar. Bunu yaparken her türlü sunucu bazlı hata ve sorunu tolere etmeye ve yük altında büyüme ve küçülmeye yönelik özellikleri de size sunar. Diğer bir getirisi ise kaynak kullanımını yükselterek, verimliliği arttırır.

 

Kullanıcıları arasında Samsung, Microsoft Azure, Twitter, Airbnb, Yelp, Ebay, Apple gibi şirketler bulunmakta.

Mesos ekosistemde bilinmesi gerekenler:

1- DC/OS(Datacenter Operating System): Mesos çekirdeğinin kurulu olduğu makinelerin olduğu tüm datacenterınızı yönetmenizi sağlıyor. Anonimite olması açısında alttaki gösterimi referans alabiliriz:

dcos

DC/OS’i mevcut datacenterınızda çalıştırabileceğiniz gibi, Azure-AWS gibi Cloud’lardaki makineleriniz üzerinde çalıştırabilirsiniz.

 

2- Marathon: Scala dili ile yazılmış, Mesos üzerine yapılandırılmış bir konteyner orkestrasyonu platformu. Uzun süreli işler için uygun olan platform, Zookeeper(bkz. Madde6) sayesinde yüksek erişilebilirlik seviyesi sağlıyor. Sahip olduğu UI vasıtası ile web bazlı bir yönetim yapabiliyorsunuz. Mesos-DNS ile SRV kayıtları bazlı “Service Discovery” özelliği barındırıyor. İleri seviye olarak da “Event Subscription” ile dış sistemler ile entegrasyon ve her instance ayrı rack/node da çalışmasını isteyebilirsiniz. Sahip olduğu REST-API ile de esnek entegrasyon ve otomasyon custom ihtiyaçlarınızı yerine getirebiliyorsunuz. Native olarak Docker destekliyor ve  konteynerlerinizi deploy-run etmek, kapatmak, ölçeklendirmek mümkün. DC/OS kullanırsanız zaten içinde bundle olarak gelmekte.

3- Chronos: Java ile yazılmış, ismini nam-ı diğer “Cron” ‘dan almakta, yani tahmin edebileceğiniz gibi “scheduled” veya “batch” diye tabir edilen, belirli zamanlarda çalışması gereken işleri yıkabileceğimiz yapı. Marathon tarafından tetiklenerek yüksek erişilebilirliği de garanti altına alabilirsiniz  Bu da DC/OS içinde bundle olarak gelmekte. 

 

4- Aurora: Twitter tarafından geliştirilen ve açık kaynak olarak Apache altında açılan proje, Marathon ve Chronos ‘un özelliklerini içermekte diyebiliriz kısaca.

 

5- Mesosphere: DC/OS’in Enterprise versiyonu diyebiliriz. Ek olarak 7×24 destek , güvenlik, monitoring ve ileri seviye network/storage özellikleri barındırmakta.

 

6- Zookeper: Apache foundation altında açık kaynak kodlu olan, dağıtık sistemlerde yönetim, konfigurasyon ve senkronizyon gibi özelliklere sahip projedir. Mesos üzerine inşa edilmiş değildir ama lider belirleme özelliği ile Mesos master’ın belirlenmesi amacıyla DC/OS’de kullanılmaktadır.

Mesos, Marathon ve Zookeper’ın birlikte mimari olarak nasıl çalıştığını gösteren bir referans :

Marathon framework bu mimaride “scheduler” olarak anılmakta. Marathon yerine Mesos ile entegre başka bir framework de olabilir. Mesos Master, kaynakları(CPU RAM, Storage, …) belirlenen politikalara göre, talep eden Framework lere sunar, ilgili kaynağı kabul edip etmeme Framework’un takdiridir. Kabul etmesi durumunda ilgili işi Master, ilgili kaynağa sahip Slave üzerinde çalıştırır.

Özetle Mesos kullanmanın bazı avantajları:

  • Hem on-premises, hem Cloud üzerinde çalışabilmesi
  • “Utilization” arttırarak verimlilik sağlanması
  • Kendi kendini iyileştiren altyapı
  • Native olarak Docker desteklemesi
  • 100lerce, hatta 1000lerce sunucuya sahip altyapınızı, soyutlama sayesinde tek bir sunucu gibi yönetmeye izin vermesi
  • Akıllı kaynak yönetimi sayesinde, CPU/RAM gibi kaynaklarınızın ortalama kullanımını arttırarak, Cloud masraflarınızı ve israfı azaltabilirme
  • Canlı ortama daha hızlı kod deploy yapabilme
  • Uzun süreli çalışan data analiz gibi işlerde ölçeklendirme
  • Basit komutlar veya tek tuş ile kompleks kurulumları yapabilme:

dcoscommandline

Sonuç olarak verimliliğin ve çevikliğin ön planda olduğu bu dönemde, datacenter’daki tüm sunucularınızı Mesos’a emanet edebilirsiniz. Hatta aramızda kalsın, AWS kullanıyorsanız “utilization” arttırarak, aylık faturanızı optimize edebilirsiniz, sssshhhh:)

Referanslar:

http://mesos.apache.org/documentation/latest/architecture/

https://mesosphere.github.io/marathon/