Mesos – automatyzacja infrastruktury dla programistów… naprawdę.

Jak już wspominałem na inleo będą pojawiały się różne artykuły związane z aplikacjami, co zostało już przedyskutowane i postanowione z Lordem Maciejem. Dlaczego? Odpowiedź na to pytanie znajdziecie w artykule Atak Klonów. A więc do rzeczy. Tym razem umówiliśmy się na opisanie w kilku częściach projektu Apache Mesos.

Na podstawie https://flic.kr/p/oQHKoT

Czym zatem jest wspomniany projekt? Otóż jest to narzędzie niosące programistom nadzieje, że realnie będą mogli współdzielić infrastrukturę i uruchamiać na niej aplikację podając jedynie zapotrzebowanie na zasoby. Będą mogli zapomnieć o maszynach fizycznych, wirtualnych, systemach operacyjnych – po prostu wystarczy zażądać mocy obliczeniowej aby ją dostać. Pięknie prawda?

Należy sobie jednak powiedzieć wprost – jest to narzędzie na poziomie deweloperskim, to znaczy, że uruchamiane na nim będą środowiska (frameworks) a na nich poszczególne aplikacje kompatybilne z daną platformą. Choć na wielu portalach społecznościowych czy prezentacjach dostępnych na YouTube spotkałem się z  określeniem DataCenterOS. Mesos tak włąśnie można traktować, chociaż nie ma to zupełnie nic wspólnego z vSphere 4, okrzykniętego niegdyś przez VMware w ten sam sposób, czy z Windows cieszącego się określeniem CloudOS. Platforma Mesos to DataCenterOS w rozumieniu menadżera klastra obliczeniowego, dbającego o przydział zasobów w pierwszej kolejności dla środowisk a w następnej dla aplikacji. Dzięki temu uzyskuje się znacznie lepsze wykorzystanie zasobów dla aplikacji niż w przypadku typowej wirtualizacji.

Zatem, koleżanki i koledzy administratorzy, jeżeli dobrze znacie się na Windows Server, vSphere, Ubuntu czy innej zacnej dystrybucji Linuksa ale pierwszy raz czytacie o Mesosie to znak, że należy wziąć się do roboty i zacząć go poznawać i oswajać – podobnie jak inne technologie dalece wykraczające poza wspomniane klasyczne systemy operacyjne. Deweloperzy przyjdą do nas po takie technologie i co ważne, będą mieli zarządy firm po swojej stronie. Dobra wiadomość jest taka, że proponuje Wam wspólne poznawanie tych obszarów w kuźni technologicznej inleo.pl, gdzie postaram się od dzisiaj opisać własną przygodę poznawania Mesos’a i innych.

Skoro już wiemy mniej więcej do czego służy Mesos (historię pominiemy – zapraszam do lektury Wikipedii), przyglądnijmy się nieco koncepcji. Opiera się ona na tej samej ideologii co system Linux, z tą różnicą że na wyższej warstwie abstrakcji. O ile Linux dzieli fizyczne zasoby dla poszczególnych procesów i uwalnia nas od myślenia np. na którym fizycznym rdzeniu dokonywane są nasze obliczenia w serwerze tak Mesos zarządza całym klastrem zasobów i wykorzystuje efekt synergii wynikający z połączenia ich w jedną dużą pulę.

Podobnie rzecz ma się z izolacją. O ile w klasycznym systemie poszczególne procesy mają rozłączne przestrzenie adresowe tak Mesos realizuje zapewnienie izolacji wskroś całego klastra wykorzystując kontenery Linux.

Zanim jednak przejdziemy do rodzajów integracji i instalacji Mesos’a (w następnej części) warto wymienić jego możliwości:

  • Skalowalność do 10 tysięcy węzłów
  • dostępne API w Java, Pythonie i C++
  • Wielowymiarowe zarządzanie zasobami
  • Wsparcie dla Dockera
  • Odporność na błędy z wykorzystaniem ZooKeeper

Brzmi obiecująco dlatego w następnej części zajmiemy się omówieniem integracji i… nareszcie… instalacją rozwiązania.