Читать книгу Mikroserwisy w akcji - Группа авторов - Страница 8
Część 1
Stan rzeczy
1. Projektowanie i uruchamianie mikroserwisów
ОглавлениеNiniejszy rozdział dotyczy:
■ definiowania aplikacji mikroserwisowych,
■ wyzwań związanych z podejściem opartym na mikroserwisach,
■ podejść do projektowania aplikacji mikroserwisowych,
■ podejść do skutecznego uruchamiania mikroserwisów.
Twórcy oprogramowania starają się tworzyć efektywne i ponadczasowe rozwiązania złożonych problemów. Pierwszy problem, który zazwyczaj próbujemy rozwiązać, to: Czego chce nasz klient? Jeśli mamy umiejętności (lub szczęście), uzyskamy odpowiedź. Ale nasze wysiłki rzadko się na tym kończą. Nasza udana aplikacja nadal będzie się rozwijać: debugujemy problemy, budujemy nowe funkcjonalności, zapewniamy, aby była dostępna i działała płynnie.
Nawet najbardziej zdyscyplinowane zespoły mogą borykać się z utrzymaniem początkowego tempa i zwinności w obliczu rozwoju aplikacji. W najgorszym przypadku nasz prosty i stabilny produkt staje się trudny i wrażliwy. Nie mamy możliwości zrównoważonego dostarczania dodatkowych funkcjonalności swoim klientom. Jesteśmy zmęczeni z powodu przestojów, lęku przed zwolnieniem i zbyt powolni, aby dostarczyć nowe funkcjonalności lub poprawki. Ani nasi klienci, ani nasi programiści nie są szczęśliwi.
Mikroserwisy oferują lepszy sposób zrównoważonego wpływania na biznes. Zamiast pojedynczej monolitycznej jednostki aplikacje zbudowane przy użyciu mikroserwisów składają się z luźno powiązanych autonomicznych usług. Budując usługi, które dobrze wykonują jedną rzecz, można uniknąć bezwładności i entropii dużych aplikacji. Nawet w istniejących aplikacjach można stopniowo wyodrębniać funkcjonalności w niezależne usługi, aby cały system był łatwiejszy w utrzymaniu.
Kiedy zaczęliśmy pracować z mikroserwisami, szybko zdaliśmy sobie sprawę, że budowanie mniejszych i bardziej samodzielnych usług było tylko częścią tworzenia stabilnej i krytycznej dla biznesu aplikacji. W końcu jakakolwiek udana aplikacja spędzi więcej czasu w produkcji niż w edytorze kodu. Aby dostarczyć produkt za pomocą mikroserwisów, nasz zespół nie może skupiać się wyłącznie na tworzeniu. Musimy mieć umiejętności w zakresie wdrażania, obserwacji i diagnozowania.