To Narzędzie Pozwoli Ci Opanować Kontenery w Twojej Organizacji i Stać Się Mistrzem Mikroserwisów
Opowiem Ci dzisiaj o bardzo ciekawym narzędziu pozwalającym w łatwy prosty sposób pracować z konteneryzacją.
OpenShift jest open source’ową platformą w modelu PaaS stworzoną przez firmę Red Hat, pozwalającą na kompleksowe podejście do deploymentu i zarządzania kontenerami. Wykorzystuje ona technologię konteneryzacji Docker oraz orkiestrator Kubernetes.
ALE ZANIM KONKRETY.
PAMIĘTAJ!
Pamiętaj, że poniższą teorię zaprezentuję w 100% praktyce podczas webinaru! Zarezerwuj miejsce siedzące!
Architektura rozwiązania
OpenShift udostępnia nam dużo narzędzi, które mocno ułatwiają i przyśpieszają pracę oraz pozwalają na lepsze zarządzanie kontenerami oraz procesem ich tworzenia – i to bardziej niż klasyczny Kubernetes.
Poniżej przedstawiłem koncepcyjną architekturę rozwiązania wraz z opisem poszczególnych elementów.
Wiem, to nie jest prosta lektura, ale warto przeczytać ją z uwagą.
POD
Podstawową jednostką są POD-y. Jest to warstwa abstrakcji, w której umieszczane są kontenery. W zależności od przeznaczenia POD-a, można w nim umieszczać od jednego do kilku kontenerów. Dobrą praktyka jest, aby dany POD realizował jeden scenariusz biznesowy, posiadając główny kontener z aplikacją i jeśli potrzeba to kontenery wspomagające (np. z jakimś API, dokumentacją w formie Swager).
Services
Ponieważ cykl życia POD-ów powoduje, że mogą być one usuwane i uruchamiane dynamicznie, przez co ich adresy są również dynamiczne, stworzone zostały serwisy, które jednoznacznie wiążą POD-y danego typu z stałym identyfikatorem reprezentującym dany set podów.
Routes
OpenShift-owy mechanizm pozwalający na udostępnienie i przypisanie serwisom zewnętrznych endpointów, pozwalających na dostęp do aplikacji umieszczonych w POD-ach dla użytkowników zewnętrznych.
Replication Controller
Mechanizm zarządzający cyklem życia POD-ów. Dba on o to, aby dana liczba replik dla konkretnego POD-a była ciągle uruchomiona. Jest to podstawowa usługa zapewniająca nam replikację i mechanizmy disaster recovery dla PODs.
Builds
Build to proces transformacji parametrów wejściowych w obiekt wyjściowy. W większości przypadków, proces ten używa konfiguracji wejściowej lub kodu źródłowego do stworzenia uruchamialnego obrazu. Wykorzystuje on trzy możliwe typy buildów:
- Docker build: build na podstawie pliku DockerFile
- Source To Image: tworzenie nowych obrazów na podstawie image builderów (obrazów bazowych) dla poszczególnych technologii.
- Custom build: własne predefiniowane buildy.
Source To Image
Mechanizm pozwalający na tworzenie obrazów Docker, bazujących na obrazach builderów dla poszczególnych technologii (np. Java, Rubby itd.). Skompilowany kod źródłowy umieszczany jest w obrazie buildera, tworząc gotowy do uruchomienia obraz dla naszej aplikacji. S2I obsługuje buildy przyrostowe, co pozwala na re-użycie pobranych wcześniej zależności, zbudowanych artefaktów itp. Mechanizm ten daje nam możliwość także ciągłego przebudowywania obrazów, co pozwala prosto wprowadzać poprawki bezpieczeństwa do istniejących już aplikacji. Dodatkowo nie wymaga on używania klasycznego DockerFile, przez co użytkownik tworzący nowy obraz nie potrzebuje dostępu roota oraz posiada mniej miejsc, w których mógłby popełnić błąd podczas tworzenia obrazu. S2I wymusza także stosowanie dobrych praktyk podczas tworzenia obrazów, przez co są one wydajniejsze niż często w przypadku klasycznego ich tworzenia.
Image stream
Usługa pozwalająca na automatyczny update kontenerów w momencie, gdy nowa wersja obrazu, z którego powstały jest dostępna. Deploymenty znane z klasycznego Kubernetesa nasłuchują na zmiany konkretnych obrazów w image stream, po czym aktualizują odpowiednie kontenery.
Integrated Docker Registry
OpenShift posiada wbudowane repozytorium obrazów Docker, dzięki czemu nie musimy korzystać z zewnętrznych usług repozytoriów jak np. ACR w Azure.
Deployment i deployment configuration
Opierając się na Replication Controllers, OpenShift dodaje rozszerzoną obsługę cyklu rozwoju oprogramowania i wdrożenia z koncepcja continuous delivery. W najprostszym przypadku wdrożenie po prostu tworzy nowy replication controller i pozwala na uruchomienie POD. Dodatkowo pozwalają zasubskrybować się na zmiany w obrazach i wdrażać najnowsze ich wersje automatycznie, a także za pomocą hooks “wpiąć się” do zdarzeń związanych z utworzeniem replication controllera (przed i po).
Konkrety – dlaczego warto wybrać OpenShifta?
Oto kilka (-naście) cech, które powodują, że OpenShift jest idealnym wyborem dla osób chcących uruchomić swój system z wykorzystaniem konteneryzacji:
- Wbudowane mechanizmy zapewniające Continuous Delivery dzięki Image Stream i mechanizmowi deploymentu.
- Source to Image – budowanie kontenerów bezpośrednio ze źródeł, bez potrzeby posiadania dużej wiedzy o technologii Docker.
- S2I pozwala stworzyć mechanizm Continuous Integration – commit do kodu źródłowego jest w stanie wywołać proces builda i automatycznego tworzenia obrazów.
- Własne repozytorium obrazów Docker.
- Przemyślany UI, który powoduje, że obsługa OpenShifta jest prosta i przyjemna.
- Wbudowany serwer OAuth pozwalający na zarządzanie dostępem użytkowników do poszczególnych projektów.
- Podział kontenerów na projekty za pomocą namespaców Kubernetes-owych.
- Multi-tenancy: możliwość pełnego wydzielenia zasobów sprzętowych, sieci czy projektów.
- Wbudowany serwer metryk.
- RHEL jako podstawa.
- Bardzo dobra dokumentacja produktu i wsparcie community.
A dlaczego OpenShift w chmurze?
OpenShift dodatkowo oferuje:
- Support klasy enterprise dla komercyjnej wersji.
- Gotowe template’y dla Azure i AWS.
- Integrację z Azure Active Directory pozwalającą na udzielanie dostępu dla użytkowników AD do poszczególnych projektów.
- Gotowe komponenty do integracji z VSTS.
- Prostotę w obsłudze, dzięki dobrze zrobionemu UI oraz wsparciu procesów devops.
- Własną chmurę, w której możemy odpalić klaster OpenShift.
Warto pójść o duży krok dalej i na własne oczy zobaczyć korzyści OpenShifta. Nie wierz mi na słowo! Zapisz się na webinar!
Do zobaczenia!
Już 21 czerwca dowiesz się, jak możesz wykorzystać AI w Twojej firmie. Damian Mazurek i Piotr Kalinowski wprowadzą Cię w świat sztucznej inteligencji i LLM.
Przed nami nowy rozdział! Chmurowisko dokonało połączenia z polskim Software Mind – firmą, która od 20 lat tworzy rozwiązania przyczyniające się do sukcesu organizacji z całego świata…
Grupa Dynamic Precision podjęła decyzję o unowocześnieniu swojej infrastruktury. Razem z Oracle Polska prowadzimy migrację aplikacji firmy do chmury OCI.
Już 21 czerwca dowiesz się, jak możesz wykorzystać AI w Twojej firmie. Damian Mazurek i Piotr Kalinowski wprowadzą Cię w świat sztucznej inteligencji i LLM.
Zapisz się do naszego newslettera i
bądź z chmurami na bieżąco!
z chmur Azure, AWS i GCP, z krótkimi opisami i linkami.