Jacek Popko
Platforma digitalowa, która odnosi sukces, staje przed niełatwym zadaniem. Z jednej strony trzeba zapewnić rosnącej lawinowo liczbie użytkowników sprawne i wygodne korzystanie z usług. Z drugiej, właściciele platformy – obserwując pęczniejącą bazę użytkowników – często chcą oferować im coraz więcej funkcjonalności, i to wszystko w systemie, który będzie działał bez przerwy.
Trzeba przy tym pamiętać, że często platformy cyfrowe powstają w modelu quick&dirty, gdzie przyjęta architektura pozwala na przetestowanie hipotezy rynkowej, ale nie przewiduje obsługi nagłego wzrostu (zgodnie z założeniem: “sprawdźmy, czy ludzie to kupią, a jak kupią, to później będziemy się martwić”).
Kiedy liczba użytkowników rośnie, przypomina to sytuację, w której w rozpędzonym bolidzie F1 należałoby wymienić koła i silnik w trakcie jazdy. Nie tylko CTO, ale cały biznes staje przed nie lada wyzwaniem. Jednym z rozwiązań, które mogą wtedy pomóc, są mikroserwisy. Używają ich duzi gracze, tacy jak Netflix. Wśród serwisów dostępnych w Polsce, architekturę mikroserwisową wykorzystują m.in. Allegro czy Znanylekarz.
Przez mikroserwis rozumiemy tutaj usługę, która realizuje jedną funkcję i daje się ją szybko przygotować – czasem w kilka godzin, czasem w kilka dni, góra w kilka tygodni.
Co właściwie daje wdrożenie architektury opartej o mikrousługi?
- Możliwość punktowej inwestycji w system tam, gdzie najbardziej potrzebuje on rozbudowy. W architekturze monolitycznej, jeżeli jedna funkcja systemu sprawia problemy wydajnościowe, często jesteśmy zmuszeni do zwiększenia całej infrastruktury. W architekturze mikroserwisowej dzięki wydzieleniu poszczególnych mikrousług można zainwestować tylko w infrastrukturę dla konkretnej usługi, nie dla całego systemu.
- Swobodę budowania wielu funkcjonalności jednocześnie, w różnych kierunkach i obszarach. Można zlecić rozwój systemu wielu równolegle pracującym zespołom – mogą to nawet być inżynierowie z kilku różnych firm. Znika potrzeba zachowania wspólnego mianownika w postaci jednorodnej technologii dla całego systemu. Nowi deweloperzy mogą szybciej dołączyć do zespołu, bo nie muszą poznać całego monolitu zanim zaczną kodować.
- Zmniejszenie ryzyka wystąpienia błędów. W monolicie łatwiej o sytuacje, gdy dodanie nowej funkcjonalności w jednym obszarze skutkuje wystąpieniem błędu w innym miejscu systemu. Aby wystrzegać się takich przypadków, w architekturze monolitycznej oddając nową wersję należy przetestować całość systemu. Dla odróżnienia, gdy korzystamy z mikroserwisów, wystarczy sprawdzić poprawność pracy nowej usługi. Skraca to czas i zmniejsza koszt przeprowadzania testów; jednocześnie umożliwia częstsze aktualizacje systemu.
Jeżeli interesuje Cię analiza większej ilości słabych i mocnych stron mikroserwisów, warto skorzystać nie tylko z wiedzy dostawców frameworków czy innych rozwiązań technicznych, ale także z praktycznych doświadczeń. Pomóc może bezpłatny ebook – monolit czy mikroserwisy.
O autorze:
Jacek Popko, Chief of Consulting RST Software Masters / Founder of Usability LAB. Absolwent wydziału Zarządzania i Informatyki na Uniwersytecie Ekonomicznym we Wrocławiu. Twórca Usability LAB, marki konsultingowej świadczącej usługi doradcze i projektowe dla finansów i bankowości, przedsięwzięć start-up oraz e-commerce. Należy do The Interaction Design Foundation oraz ACM: SIG-CHI. Udziela się jako wykładowca i prelegent. Współpracował z Alior Bank, Carrefour, Cisco, Empik, LUX MED, Orange, PGE, PKO, Santander Consumer Bank. Pasjonat UX.
Ilustracja główna: Pixabay
Dodaj komentarz