SOA w Factorio: testy wydajności architektury usługowej kontra monolit
Architektura usługowa (SOA) rozbija monolit na niezależne serwisy połączone magistralą usług Enterprise Service Bus (ESB). W Factorio modelujemy to centralną dwukierunkową taśmą transportową, po której rozprowadzane są zasoby między wyspecjalizowanymi gałęziami produkcji. Porównanie z monolitem pokazuje wzrost złożoności na starcie, ale potencjał skalowania.
Magistrala przejmuje routing: przyjmuje zapytania od serwisów, przekierowuje zasoby i zwraca wyniki. Serwisy nie komunikują się bezpośrednio — tylko przez magistralę, co naśladuje standaryzowany protokół wymiany. Elektrownia integruje się jako serwis na początku magistrali, pobierając paliwo z niej. Płyny idą rurami, surowce taśmami w obie strony.
Plan realizacji i pierwsze wyzwania
Wstępny schemat: magistrala rozrasta się w prawo i w górę, gałęzie produkcji — w dół. Skalowanie pionowe uproszczone: duplikowanie stref bez mieszania logiki.
Kluczowe aspekty adaptacji do gry:
- Taśmy jako sockety dla lokalnego węzła.
- Transport kolejowy tylko dla przychodzących użytkowników (sieci).
- Oddzielne gałęzie na produkt (zielone płytki, koła zębate).
- Magistrala dwukierunkowa dla strumieni zwrotnych (paliwo jądrowe do elektrowni).
Wyzwania:
- Utrzymanie magistrali pochłania mnóstwo roboczogodzin.
- Ograniczenia przestrzenne przez szerokość magistrali.
- Łatwość wzrostu pionowego przy rezerwacji miejsca.
Start z mini-monolitem przy kopalniach na materiały budowlane — podejście MVP, nieuniknione dla wszystkich stylów.
Pilotażowy rozruch: budowa i skalowanie
Po bazowej produkcji (taśmy, assemblery, insertery) podłączono przetapianie i elektrownię. Strefy kół zębatych, flakonów rozszerzają się w dół, magistrala — w prawo. Żółte taśmy pokrywają potrzeby bez deficytów, w przeciwieństwie do monolitu.
Problemy na wczesnym etapie:
- Wyczerpanie startowych kopalni przed JD — tymczasowe ścieżki taśmowe jako alfa-test z ograniczonym obciążeniem.
- Podejście do bugów — priorytet na obronę (mury, wieżyczki, czarne flakony), co pochłania czas na biznesowe deadliny.
- Rozrastanie magistrali poza ekran — radary do podglądu.
- Niskie obciążenie kanałów: szerokie strumienie z cienkimi strumyczkami przedmiotów.
- Jeziora na drodze — zasypywanie landfillami.
Magistrala pochłania dużo czasu na układanie i serwisowanie, potwierdzając realne wady SOA: złożoność ESB przy wzroście. Komunikacja między serwisami (gałęziami) a magistralą imituje uzgodnienia zespołowe.
Porównanie z monolitem na pośrednich metrykach
SOA zwraca się w taśmach: produkcja żółtych pokrywa magistralę i fabrykę. Monolit cierpiał na niedobory. Skalowanie prostsze — nowe strefy przy magistrali bez przebudowy.
Jednak start wolniejszy: igrowe dni na pilotaż bez pełnego wdrożenia użytkowników. Bugi i zasoby odciągają od logiki produktowej, modelując presję budżetową.
Pionowe duplikowanie gałęzi (skalowanie serwisów) działa: przestrzeń między odgałęzieniami kluczowa.
Co najważniejsze
- Magistrala to wąskie gardło: logika routingu rośnie z serwisami, grożąc awariami.
- Niezależny rozwój serwisów ułatwia aktualizacje, ale wymaga standardów.
- W Factorio SOA wygrywa w taśmach, przegrywa w przestrzeni i czasie budowy.
- Mini-monolit na starcie — MVP dla każdej architektury.
- Dwukierunkowe strumienie niezbędne dla realizmu (paliwo zwrotne).
— Editorial Team
Brak komentarzy.