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.

ZOBACZ WYDANIE W KTÓRYM OPUBLIKOWANO TEN ARTYKUŁ

WARTO PRZECZYTAĆ

Dysk prywatny w chmurze publicznej

Rezerwacja zasobów w przestrzeni chmury wiąże się zazwyczaj z ponoszeniem pewnych kosztów. Jeśli mamy własne zasoby dyskowe, to często żałujemy, że nie są wykorzystywane, a jednocześnie ponosimy koszty związane z dzierżawą zasobów dyskowych w chmurze.

Przyszłość IT należy do chmury

Obecnie na rynku krystalizują się dwa główne kierunki rozwoju technologii chmurowej. Pierwszym jest tzw. multicloud, co w praktyce oznacza dążenie do wykorzystania wielu różnych technologii oraz dostawców chmury. Drugim, równie ważnym rozwoju dla chmury w Polsce jest strategia hybrydowa.

SKONTAKTUJ SIĘ Z NAMI

Szanowna Użytkowniczko/Szanowny Użytkowniku

Zgodnie z art. 13 ust. 1 i 2 ogólnego rozporządzenia o ochronie danych osobowych z dnia 27 kwietnia 2016 r (zwanego dalej „Rozporządzenie”) informuję, iż:

  • Administratorem Pani/Pana danych osobowych jest Asseco Data Systems S.A. z siedzibą w Gdyni, ul. Podolska 21, 81-321 Gdynia.
  • Kontakt do Inspektora ochrony danych w Asseco Data Systems S.A. można uzyskać pod adresem e–mail: [email protected], tel.+48 42 675 63 60
  • Pani/Pana dane osobowe przetwarzane będą w celu:
    1. przygotowania odpowiedzi na zapytanie, na podstawie art. 6 ust. 1 lit. b Rozporządzenia.
    2. 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 (zgoda alternatywna) na podstawie art. 6 ust. 1 lit. a Rozporządzenia.
  • Pani/Pana dane osobowe będą przechowywane przez okres niezbędny do przygotowania i przedstawienia odpowiedzi na zapytanie oraz do czasu cofnięcia przez Panią/Pana wyrażonej zgody na otrzymywanie informacji marketingowych.
  • Posiada Pani/Pan prawo dostępu do treści swoich danych oraz prawo ich sprostowania, usunięcia/zapomnienia, ograniczenia przetwarzania, prawo do przenoszenia danych, prawo wniesienia sprzeciwu, prawo do cofnięcia zgody w dowolnym momencie bez wpływu na zgodność z prawem przetwarzania, którego dokonano na podstawie zgody przed jej cofnięciem. Realizację wszystkich powyższych praw można zrealizować poprzez wniosek złożony na stronie https://www.daneosobowe.assecods.pl
  • Ma Pani/Pan prawo wniesienia skargi do Regulatora, gdy uzna Pani/Pan, iż przetwarzanie danych osobowych Pani/Pana dotyczących narusza przepisy Rozporządzenia.
  • Podanie przez Pana/Panią danych osobowych jest niezbędne do realizacji wniosku z zapytaniem. Jest Pan/Pani zobowiązana do ich podania, a konsekwencją niepodania danych osobowych będzie brak możliwości uzyskania odpowiedzi na wysłane zapytanie.
  • Pani/Pana dane będą przetwarzane w sposób zautomatyzowany w tym również w formie profilowania. Zautomatyzowane podejmowanie decyzji będzie odbywało się na zasadach przetwarzania danych osobowych podanych przy utworzeniu Konta i uzupełnianiu danych w nim zawartych oraz danych dotyczących aktywności w Serwisach (zgodnie z Polityką prywatności serwisu internetowego Asseco Data Systems S.A. Polityka prywatności)
    i aktywności związanej z naszą komunikacją mailową z Panią/Panem, a efektem takiego przetwarzania będzie dopasowanie informacji marketingowych dotyczących naszych produktów i usług, które mogą Panią/Pana zainteresować.
Polityka prywatności