Jakub Gutkowski
Jakub GutkowskiPrincipal Software Engineer / blog.gutek.pl

Co to jest OpenStack?

Poznaj platformę chmurową OpenStack i sprawdź, z jakich narzędzi się składa.
2.04.20194 min
Co to jest OpenStack?

Czytając artykuł na temat wykorzystania kubernetes przez różne platformy chmurowe, natrafiłem na produkt OpenStack. Klasyfikował się on na 3 pozycji (wśród chmur, 4 z on-premises), wyprzedzając Azure. A to znaczy, że warto się przynajmniej na tyle zainteresować produktem, by wiedzieć co to i po co on jest.

TL;DR

OpenStack to chmura, którą można zainstalować na swoim sprzęcie i tworzyć zarówno chmury prywatne, jak i publiczne. Cały projekt jest open source i został zainicjonowany przez NASA oraz Rackspace.

Krótka historia

W 2010 roku NASA i Rackspace Hosting zjednoczyli się i stworzyli inicjatywę open source – OpenStack. Platformę do tworzenia chmur prywatnych, jak i publicznych. Wraz z czasem coraz więcej firm i organizacji dołączało się do wspierania projektu: HP, Oracle, Debian, Intel, Red Hat czy też Ubuntu. Ogólnie masa znanych firm.

Co nie przeszkodziło NASA stwierdzić, że jednak ten fajny pomysł nie jest dla nich taki fajny i po 3 latach nie widzą postępu, więc powiedzieli papa. Jednak cała architektura, jak i pierwsze wersje OpenStack brały dużo z NASA. Co też wpłynęło na nazwy poszczególnych elementów/modułów systemu.

Jak każda chmura, przychodzi ona ze swoim nazewnictwem i swoimi modułami, jak i szeregiem mini narzędzi do tworzenia poszczególnych elementów w systemie.

Co się składa na OpenStack?

OpenStack składa się z szeregu modułów. Część z modułów udostępnia narzędzie, z którego można korzystać. Co lepsze, z powodu, że OpenStack został napisany w Pythonie, to wszystkie narzędzia są dostępne jako paczki python. Próba instalacji tego jakoś bardziej “normalnie” - nie istnieje. Dodatkowo dla mnie nie pojęte jest to, że mam ~10różnych poleceń. To, co zrobił Azure, wydaje się więc fajne: az MODUŁ parametry. Dzięki czemu użytkownik ma jeden punkt dostępu, a nie ~10.

Opisuje po krótce moduły tylko z jednego powodu – ja sam nie rozumiem, co do mnie ludzie mówią lub piszą w sprawie OpenStack. Więc bardzo chciałbym to zrozumieć. Przynajmniej by swift nie kojarzył mi się tylko z językiem programowania a z object storage. Mam nadzieję, że komuś to się też przyda.

  • freezer– backupowanie i ratowanie ;)
  • ironic– wykorzystanie sprzętu fizycznego, a nie wirtualnego do udostępnienia i zarządzania nim w chmurze.
  • nova– to samo co ironic tylko dla maszyn wirtualnych. Dla bare metal zostanie wykorzystany ironic. By działać, potrzebuje minimum keystoneglance i neutron.
  • keystone– zarządzanie tożsamością, jak i wsparcie uwierzytelniania, do tego centralny zbiór informacji o użytkownikach i dostępnych dla nich usługach.
  • glance– serwis do zarządzania obrazami VM. Taki centralny rejestr dostępnych maszyn VM, z którym możemy skorzystać, jak i też możemy dodać nowe maszyny do rejestru. Glance jednak nie jest odpowiedzialny za “przechowywanie” tych obrazów. To są już inne usługi.
  • neutron– w skrócie system do zarządzania sieciami i adresami IP.
  • magnum– system do tworzenia orchiestracji kontenerów docker. Sam w sobie nie jest orchestratorem. Może on wykorzystać kubernetes, swarm, jak i mesos.
  • horizon– UI/Dashboard do zarządzania OpenStack, nie wszystko jest możliwe, plus za to, że jest.
  • sahara– udostępnienie takich usług do przetwarzania danych jak Hadoop, Spark czy Storm.
  • trove– DBaaS – Database as a Service.
  • designate– umożliwia zarządzanie DNS multi-tenant. Można to nazwać DNS as a Service i podobnie jak magnum on tylko pośredniczy w dostępie do, a nie jest usługą DNS.
  • congress– Policy as a Service, umożliwia określanie zasad, jakie powinny być przestrzegane, jak i ich monitorowanie oraz działanie proaktywne i reaktywne. Wykorzystuje inne usługi w celu gromadzenia danych i weryfikacji policy.
  • watcher– optymalizacja wykorzystania zasobów.
  • octavia– load balancing.
  • zaqar– system wiadomości i notyfikacji.
  • tricircle– automatyzacja zarządzania siecią dla wielu regionów (powody).
  • blazar– system rezerwacji i wypożyczania zasobów.
  • searchlight– indeksowanie i przeszukiwanie zasobów OpenStack.
  • manila– udostępnia API do zarządzania udostępnieniami dysków. Przynajmniej ja to tak rozumiem. Że niezależnie od systemy plików możemy współdzielić odpowiednie foldery, dyski między innymi zasobami.
  • solum– środowisko programistyczne umożliwiające prostą integrację usług OpenStack. Przynajmniej ja to tak rozumiem.
  • swift– rozproszony systemem przechowywania blobów. Eventually consistent.
  • heat– system orchiestracji chmury w deklaratywny sposób, taki yaml dla k8s czy arm templates w azure.
  • mistral– usługa umożliwiająca budowanie przepływów prac bez pisania kodu… tylko trzeba napisać yaml ;)
  • barbican– przechowywanie bezpiecznie danych, secure key storage.
  • vitrage– narzędzie do analizy problemów w chmurze.
  • ceilometer- narzędzie do zbierania danych (sposobie wykorzystywania, zasobach itp.) w znormalizowany sposób i przekazywanie tych danych pomiędzy komponentami OpenStack.
  • panko– przechowywanie i przetwarzanie eventów wygenerowanych przez celiometer.
  • aodh– jeżeli zdarzy się coś konkretnego (zdefiniowanego), to wykonaj następujące akcje.


Wydaje mi się, że opisałem większość albo wszystkie aktualnie wykorzystywane moduły/komponenty. Jest to na pewno dobry overview. Przynajmniej teraz, jak będziemy gadać o magnumach, to nikt nie skoczy do sklepu ;)

Taka moja obserwacja. Z jednej strony fajnie, że mają różne ciekawe nazwy produktów. Z drugiej strony ciężko jest mi się domyśleć, co autor miał na myśli. Chociaż… może takie nazwy zapadają w pamięć i potem łatwiej się to pamięta?

Wiem jedno, że jakby ktoś do mnie mówił o OpenStack, a ja bym nie znał tej listy słów i modułów, to byłby to dla mnie język chiński.

Podsumowane

Jak dla mnie, by w pełni korzystać z OpenStack, trzeba się dobrze znać na sieciach. Mamy tak naprawdę IaaS, a nie PaaS. Z drugiej strony, mamy kontrolę nad tym, co i jak chcemy. Każda rzecz ma swoje plusy, jak i minusy.

Sam jestem ciekaw, jak będzie się z tego wszystkiego korzystało! :)

<p>Loading...</p>