Recenzja DevWarsztaty: Mikroserwisy (NServiceBus)

W poprzedni weekend spędziłam bardzo produktywną sobotę na warsztatach dotyczących mikroserwisów (z wykorzystaniem NServiceBus). Prowadzącymi byli Szymon Pobiega i Marcin Hoppe, którzy przyjechali specjalnie do Wrocławia, żeby podzielić się swoją wiedzą. Autorzy skupili się głównie na pokazaniu zalet SOA, ponieważ na wprowadzenie do mikroserwisów było za mało czasu.

Zaczęliśmy od krótkiego wstępu na temat SOA (Service Oriented Architecture) i Coupling. Zobaczyliśmy przykład strony, która była złożona z 1 ogromnej klasy (serwisu). Jej utrzymanie i rozszerzanie było bardzo trudne. Następnie zobaczyliśmy wersję dokładnie takiej samej strony, ale z wykorzystaniem mikroserwisów. To znaczy, że można było ten jeden wielki serwis przekształcić na wiele małych, dzięki czemu o wiele łatwiej można zarządzać kodem i dodawać nowe funkcjonalności.

O co chodzi w tych mikroserwisach?

Ogólnie chodzi o tworzenie wielu usług (serwisów), które są niezależne od siebie. Spełniają one zasadę pojedynczej odpowiedzialności (SRP). Dzięki czemu każdy z nich może być napisany nawet w innym języku, lub z wykorzystaniem innego frameworka. Za każdy pojedynczy serwis może odpowiadać odrębny zespół programistów.

Zalety mikroserwisów

Poza łatwością w zarządzaniu i rozszerzaniu kodu, jedną z zalet mikroserwisów jest odporność na awarie. To znaczy, że nie utracimy przesyłanych wiadomości (np. zamówienia), gdy padnie baza danych lub serwer. Zawsze odpowiednia informacja o zamówieniu będzie przechowywana w kolejce i po ponownym uruchomieniu bazy lub serwera, wiadomość z kolejki zostanie przeczytana, a przykładowe zamówienie zostanie zrealizowane.

Zabawa w mikroserwisy

Kolejnym bardzo ciekawym elementów warsztatów była zabawa w mikroserwisy. Zostaliśmy podzieleni na grupy. Każda osoba miał określoną rolę – była jakimś serwisem lub brokerem (szyną wiadomości). Serwisy wysyłały wiadomości poprzez broker do innych serwisów i w ten sposób przepływały informacje. W przypadku błędnej informacji serwisy rzucały wyjątki. Wtedy wiadomość trafiała do specjalnej kolejki Error message. Na końcu analizowaliśmy drzewo konwersacji, żeby odkryć, w którym miejscu wystąpił błąd. Bardzo pomysłowe ćwiczenie.

Kodowanie

Podczas drugiej części warsztatów dowiedzieliśmy się, co to są Sagi (dokumentacja tutaj) i dlaczego przydają się w przypadku długo działających procesów. Mogliśmy też pokodować. Mieliśmy dostępny gotowy kod z wieloma ćwiczeniami oraz instrukcjami do ich wykonania. Dla zainteresowanych, kod można pobrać z GitHub.

Podsumowanie

Inicjatywa DevWarsztatów jak zwykle nie zawiodła. Warsztaty były bardzo intensywne – temat był trudny, ale ciekawy. Prowadzący na wysokim poziomie. Bardzo podobał mi się pomysł pracy grupowej, który mobilizował do kooperacji. Jak zwykle podziękowania dla sponsora, czyli firmy PGS Software, która udostępniła salę oraz dostarczyła jedzenie i picie.

2 uwagi do wpisu “Recenzja DevWarsztaty: Mikroserwisy (NServiceBus)

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Połączenie z %s