Badam architektury mikrousług, próbując uzyskać ogólny przegląd wszystkich zalet i wad, kiedy i dlaczego itp. Wiele informacji, które czytam / oglądam, pochodzi z ThoughtWorks (Martin Fowler, Neal Ford, i in. glin).
Większość prac Martina Fowlera na ten temat ma kilka lat, kiedy Microservices (jako nazwa programowa, jeśli nie ogólna praktyka) była jeszcze młoda, dlatego biorę dużo ziarenka soli.
Jedna rzecz w szczególności to:
Kiedy słyszę historie o zespołach korzystających z architektury mikrousług, zauważyłem wspólny wzór.
- Prawie wszystkie udane historie o mikrousługach zaczęły się od monolitu, który stał się zbyt duży i został zerwany
- Prawie wszystkie przypadki, w których słyszałem o systemie, który został zbudowany od podstaw jako mikrousługa, spowodowały poważne kłopoty.
Ten wzór doprowadził wielu moich kolegów do argumentowania, że nie powinieneś rozpoczynać nowego projektu z mikrousługami, nawet jeśli masz pewność, że Twoja aplikacja będzie wystarczająco duża, aby była opłacalna. .
(zob .: https://martinfowler.com/bliki/MonolithFirst.html - podkreślenie ich)
Teraz, 3 lata później i przy mikrousługach bardziej powszechnym terminem, czy ogólnie można się zgodzić, że nowy system jest zazwyczaj lepiej obsługiwany, ponieważ na początku mają większe (niż-mikrousługi-ale-mniejsze-niż-monolit) usługi bardziej szczegółowe w ramach ewolucyjnej miary?
Czy też istnieje norma, aby rozpocząć projekt od zera za pomocą szczegółowej architektury mikrousług, w przeciwieństwie do powyższych stwierdzeń?
Wydaje się to rozsądnym ogólnym podejściem, ale ciekawy myśli społeczności.