Kontenery i mikroserwisy – recepta na dług technologiczny
Konteneryzacja najczęściej stosowana jest w parze z architekturą mikroserwisów. Takie połączenie stanowi typowy fundament dla wielu zespołów, które korzystają ze zwinnych metodologii DevOps na potrzeby dostarczania i uruchamiania oprogramowania.
Co łączy kontenery i mikroserwisy?
Kontenery to pakiety oprogramowania, które opakowują kod i wszystkie zależne biblioteki, pliki binarne czy konfiguracyjne, tworząc tzw. obraz. Dzięki temu zawartą w nich aplikację można szybko przenosić, duplikować oraz niezawodnie uruchamiać niezależnie od środowiska systemowego.
W tym celu kontenery wykorzystują wirtualizację na poziomie systemu operacyjnego (OS) maszyny, na której są osadzone. W takiej konfiguracji OS odpowiada za rozdzielanie procesów, a także kontrolę ilości wykorzystywanych przez nie CPU i pamięci.
Dzięki takiej strukturze kontenery stanowią doskonałą podstawę pod architekturę mikroserwisów, w której aplikacje podzielone są na wiele modułów. Każdy moduł jest odpowiedzialny za jedną funkcjonalność i komunikuje się z innymi, tworząc spójną całość – aplikację lub system.
Charakterystyka i zalety mikroserwisów
Tradycyjnie systemy i oprogramowanie budowano w modelu tzw. monolitu, gdzie wszystkie części aplikacji są ze sobą bezpośrednio połączone. W takim wypadku każda zmiana wymaga aktualizacji całości systemu bądź aplikacji. Sprawia to, że procesy zarządzania i cykle rozwoju są bardzo długie, co uniemożliwia szybkie reagowanie na zmieniający się rynek oraz znacznie spowalnia cyfrową transformację.
Mikroserwisy są bezpośrednią odpowiedzią na wyzwania, z którymi mierzą się firmy korzystające z architektury monolitycznej. Podział na moduły umożliwia developerom szybsze wdrażanie nowych aplikacji oraz zmian w istniejących. Co więcej, awaria jednej części aplikacji nie sprawia, że całość staje się niedostępna, a problemy są łatwiejsze do zidentyfikowania i naprawienia.
Do głównych zalet architektury mikroserwisowej zalicza się:
Łatwość rozbudowy i aktualizacji – Podział na takie “małe projekty” ułatwia zarządzanie oraz rozwój – funkcjonalność osadzoną w kontenerze można wymienić, ulepszyć lub naprawić bez zaburzania pracy całości aplikacji.
Możliwość skalowania – Gdy system zaczyna pracować wolno, bardzo często jest to wina jednego z elementów. W architekturze mikroserwisowej można eliminować takie „wąskie gardła” poprzez skalowanie, np. odpowiednio zwiększając zasoby, które są przydzielane dla danego komponentu aplikacji.
Stała dostępność – Aktualizacje czy rozbudowa nie wymagają wyłączania całego systemu, dzięki czemu są one transparentne dla użytkowników. To gwarantuje komfort korzystania z aplikacji i niweluje wiele przestojów.
Uniwersalność językowa – Poszczególne elementy aplikacji mogą być tworzone w różnych językach, co pozwala developerom na niezależność przy rozwijaniu każdej funkcjonalności w ramach jednej aplikacji.
Mikroserwisy vs dług technologiczny
Mikroserwisy w połączeniu z kontenerami są nie tylko ważnym narzędziem tworzenia nowego oprogramowania, ale także zmniejszania długu technologicznego.
Firmy zaciągają dług technologiczny, gdy utrzymują przestarzałe, niewspierane rozwiązania technologiczne lub w celu zaspokojenia potrzeb biznesowych sięgają po te nieopłacalne w dłuższej perspektywie czasu – szybsze, tańsze czy gorszej jakości. Dalszy rozwój, na przykład nowe inwestycje czy ulepszenie procesów, są możliwe dopiero po naprawie i aktualizacji “zadłużonych” systemów.
“Spłacenie” długu technologicznego może odbyć się poprzez całkowitą wymianę nieoptymalnego systemu na nowy lub jego stopniowe przebudowanie i unowocześnienie (tzw. refaktoryzacja kodu). Architektura mikroserwisów sprawdza się w obu przypadkach. Nie tylko umożliwia ona tworzenie elastycznych, odpornych systemów, ale też ułatwia całkowite lub częściowe przejście do środowisk chmurowych.
Kierunek na kontenery i mikroserwisy
Dynamiczny rozwój gospodarczy i technologiczny wpływa na zmianę oczekiwań konsumentów – szybkie przystosowywanie się do ich potrzeb oraz stała dostępność usług stają się standardem.
Konteneryzacja i architektura mikroserwisów są odpowiedzią na te wyzwanie, wspierając zespoły IT w zakresie utrzymania niezawodności, skalowalności oraz dostarczaniu zmian, poprawek i nowych aplikacji. Ułatwiają też firmom wyjście z długu technologicznego, wspierając firmy w dalszym rozwoju.


























Dodaj komentarz