Şu anda yeni Apache Mesos bulut kurulumumuzun mimarisini tasarlama sürecindeyiz. Amaç, farklı yığınları aynı mimariye taşıyarak sistemlerimizi birleştirmektir. Ana iş yükleri Apache Spark kullanan büyük veri analizi ve web sunucuları, posta sunucuları vb. Gibi kurumsal altyapımızdır.
Fikir, web hizmetlerimizi Mesos (Marathon / Chronos, Aurora veya Singularity) için mevcut programlayıcılardan birinin üstünde çalışan Docker konteynerlerinde çalıştırmaktır. Bu nedenle bu, ilk Mesos çerçeve grubu olacaktır. Yanında, Apache Spark çerçevesi ve veri depolama için çeşitli veritabanı çerçeveleri olacaktı. Bu, Mesos çerçevelerinin ikinci grubu olacaktı. Test için hepsini paralel olarak çalıştırdıktan sonra özellikleri seçeceğiz.
Bununla birlikte, Mesos'un kendisini hangi temelde yöneteceğine karar vermekte zorlanıyoruz. İdeal olarak, metale mümkün olduğunca yakın çalıştırmak istiyoruz. Ayrıca Mesos ve çerçeve artalan süreçlerinin her zaman başarısızlıkla sonuçlandığından / yeniden başlatıldığından emin olmak için bir düzenleme çözümü kullanmak istiyoruz. Düşündüğümüz seçenekler aşağıdaki gibidir:
1) Mesos ve iskeletleri asgari bir işletim sisteminde liman işçisi konteynırları olarak çalıştırmak. Bu bakımdan şu anda CoreOS ve Filoya doğru eğiliyoruz.
2) Mesos ve çerçeveleri doğrudan Ubuntu / Debian sunucularında çalıştırmak. Bu seçenek için Foreman ve Kukla'ya yöneliyoruz.
Soruya gelince, önem sırasına göre çözümü tanımlamak istiyoruz:
- yapılandırılması en az karmaşık olan
- bakımı ve güncel tutulması en kolay
- en az ek yüke sahip
Daha önce CoreOS ile çalışmadık, ancak yöneldiğimiz seçenek bu. Bununla ilgili büyük (öznel) bir sorun, Mesos'u Docker kaplarında çalıştırdığımız ve sonra Docker kaplarını Mesos'ta çalıştırdığımız. Bu "kirli" ve benim için yanlış görünüyor. Bu değer haksız mı?
Benzer bir düşünce katmanlar arasındaki fazlalık ile ilgilidir. Nereden geldiğimi açıklamak için, Mesos'un metalin hemen üzerinde çalışan gerçek bir işletim sistemi olup olmadığını tercih ederim. Hangi temeli kullanırsanız kullanın, mimarinin birden fazla katmanında (yani CoreOS & Fleet & SystemD == Mesos & Marathon & Chronos) aynı amaçlanan işlevsellik ile sonuçlanırsınız. Bu kaçınılmaz mı?
Ölçütlerimizi göz önünde bulundurarak, dikkate almadığımız Mesos'un altındaki katmanı çalıştırmak için başka iyi seçenekler var mı?