Back
dot dot dot
2022-09-19 11:23:33

Mikroserwisy: Korzyści z podejścia opartego na konteneryzacji

2022-09-19 11:23:33

Nasz DevOps Team Leader, Mateusz, obiecał w swoim ostatnim artykule poruszyć popularny temat: mikroserwisy i kontenery. Zgodnie z złożoną obietnicą przedstawiamy kolejną publikację.

Według Statista w 2021 roku 85% dużych organizacji używało już mikroserwisów, a 14% planowało wprowadzenie ich w przyszłości. 

Zanim jednak przejdę do szczegółów, chcę odnieść się do koncepcji jakości, a mianowicie tego, jakie są jej źródła i dlaczego jest taka ważna.  

Tworzenie aplikacji i infrastruktur wymaga jasno określonych celów. Początki ery cyfrowej są już dawno za nami, nadszedł czas na dopracowanie i uporządkowanie zasobów, tak aby zmaksymalizować ich wartość. 

Jakość ma wiele definicji, ale która z nich ma zastosowanie w naszym przypadku? Pozostawiam to pytanie otwarte, ale mam nadzieję, że po przeczytaniu tego artykułu będziesz w stanie zdefiniować własną koncepcję jakości technologicznej.  

Mikroserwisy i kontenery pod lupą

Kontenery i mikroserwisy to dwie metody, które umożliwiają firmom sprawniejsze tworzenie i dostarczanie aplikacji. 

 

Nie będę się długo rozwodzić nad tym, dlaczego ich potrzebujesz. Wystarczy powiedzieć, że współcześni klienci oczekują od aplikacji najwyższej jakości usług, ale jednocześnie ciągłej dostępności i bezpieczeństwa. Jeśli nie będziesz w stanie im tego zapewnić, Twoi klienci z pewnością znajdą to u konkurencji. 

 

Zarówno mikroserwisy, jak i kontenery pozwalają sprostać coraz bardziej wyśrubowanym oczekiwaniom w zakresie szybkości, jakości i elastyczności w tworzeniu i wprowadzaniu aplikacji. 

 

To dwie różne technologie, które można stosować niezależnie, choć często są wykorzystywane w tandemie. Przeanalizujmy więc teraz, jak działają i jakie korzyści oferują Twojej firmie. 

Zerwamy z monolitem 

Rok 2013 był przełomowy, bo właśnie wtedy zaczęto mówić o „architekturze mikroserwisów”. Od tego momentu popularność tej technologii stale rośnie, i to w astronomicznym tempie. 

Wcześniej większość aplikacji była monolityczna. Aplikacja taka stanowi pojedynczą jednostkę, a w większości przypadków jej działanie stanowi też jeden proces. 

Nadal pamiętam frustrację związaną z koniecznością ponownej instalacji całości w celu wprowadzenia w aplikacji jednej, drobnej zmiany. Albo całkowity brak narzędzi do skalowania poszczególnych elementów systemu w odpowiedzi na zmieniający się ruch. 

Cały proces zarządzania zmianami i wydawania nowych wersji był utrapieniem dla wielu osób pracujących przy projekcie. Jedną z najgorszych chwil była sytuacja, w której błąd w mało znaczącym elemencie monolitu udaremnił wszystkim użytkownikom dostęp do aplikacji. 

Z moich doświadczeń wynika, że ponad 90% klientów jest zadowolonych z wdrożenia mikroserwisów w swoich firmach. Jak jednak wiadomo, wszystko ma swoje wady i zalety. Postaram się je teraz wyłuszczyć.

Główna zaleta mikroserwisów

Demontaż architektury monolitycznej może się z początku wydawać prostym zadaniem, ale od razu zaznaczam, że wymaga ono sporej wiedzy. 

 

Ryzyko opóźnień przy wdrażaniu zaktualizowanych wersji aplikacji w nowej infrastrukturze i architekturze mikroserwisów jest wysokie, a zadanie bardziej skomplikowane, niż wygląda, dlatego trzeba brać pod uwagę wzrost kosztów bieżących. 

 

Ryzyko jest jednak niczym w świetle korzyści, które oferują mikroserwisy. Taka architektura pozwala skutecznie zredukować podatność produktu na awarie dzięki podziałowi aplikacji na mniejsze części. Oczywiście całkowity brak zależności jest nieosiągalny, ale można uniknąć sytuacji, w której drobnostka spowoduje niedostępność całego systemu. 

 

Kluczowe jest niezależne wdrażanie każdego elementu aplikacji, dzięki temu można bowiem wykorzystać nowsze technologie na poszczególnych stronach. Co więcej, poszczególne elementy można testować i sprawdzać niezależnie, dzięki czemu poszczególne zespoły mogą współdzielić odpowiedzialność za poszczególne składowe aplikacji. 

 

Wierzę, że udało mi się przekonać Cię do mikroserwisów, mogę więc pewnie przejść do idei kontenerów. 

Korzyści z konteneryzacji mikroserwisów 

Kontenery są najbardziej popularną metodą wdrażania architektury mikroserwisów i jest ku temu kilka powodów. 

Konteneryzacja zyskała popularność w połowie lat 10. XXI wieku, wraz z wprowadzeniem Dockera i Kubernetes, które zapewniły tak potrzebne narzędzia do tworzenia aplikacji i zarządzania nimi.

Główną zaletą kontenerów jest ich wydajność. Umożliwiają one działanie aplikacji, bezpośrednio udostępniając zasoby z systemu operacyjnego serwera, na którym są uruchamiane. Dzięki temu kontenery obniżają koszty ogólnozakładowe, a także uruchamiają się szybciej niż maszyny wirtualne.

Co więcej, kontenery izolują aplikacje czy mikroserwisy, co znacznie zmniejsza ryzyko rozprzestrzeniania się potencjalnych podatności w zakresie bezpieczeństwa. 

Architektura tego typu sprzyja ponadto wykrywaniu usług, ponieważ lokalizacja i komunikacja mikroserwisów jest uproszczona w przypadku ich działania w kontenerach zarządzanych w ramach jednej platformy. Ułatwia to projektowanie i budowanie wydajnej architektury sieciowej. 

Kontenery ułatwiają także orkiestrację mikroserwisów. Dzięki orkiestracji każdy element można traktować osobno, skalując go, dostosowując jego wydajność do potrzeb i konfigurując odpowiednie oceny funkcjonowania. 

Dodatkowo można zautomatyzować uruchamianie poszczególnych komponentów, można też zastosować podejście blue-green deployment. 

Na koniec warstwa całodobowego monitoringu i gotowe! O ile konfiguracja okaże się poprawna, zyskamy zautomatyzowany i bezpieczny system o podatności na awarie zredukowanej do poziomu pojedynczego elementu. W razie potrzeby powrót do poprzednich wersji systemu będzie nadal możliwy. 

Choć opisany proces wydaje się prosty, jest dość złożony, dlatego warto skorzystać ze wsparcia doświadczonych konsultantów do spraw projektowania infrastruktur w chmurze.  

Podsumowanie

Architektura mikroserwisów to wciąż stosunkowo nowy trend, który jednak aktualnie wiedzie prym w branży. Współpraca między programistami i DevOps przekłada się na możliwość realizacji ambitnych, ale i wymagających projektów – jedynym ograniczeniem jest nasza wyobraźnia. 

 

Stajemy więc przed pytaniem: „co dalej?”. Z technologiami mikroserwisów i kontenerów pracuje już bardzo wielu specjalistów, dlatego można mieć nadzieję na dalszy rozwój i kolejne innowacyjne pomysły. 

 

Nadal jednak zbyt wiele osób korzysta z monolitycznych systemów, które z pewnością wiele by zyskały dzięki zastosowaniu kontenerów i mikroserwisów, więc… do dzieła!

 

Źródła:

Statista – Do you utilise Microservices within your organization?

 

O autorze: Mateusz Grządzielski, posiada prawie 10-letnie doświadczenie w branży IT. Pracował na wielu stanowiskach wsparcia technicznego – od specjalisty po team leadera.

W Tenesys kieruje zespołem Inżynierów DevOps, skupiając się na projektach klientów i dobrej atmosferze całego zespołu. Poza informatyką Mateusz studiuje na Uniwersytecie Ekonomicznym w Poznaniu i prowadzi własną firmę. 

previous next
scroll