Cześć 🙂
Mikrousługi mogą być dla Twojej organizacji wspaniałą alternatywą 🐝
Systemy rozproszone złożone ze współpracujących ze sobą mikrousług pozwalają bowiem na efektywne i elastyczne dostarczanie oprogramowania, które ściśle odpowiada na wymagania użytkowników ⌨
Jak je projektować?

Poszukiwanie idealnej technologii
Istnieje oszałamiająca gama opcji dotyczących sposobów komunikowania się jednej mikrousługi z inną. Który z nich jest właściwy: SOAP, XML-RPC, REST, gRPC? A przecież ciągle pojawiają się nowe opcje. Zanim więc przystąpię do omówienia konkretnej technologii, zastanówmy się, co chcielibyśmy uzyskać z każdej z nich.
Łatwość zachowania zgodności wstecz
Podczas wprowadzania zmian do mikrousług trzeba zadbać o to, aby nie złamać zgodności z żadną z mikrousług korzystających z mikrousługi, którą zmieniamy. W związku z tym chcemy mieć pewność, że niezależnie od wybranej technologii wprowadzanie zmian w sposób zapewniający zgodność wstecz będzie łatwe. Takie proste operacje jak dodawanie nowych pól nie powinny powodować przerw w działaniu klientów. Idealnie byłoby również, gdyby istniała możliwość sprawdzenia, czy wprowadzone zmiany są zgodne wstecz oraz gdyby był sposób na uzyskanie tych informacji przed wdrożeniem mikrousługi do produkcji.
Zdefiniuj interfejs w sposób jawny
Istotne znaczenie ma to, aby interfejs, który mikrousługa udostępnia światu zewnętrznemu, był wyraźny. Oznacza to, że dla konsumenta mikrousługi powinno być jasne, jakie funkcjonalności udostępnia ta mikrousługa. Ale oznacza także, że dla programisty pracującego nad mikrousługą powinno być jasne, jakie funkcjonalności muszą pozostać nienaruszone dla podmiotów zewnętrznych — chcemy uniknąć sytuacji, w której modyfikacja mikrousługi spowoduje przypadkowe naruszenie zgodności.
W zapewnieniu jawności interfejsu udostępnianego przez mikrousługę mogą bardzo pomóc jawne schematy. W przypadku niektórych technologii użycie schematu jest wymagane, natomiast w innych przypadkach jest ono opcjonalne. Tak czy inaczej, zdecydowanie zachęcam do korzystania z jawnych schematów, a także do utworzenia pomocniczej dokumentacji wystarczającej do tego, aby jasno określić funkcjonalności, jakich konsument może oczekiwać od mikrousługi.
Zachowaj niezależność technologii interfejsów API
Jeśli jesteś w branży IT dłużej niż 15 minut, nie muszę Ci mówić, że pracujemy w obszarze, który szybko się zmienia. Jedyną rzeczą pewną są zmiany. Cały czas pojawiają się nowe narzędzia, frameworki i języki, powstają implementacje coraz to nowych pomysłów, które mogą pomóc pracować szybciej i skuteczniej.
Być może w tej chwili programujesz w .NET, ale co będzie za rok lub za pięć lat? Co zrobić, jeśli chcesz eksperymentować z alternatywnymi stosami technologicznymi, które mogą spowodować, że staniesz się bardziej wydajny?