Strona Główna / Blog

To Narzędzie Pozwoli Ci Opanować Kontenery w Twojej Organizacji i Stać Się Mistrzem Mikroserwisów

Damian Mazurek

Damian Mazurek

CTO w Chmurowisko. Jestem architektem pracującym z .NET, Node.JS i Microsoft Azure. Specjalizuję się w budowaniu globalnie rozproszonych aplikacji oraz rozwiazań IoT. W Chmurowisku odpowiadam za projekty związane z tworzeniem rozwiązań dla naszych klientów z wykorzystaniem rozwiązań PaaS oraz FaaS. Skontaktuj się z nim pisząc na ten adres.

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!

Dołącz do listy mailingowej!

Dołącz do naszego newslettera

Staramy się wysyłać tylko wartościowe informacje, np. co miesiąc dostaniesz spis najważniejszych nowości z chmur Azure, AWS i GCP, z krótkimi opisami i linkami.