Technologia/
Customer Experience/
Project Management

Dlaczego firmy i deweloperzy stawiają na mikroserwisy?

 

Według badania „Microservices in the Enterprise, 2021”, przeprowadzonego wśród 1200 deweloperów i menedżerów IT dużych i średnich firm, 80% z nich jest zdania że warto inwestować w mikroserwisy, ponieważ ułatwiają one pracę wszystkim użytkownikom. 77% respondentów uważa, że mikroserwisy są sprawdzonym i niezawodnym sposobem dla tworzenia rozwiązań informatycznych. Z czego wynikają zalety wykorzystania tej architektury?

Na początek, poznajmy bliżej definicję mikroserwisów

Dla mikroserwisów przełomem był rok 2013. To właśnie wtedy zaczęto mówić o tej architekturze, a dziś jej popularność rośnie w bardzo szybkim tempie.

Mikroserwisy to podejście, w którym tworzymy aplikację podzieloną na wiele modułów. Każdy z nich odpowiada za grupę funkcji powiązanych z jednym zagadnieniem biznesowym. Wszystkie moduły mogą komunikować się między sobą tworząc jedną całość - aplikację czy system, np. e-commerce. Podzielenie jednego systemu na mniejsze kawałki ułatwia zarządzanie i rozwój. Każdy “kawałek” można wymienić, usprawnić czy naprawić, nie zaburzając pracy całego systemu. Dla przykładu, aktualizacja procesu wysyłania sms nie wpływa na możliwość korzystania z dashboardów informacyjnych.

Główne zalety mikroserwisów:

  • zwiększenie wydajności systemu;
  • łatwiejsze zarządzanie architekturą oprogramowania;
  • łatwiejszy development rozwijania danych komponentów;
  • skalowanie na poziomie danej usługi, a nie całego systemu;
  • zminimalizowanie ryzyka błędów w innych modułach;
  • zmniejszenie kosztów związanych z rozwojem systemu;
  • bezprzerwowe update’y systemu;
  • większa niezawodność - niestabilność jednego elementu nie wpływa na pozostałe.

Monolity nie są już tak atrakcyjne dla biznesu i użytkowników końcowych

Wyobraźmy sobie jedną dużą strukturę o bardzo zwartej budowie. Obok niej znajduje się inna, tak samo duża struktura, ale zbudowana z kilku, połączonych ze sobą elementów. W której strukturze łatwiej będzie nam dokonać zmian? Tak właśnie wygląda różnica między monolitami a mikroserwisami.

Dla biznesu i użytkowników monolity wiążą się między innymi z:

  • koniecznością reinstalacji całej aplikacji w przypadku wprowadzenia każdej, nawet najmniejszej zmiany, co prowadzi do czasowej niedostępności dla użytkownika;
  • brakiem możliwości skalowania poszczególnych komponentów systemu, co wiąże się z ryzykiem przeciążenia i znów niedostępności dla użytkownika końcowego;
  • nierzadko brak skalowalności wiąże się z wyższymi kosztami utrzymania;
  • zmniejszeniem możliwości implementacji nowych technologii z uwagi na koszty i ilości prac po stronie partnera technologicznego;
  • większą zależnością firmy od dostawcy usług;
  • dużo trudniejszą integracją z zewnętrznymi systemami i API.

Nie oznacza to oczywiście, że monolity mają same wady. Są stosunkowo dobrym rozwiązaniem, kiedy biznes dopiero startuje i potrzebujemy tylko jednego, centralnego systemu.

Warto przypomnieć, że takie firmy jak Twitter, Linkedin, Netflix czy Amazon zaczynały, bazując na monolicie. Dopiero w momencie, gdy zaczęły oferować więcej usług i szybko się rozwijać przeszły na mikroserwisy, które są dużo bardziej elastyczne.

Mikroserwisy niwelują dług technologiczny

W ankiecie firmy doradczej McKinsey, menedżerzy IT oszacowali, że nawet do 20 proc. budżetu przeznaczonego na technologie (a więc również – innowacje), jest przeznaczanych na rozwiązanie problemów generowanych przez cyfrowe zadłużenie.

Firmy spłacają taki dług, wymieniając całkowicie dany system lub stopniowo go przebudowując. Architektura mikroserwisów sprawdza się w obu przypadkach. Pozwala w dość prosty sposób na całkowite lub częściowe przejście do innych środowisk oraz na tworzenie nowych, skalowalnych i odpornych systemów.

Dług technologiczny. Cyfrowe życie ponad stan

Rozwiązanie nie tylko dla największych graczy

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. Jak wcześniej wspomniałem, z tego rozwiązania korzystają najwięksi gracze jak Netflix, Linkedin czy Twitter.

Nie oznacza to jednak, że mikroserwisy są rozwiązaniem atrakcyjnym tylko dla dużych firm. Może skorzystać z nich każda firma, która planuje rozwój i której zależy na elastycznym rozwiązaniu, unikając całkowitej zależności od vendora.

W ostatnim czasie wdrożyliśmy serwis transakcyjny dla naszego klienta - NN Investment Partners - jednego z wiodących towarzystw funduszy inwestycyjnych w Polsce. Wiosną bieżącego roku firma stała się częścią globalnej grupy Goldman Sachs Asset Management. Całą architekturę tego systemu oparliśmy właśnie na mikroserwisach - dokładnie jest ich 9. Każdy z nich wykonuje zadania związane ze ściśle określoną częścią funkcji biznesowych, jakie realizuje aplikacja. Mikroserwisy odpowiadają za logowanie użytkowników, zarządzają procesami obsługowymi w aplikacji lub za wysyłkę SMS-ów z kodami autoryzacyjnymi do klientów.

Czy mikroserwisy mają wady? Oczywiście, że tak

Oprócz niezaprzeczalnych zalet to rozwiązanie ma też swoje ciemne strony. Można do nich zaliczyć dużo bardziej skomplikowaną architekturę czy trudniejsze testowanie i namierzanie błędów w aplikacji, jeżeli dany proces musi skorzystać z usług wielu mikroserwisów. Dodatkowym stopniem komplikacji jest obecność warstwy sieciowej w komunikacji między komponentami aplikacji.

Projekt architektury każdego rozwiązania powinien być poprzedzony dokładną analizą biznesową. Dlatego, przed każdym wdrożeniem dedykowany zespół specjalistów e-point pracuje nad tym, aby poznać wszystkie potrzeby klienta i zaproponować mu takie rozwiązanie, które umożliwi faktyczny rozwój. Wiemy już, że stale rosnąca popularność mikroserwisów ma wyraźne potwierdzenie w biznesie i jest to przyszły kierunek dla projektowania oprogramowania.