Читать книгу Mikroserwisy w akcji - Группа авторов - Страница 19
Część 1
Stan rzeczy
1. Projektowanie i uruchamianie mikroserwisów
1.4. Odpowiedzialna i operacyjnie świadoma kultura inżynieryjna
ОглавлениеBłędem byłoby badanie technicznej natury mikroserwisów w oderwaniu od tego, jak zespół inżynierów pracuje nad ich rozwojem. Budowanie aplikacji z małych, niezależnych usług drastycznie zmienia sposób, w jaki firma funkcjonuje w zakresie inżynierii, więc kierowanie kulturą i priorytetami naszego zespołu będzie istotnym czynnikiem warunkującym pomyślne dostarczenie aplikacji mikroserwisowej.
Oddzielenie przyczyny i skutku może być trudne w firmach, które pomyślnie zastosowały mikroserwisy. Czy rozwój ziarnistych usług był logicznym rezultatem ich struktury organizacyjnej i zachowania zespołów? Czy też ta struktura i zachowanie wynikają z ich doświadczeń budowania ziarnistych usług?
Odpowiedzi na oba pytania są twierdzące. Długo działający system to nie tylko zbiór oczekiwanych, zaprojektowanych i zbudowanych funkcjonalności. Odzwierciedla on także preferencje, opinie i cele twórców oraz operatorów. W pewnym stopniu wyraża to prawo Conwaya:
organizacje, które projektują systemy … są ograniczone do tworzenia projektów będących kopiami struktur komunikacyjnych w tych organizacjach.
„Ograniczone” może sugerować, że te struktury komunikacyjne ograniczają i zawężają efektywny rozwój systemu. W rzeczywistości praktyka mikroserwisowa sugeruje coś wręcz przeciwnego – skutecznym sposobem na uniknięcie tarć i napięć w budowanych systemach jest zaprojektowanie organizacji w kształcie systemu, który jest celem budowy.
Rozmyślna symbioza ze strukturą organizacyjną jest jednym z przykładów powszechnej praktyki w zakresie mikroserwisów. Aby móc czerpać korzyści z mikroserwisów i odpowiednio zarządzać ich złożonością, trzeba opracować zasady działania i praktyki, które są skuteczne dla tego typu aplikacji, zamiast używać takich samych technik jak do budowy monolitów.
PODSUMOWANIE
■ Mikroserwisy są zarówno stylem architektonicznym, jak i zestawem praktyk kulturowych, opartych na pięciu kluczowych zasadach: autonomii, odporności, przejrzystości, automatyzacji i ukierunkowaniu.
■ Mikroserwisy zmniejszają tarcia w rozwoju, umożliwiając autonomię, elastyczność techniczną i luźne powiązania.
■ Projektowanie mikroserwisów może być trudne ze względu na potrzebę odpowiedniej wiedzy o domenie oraz równoważeniu priorytetów w zespołach.
■ Usługi wystawiają kontrakty dla innych usług. Dobre kontrakty są zwięzłe, kompletne i przewidywalne.
■ Złożoność w długo funkcjonujących systemach oprogramowania jest nieunikniona, ale można zapewnić ich zrównoważony rozwój, jeśli zostaną dokonane wybory, które minimalizują tarcia i ryzyka.
■ Niezawodne wdrażanie bez incydentów (nudne) zmniejsza ryzyka związane z mikroserwisami, dzięki automatycznym i zweryfikowanym wydaniom.
■ Kontenery przesłaniają różnice między usługami w trakcie wykonywania, upraszczając zarządzanie heterogenicznymi mikroserwisami na dużą skalę.
■ Awaria jest nieunikniona – mikroserwisy muszą być przejrzyste i możliwe do obserwowania dla zespołów, które proaktywnie zarządzają, rozumieją i obsługują działanie usług … oraz ich brak.
■ Zespoły wdrażające mikroserwisy muszą być operacyjnie dojrzałe i skupiać się na całym cyklu życia usługi, nie tylko na etapie projektowania i budowy.