Nasza strona używa cookies. Dowiedz się więcej o celu ich używania i zmianie ustawień w przeglądarce. Korzystając ze strony, wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki. Rozumiem

Co to jest OpenStack?

Jakub Gutkowski Principal Software Engineer / blog.gutek.pl
Poznaj platformę chmurową OpenStack i sprawdź, z jakich narzędzi się składa.
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! :)

Zobacz więcej na Bulldogjob

Masz coś do powiedzenia?

Podziel się tym z 80 tysiącami naszych czytelników

Dowiedz się więcej
Rocket dog