Artykuł z magazynu ITwizProgramowaniePolecane tematy
OpenStack, czyli jak efektywnie wdrożyć IaaS
Open Stack to projekt open source, którego celem jest stworzenie standardu „infrastruktury jako usługi”, IaaS system. Jak zainstalować i utrzymywać produkcyjnie IaaS OpenStack? Gdzie najlepiej sprawdza się OpenStack platforma? Trzy kategorie instalacji OpenStack? Jaki jest jego związek z Linuxem? Odpowiadamy na te i wiele więcej pytań.
Tekst pochodzi z numeru 6-7/2015. W numerze także: kompleksowa modernizacja IT w RWE Stoen Operator; czym jest hiperkonwergentna infrastruktura; cloud computing w oczach CFO; architektura dostosowana do Bimodal IT; OBASHI metodą na porozumienie biznes-IT; innowacje a nowe produkty i modele biznesowe wg profesora Harvard Business School; bezpieczeństwo w organizacjach publicznych i administracji.Wydaje się, że – realizowany pod kierunkiem Fundacji OpenStack – projekt OpenStack jest skazany na sukces. Uczestniczy w nim ponad 100 firm technologicznych. Nie jest to w żadnym wypadku projekt akademicki, ani nawet społecznościowy, rozwijany w ramach działalności hobbystycznej. OpenStack jest wspierany przez inwestycje ze strony kilku dużych dostawców rozwiązań IT, czołowych dostawców sprzętu i oprogramowania. Są to firmy, które widzą korzyści z tej technologii dla własnej działalności. Choć każdy stara się rozwijać OpenStack w swoim kierunku, budować na nim własny kawałek biznesu. Dzięki temu jednak projekt rozwija się niezwykle dynamicznie. Red Hat OpenStack – wspierając rozwój bardzo szerokiego spektrum modułów i funkcjonalności – jest jednym z liderów technologii OpenStack.
OpenStack jest platformą, która w założeniach ma obsługiwać elastyczne aplikacje chmurowe skalowane poziomo. Zamiast budować kosztowne rozwiązania wysoko dostępne – które stanowią podstawę niezawodności usług IT – organizacje mogą uruchomić aplikację, która ma tę technologię natywnie zintegrowaną i jest odporna na awarię maszyny wirtualnej. Aplikacja ta może używać mniej kosztownej infrastruktury, wykorzystującej proste, zunifikowane technologie x86, i w tym przypadku mechanizmy zapewniające SLA opierają się na dostępności aplikacji jako całości, a nie pojedynczej maszyny wirtualnej.
OpenStack umożliwia budowanie rozwiązań IaaS w bardziej ekonomiczny sposób. Jedną z głównych zalet tego rozwiązania jest to, że dostęp do usług obliczeniowych, sieciowych i pamięciowych można uzyskać na drodze programowej, a nie sprzętowej. Technologia ta szybko się rozwija, jednak wymaga tego samego od aplikacji, które będą na IaaS platformie uruchamiane. Ponadto, tradycyjne obciążenia nie są jeszcze przystosowane do architektury OpenStack. W tej sytuacji obserwowanie typów modeli biznesowych, które wyłaniają się wokół tej platformy, i tego, jak poszczególne marki wiążą się z projektem otwartej chmury, wydaje się bardzo ciekawe.
Gdzie najlepiej sprawdza się OpenStack
OpenStack jest platformą, która w założeniach ma obsługiwać elastyczne aplikacje chmurowe skalowane poziomo. Zamiast budować kosztowne rozwiązania wysoko dostępne – które stanowią podstawę niezawodności usług IT – organizacje mogą uruchomić aplikację, która ma tę technologię natywnie zintegrowaną i jest odporna na awarię maszyny wirtualnej. Aplikacja ta może używać mniej kosztownej infrastruktury, wykorzystującej proste, zunifikowane technologie x86, i w tym przypadku mechanizmy zapewniające SLA opierają się na dostępności aplikacji jako całości, a nie pojedynczej maszyny wirtualnej. Nowoczesne aplikacje są w stanie skalować się poziomo w sposób bardzo dynamiczny, stosując platformę OpenStack jako źródło zarządzania zasobami obliczeniowymi.
OpenStack pozwala na budowanie infrastruktury chmurowej zarówno prywatnej, jak i publicznej. To elastyczna platforma, na bazie której dostawcy usług cloud computing IaaS oferują swoje usługi. Wewnątrz danej organizacji zespoły IT mogą zapewnić infrastrukturę pod nowe projekty, systemy dewelopersko-testowe, a także środowiska produkcyjne. Pozwoli to w prosty sposób zmieniać przeznaczenie zasobów obliczeniowych, traktując je jako dostępną pulę do dowolnego wykorzystania.
Kolejnym przykładem, który wywiera równocześnie duży wpływ na rozwój projektu OpenStack, jest Network Function Virtulization (NFV). Unifikacja sprzętu i próba zdefiniowania “wszystkiego” programowo dotyczy nie tylko obszarów Data Center, takich jak pamięci masowe (Software Defined Storage) czy sieci (Software Defined Network). Trend ten rozwija się także bardzo dynamicznie w obszarze specjalistycznych, dedykowanych urządzeń telekomunikacyjnych. Dostrzegło to wielu producentów próbujących obecnie utrzymać się na rynku, poprzez oferowanie wirtualnych wersji swojego sprzętu. OpenStack dzięki swojej elastyczności jest właśnie pierwszą platformą wyboru do wirtualizacji funkcji sieciowych (NFV).
Powyższe przykłady nie wyczerpują oczywiście spektrum zastosowań OpenStack. Projekt wciąż jest rozwijany i z pewnością przyczyni się do powstania kolejnych, innowacyjnych rozwiązań.
Jak zainstalować i utrzymywać produkcyjnie OpenStack
Zanim pomyślisz o wdrożeniu OpenStack w organizacji, powinieneś dysponować pełnym obrazem swojego IT, szczegółowym wykazem, który klasyfikuje wszystkie wymagane obciążenia robocze. Opis ten powinien uwzględniać sprawy podstawowe, takie jak bezpieczeństwo w chmurze (przepisy i regulacje odnośnie do danych i prywatności), połączenia oraz zależności od innych aplikacji, wreszcie kwestie specyficzne dla aplikacji, takie jak skalowanie i architektura wysokiej dostępności, a więc czy aplikację można skalować poziomo, czy działa ona z wysokim stopniem dostępności na bezstanowych węzłach we wszystkich warstwach?
Duży wpływ na rozwój projektu OpenStack ma Network Function Virtulization (NFV). Unifikacja sprzętu i próba zdefiniowania “wszystkiego” programowo dotyczy nie tylko obszarów Data Center, takich jak pamięci masowe (Software Defined Storage) czy sieci (Software Defined Network). Trend ten rozwija się także bardzo dynamicznie w obszarze specjalistycznych, dedykowanych urządzeń telekomunikacyjnych.
Są to pytania, na które musi odpowiedzieć każdy kierownik projektu IT, zanim zacznie wdrażanie OpenStack. Oczywiście, będzie ich więcej w zależności od typu firmy, istniejącej infrastruktury IT, budżetu oraz kultury. W biznesie zwykło się mawiać, że „niepowodzenie planowania to planowanie niepowodzenia”, co sprawdza się w 100%, jeśli chodzi o wdrażanie platformy OpenStack.
Modularna architektura projektu OpenStack sprawia, że proces implementacji wymaga zestawienia ze sobą wielu niezależnych, ale jednocześnie ściśle zintegrowanych komponentów. W sposób naturalny każdy moduł jest bezpośrednio związany z systemem Linux, na którym został uruchomiony. W wersji OpenStack Juno istnieje ponad 650 różnych zależności i wymagań – bibliotek, komponentów stosu, ich wersji, które muszą być zapewnione, aby platforma pracowała stabilnie. O ile instalacja i uruchomienie aktualnej wersji oprogramowania jest stosunkowo łatwe, o tyle późniejsze utrzymanie, aktualizacje i modyfikacje mogą już nie być tak trywialne. Zatem bardzo istotne jest dobranie takiej platformy operacyjnej, która zapewni odpowiednią stabilność i płynny proces utrzymania w późniejszym okresie. Warto w tym przypadku zwrócić się do dostawcy, który ma doświadczenie i zapewni odpowiednie wsparcie oraz narzędzia.
Trzy kategorie instalacji OpenStack
Sposoby instalacji OpenStack zwykle można podzielić na trzy główne kategorie: testowe, produkcyjne i manualne. Pierwszy rodzaj instalacji przeznaczony jest do przeprowadzania pilotów i małych testów funkcjonalnych. Taka OpenStack instalacja jest łatwa do wykonania narzędziami typu PackStack, które na podstawie przygotowanego wcześniej pliku odpowiedzi instalują automatycznie oprogramowanie na wszystkich węzłach. Dzięki tej metodzie można wdrożyć OpenStack w ciągu kilku godzin.
Drugi rodzaj, to instalacja produkcyjna z zapewnieniem wysokiej dostępności usług oraz interfejsów API. Taką instalację można wykonać np. z nowym Red Hat Enterprise Linux OpenStack Platform, który jest w stanie zainstalować OpenStack od podstaw w trybie „bare metal”. Ponadto, Red Hat oferuje teraz możliwość późniejszych modyfikacji i aktualizacji instalacji systemu – coś, co było bardzo trudne do osiągnięcia z wcześniejszymi wersjami OpenStack.
Modularna architektura projektu OpenStack sprawia, że proces wdrożenia wymaga zestawienia ze sobą wielu niezależnych, ale jednocześnie ściśle zintegrowanych komponentów. W sposób naturalny każdy moduł jest bezpośrednio związany z systemem Linux, na którym został uruchomiony. W wersji OpenStack Juno istnieje ponad 650 różnych zależności i wymagań – bibliotek, komponentów stosu, ich wersji, które muszą być zapewnione, aby platforma pracowała stabilnie.
Trzecia metoda, która może być cenna dla celów edukacyjnych, to wdrożenie z poziomu wiersza poleceń. Jest to najtrudniejsza z dróg, ale pozwala zapoznać się dokładnie z technologią, a jednocześnie umożliwia wdrożenie specyficznych ustawień w największym zakresie. Każdy moduł dostarcza zestaw poleceń, których możemy używać w sposób dowolny, jeśli rozumiemy zasady działania poszczególnych komponentów środowiska.
Oczywiście to są jedynie przykłady, gdyż liczba dostępnych metod instalacji jest duża. W grę wchodzą rozwiązania, takie jak TripleO – OpenStack On OpenStack, czy inne dostępne. Ciekawym pomysłem jest uruchomienie węzła kontrolera na tradycyjnej maszynie wirtualnej w klastrze np. Red Hat Enterprise Virtualization. Eliminujemy wtedy konieczność konfiguracji poszczególnych usług w trybie wysoko dostępnym. Rozwiązanie staje się proste, a jednocześnie odporne na awarie.
Planując instalację OpenStack, nie możemy zapomnieć o podsystemach pamięci masowej czy środowisku sieciowym. Technologie te powinny podążać za dynamiką i skalowalnością całej platformy. Idealnym rozwiązaniem w tym kontekście jest programowo zdefiniowany system pamięci masowej Ceph. Dostarcza on dwa podstawowe interfejsy API, jakich potrzebuje OpenStack – pamięć obiektową – Swift lub S3 oraz pamięć binarną – RBD, z której korzystają takie moduły, jak Cinder i Nova.
O ile instalacja i uruchomienie aktualnej wersji oprogramowania OpenStack jest stosunkowo łatwe, o tyle późniejsze utrzymanie, aktualizacje i modyfikacje mogą już nie być tak trywialne. Zatem bardzo istotne jest dobranie takiej platformy operacyjnej, która zapewni odpowiednią stabilność i płynny proces utrzymania w późniejszym okresie. Warto w tym przypadku zwrócić się do dostawcy, który ma doświadczenie i zapewni odpowiednie wsparcie oraz narzędzia.
OpenStack ściśle związany z Linuksem
Należy pamiętać, że OpenStack jest zależny od Linuksa dla prawidłowego i efektywnego funkcjonowania naszych usług, wydajności całego systemu i bezpieczeństwa danych. Dlatego przedsiębiorstwa, które rozważają użycie OpenStack, powinny wziąć pod uwagę także wdrożenie platformy linuksowej. Podobnie jak w przypadku korporacyjnej dystrybucji Linuksa, warto wybrać dostawcę, który zapewni długoterminowe wsparcie przy implementacji, utrzymaniu i rozwoju naszej chmury. Pomoże nam zbudować szerszą, długoterminową strategię transformacji naszego IT, dostarczając technologii w warstwie IaaS, PaaS oraz bezpieczeństwa ze spójną platformą zarządzania całym środowiskiem.
Wojciech Furmankiewicz jest Senior Solution Architectem w Red Hat.