Читать книгу Mikroserwisy. Wzorce z przykładami w języku Java - Chris Richardson - Страница 12
1.1. Powolny marsz w kierunku monolitycznego piekła
ОглавлениеOd momentu startu pod koniec 2005 r. FTGO rozwijało się błyskawicznie. Dziś jest jedną z głównych internetowych firm dostarczających żywność w Stanach Zjednoczonych. Firma planuje nawet ekspansję zagraniczną, choć plany te są zagrożone z powodu opóźnień we wdrażaniu niezbędnych funkcjonalności.
W swojej istocie aplikacja FTGO jest dość prosta. Konsumenci korzystają ze strony internetowej lub aplikacji mobilnej do składania zamówień na jedzenie w lokalnych restauracjach. FTGO koordynuje sieć kurierów, którzy dostarczają zamówienia. Odpowiada również za płacenie kurierom i restauracjom. Restauracje używają strony internetowej FTGO do edycji menu i zarządzania zamówieniami. Aplikacja korzysta z różnych usług sieciowych, w tym ze Stripe’a – do płatności, Twilio – do przesyłania wiadomości oraz Amazon Simple Email Service (SES) – do poczty e-mail.
Podobnie jak wiele innych starzejących się aplikacji korporacyjnych, aplikacja FTGO jest monolitem składającym się z pojedynczego pliku Java Web Application Archive (WAR). Z biegiem lat stała się dużą, złożoną aplikacją. Mimo wysiłków zespołu programistów stała się ona przykładem wzorca wielkiej kuli błota (www.laputan.org/mud/). Cytując Foote’a i Yodera, autorów tego wzorca, jest to „przypadkowo zbudowana, rozwlekła, niechlujna, połączona taśmą klejącą i drutem, dżungla kodu spaghetti”. Tempo dostarczania oprogramowania spowolniło. Co gorsza, aplikacja FTGO została napisana z użyciem jeszcze bardziej przestarzałych frameworków. Aplikacja FTGO wykazuje wszystkie objawy monolitycznego piekła.
Kolejny punkt opisuje architekturę aplikacji FTGO. Następnie jest mowa o tym, dlaczego monolityczna architektura początkowo działała dobrze. Zobaczymy, jak aplikacja FTGO przerosła swoją architekturę i jak doprowadziło to do monolitycznego piekła.