Читать книгу Mikroserwisy. Wzorce z przykładami w języku Java - Chris Richardson - Страница 31
1.4.4. Architektura mikroserwisowa FTGO
ОглавлениеPozostała część tej książki szczegółowo omawia architekturę mikroserwisową aplikacji FTGO. Ale najpierw przyjrzyjmy się, co to znaczy zastosować skalowanie w osi Y dla tej aplikacji. Jeśli do aplikacji FTGO zastosujemy dekompozycję w osi Y, otrzymamy architekturę taką, jaka została pokazana na rysunku 1.7. Zdekomponowana aplikacja składa się z wielu usług frontendowych i backendowych. Moglibyśmy również zastosować skalowanie w osi X i ewentualnie skalowanie w osi Z, aby w czasie jego wykonywania istniało wiele instancji każdej usługi.
Usługi frontendowe obejmują bramę API i webowy interfejs użytkownika Restauracje. Brama API, pełniąca rolę fasady i szczegółowo opisana w rozdziale 8, oferuje REST API, z których korzystają aplikacje mobilne konsumentów i kurierów. Webowy interfejs Restauracje zawiera interfejs używany przez restauracje do zarządzania menu i przetwarzania zamówień.
Logika biznesowa aplikacji FTGO obejmuje wiele usług backendowych. Każda usługa backendowa ma REST API i własny prywatny magazyn danych. Usługami backendowymi są m.in.:
■ Order Service – zarządza zamówieniami;
■ Delivery Service – zarządza dostawą zamówień z restauracji do konsumentów;
■ Restaurant Service – przechowuje informacje o restauracjach;
■ Kitchen Service – zarządza przygotowywaniem zamówień;
■ Accounting Service – obsługuje fakturowanie i płatności.
Rysunek 1.7. Niektóre usługi aplikacji FTGO opartej na architekturze mikroserwisowej. Brama API kieruje żądania z aplikacji mobilnych do usług. Usługi współpracują za pośrednictwem API
Wiele usług odpowiada modułom opisanym wcześniej w tym rozdziale. Różnica polega na tym, że każda usługa i jej API są bardzo jasno zdefiniowane. Każdą z nich można niezależnie rozwijać, testować, wdrażać i skalować. Ponadto ta architektura dobrze wspiera modułowość. Programista nie może ominąć API usługi i uzyskać dostęp do jej wewnętrznych komponentów. Rozdział 13 opisuje, jak przekształcić istniejącą aplikację monolityczną w mikroserwisy.