Dlaczego nie warto zamykać się na kontenery?

Jeszcze kilka lat temu, tworząc aplikację, programiści długo zastanawiali się, z którego języka korzystać. Dzisiaj pojawia się pytanie: czy pisać aplikację z wykorzystaniem mikroserwisów? W tej architekturze w ramach jednego, zintegrowanego systemu działają niezależne aplikacje obsługujące konkretne działy, funkcje lub procesy biznesowe. Mikroserwisy są od siebie niezależne biznesowo i technologicznie, dzięki czemu mogą być rozwijane równolegle przez różne zespoły projektowe.

W 2005 r. dr Peter Rodgers po raz pierwszy użył pojęcia mikrousług webowych. Pojęcie mikroserwisu weszło na stale do branżowego języka dopiero 6 lat później, odgrywając główną rolę w tworzeniu usług i aplikacji. Zainteresowanie podejściem do modułowego pisania aplikacji systematycznie rośnie.

Czym jest MSA?

Architektura mikroserwisowa wywodzi się z klasycznego podejścia do tworzenia kodu i aplikacji. Jest jednak różnica: mikroserwis ma ściśle określony cel i może być łączony z innymi mikroserwisami. Określenie „mikro” nie odnosi się zatem do rozmiaru, a do celu i przeznaczenia, w jakim jest tworzony.

Posłużmy się przykładem aplikacji, z której na co dzień korzysta 50 pracowników firmy – pobierają z niej dane o klientach, historię zakupów, wprowadzają nowe zamówienia. Jeden z działów, chcąc zwiększyć sprzedaż, potrzebuje rozbudować system o mechanizm promocji. W klasycznym, tzw. monolitycznym podejściu niezbędna byłaby analiza kodu w celu zidentyfikowania koniecznych do modyfikacji miejsc. Poza tym wdrożenie funkcjonalności wymagałoby czasowego wyłączenia aplikacji, co w przypadku dużych systemów mogłoby być problematyczne.

W aplikacjach tworzonych na bazie mikroserwisów wystarczy stwo¬rzyć kod mechanizmu promocji i połączyć go za pośrednictwem API z pozostałymi elementami systemu. Innymi słowy, do naszej budowli dokładamy kolejny klocek, który łatwo łączymy z już gotowym projektem.

Zalet technologii mikroserwisowej jest sporo:

Łatwość rozbudowy i aktualizacji

Aplikację stworzoną z „klocków” możemy rozwijać w dowolnym momencie, dokładając funkcjonalności, aktualizując i poprawiając już działające mechanizmy. Całość odbywa się bez przestojów w pracy systemu.

Możliwość skalowania

Duże aplikacje (tzw. monolity) nie są w stanie zaoferować takiego poziomu skalowalności. Jeśli system zaczyna pracować wolno, bardzo często jest to wina jednego z elementów. W architekturze MSA programiści mogą eliminować „wąskie gardła” poprzez skalowanie, np. odpowiednio dobierając zasoby sprzętowe infrastruktury, na których działa aplikacja.

Ciągła dostępność

Aktualizacje czy rozbudowa nie wymagają wyłączania całego systemu. Dla użytkowników takie operacje są całkowicie transparentne, a to gwarantuje komfort korzystania z aplikacji.

Uniwersalność językowa

Poszczególne elementy aplikacji mogą być tworzone w różnych językach, za ich prawidłową komunikację odpowiada protokół API. To eliminuje ryzyko związane z brakiem specjalistów piszących kod w wybranej technologii.

Eliminacja długu technologicznego

Również istniejące aplikacje można przystosować do pracy w architekturze rozproszonej. Zamiast przepisywać cały kod, wybiera się kluczowe z biznesowego punktu widzenia funkcjonalności, które następnie zamykane są w kontenerach. Kontenery te „rozmawiają” później z pozostałą częścią aplikacji za pośrednictwem API. Dzięki temu możemy tchnąć nowe życie w już działające rozwiązania, bez przepisywania ich od podstaw.

Wsparcie w chmurze

Tworzenie aplikacji w modelu mikroserwisowym nie byłoby możliwe bez rozwoju technologii cloudowych. Chmura zainicjowała zmiany w tworzeniu oprogramowania, dostarczając DevOpsom nowe, elastyczne narzędzia, takie jak: skalowanie zasobów sprzętowych, klastrowanie wybranych elementów aplikacji czy kolejkowanie zapytań. Przykładem takich rozwiązań jest technologia konteneryzacji kodu – Docker ze wsparciem dla K8S (Kubernetes). Te rozwiązania pozwalają wdrażać aplikacje działające w kontenerach, zarządzać nimi, automatyzować je oraz skalować. Asseco oferuje tę usługę w chmurze publicznej Cloud by Asseco.

Czy mikroserwisy są dla każdego?

Przed rozpoczęciem pracy nad tworzeniem aplikacji należy zastanowić się nad wyborem odpowiedniego podejścia. Jeśli wiemy, że wytwarzane rozwiązanie będzie wymagało częstej rozbudowy, a dostępność i skalowalność są ważne, warto rozważyć podejście mikroserwisowe. Już na tym etapie programiści będą mogli dokonać podziału aplikacji i zamknąć wybrane elementy w kontenerach. W połączeniu z zasobami usług chmurowych tak tworzone aplikacje gwarantują wysoką dostępność oraz łatwość w zarządzaniu i rozwoju.

Publikacja ukazała się w:

WARTO PRZECZYTAĆ

Chmura dla IT czy biznesu, czyli kto w firmie jest jej największym beneficjentem?

Wdrażając rozwiązania chmurowe warto przygotować założenia, które pozwolą na efektywne i przewidywalne wykorzystanie potencjału chmury. Czy redukcja kosztów powinna być podstawowym kryterium? Kto powinien zaangażować się w proces opracowywania tych założeń? I jaką rolę może ...

Model pracy zdalnej zostanie z nami

Praca zdalna na stałe zmieniła sposób funkcjonowania przedsiębiorstw. Ogromną rolę odegrały narzędzia chmurowe, dzięki którym firmy mogły w płynny sposób przejść na inny model pracy. Jak efektywnie korzystać z dostępnych rozwiązań, które zostały zaimplementowane? Wnioski ...

SKONTAKTUJ SIĘ Z NAMI

    Wyrażam zgodę na przetwarzanie moich danych osobowych w celu przesyłania informacji marketingowych za pomocą środków komunikacji elektronicznej i programów automatyzujących na podstawie ustawy z dnia 18 lipca 2002 r. o świadczeniu usług drogą elektroniczną i w zw. z art. 172 ust. 1 ustawy z dnia 16 lipca 2004 r. prawa telekomunikacyjnego.
     

    Informujemy, iż Państwa dane osobowe są przetwarzane przez administratora, którym jest Asseco Cloud sp. z o. o. z siedzibą w Szczecinie, ul. Królowej Korony Polskiej 21, 70-486 Szczecin. Przetwarzamy Państwa dane w celu: przygotowanie odpowiedzi na złożone zapytanie oraz przesyłania informacji marketingowych za pomocą środków komunikacji elektronicznej. W związku z przetwarzaniem Państwa danych, posiadacie prawa do: dostępu, sprostowania, usunięcia, przenoszenia danych, ograniczenia przetwarzania i prawo do cofnięcia zgody. Z pełną treścią informacji dotyczących przetwarzania Państwa danych osobowych, w tym o przysługujących prawach i ich zakresie możecie się Państwo zapoznać pod adresem: https://www.asseco.cloud/dane-osobowe/