Zrzeczenie się
Mam nadzieję, że nie nadepnę na nóg ani nie obrażę entuzjastów obu koncepcji
tło
Szukałem prawdziwych różnic między architekturą zorientowaną na usługi a mikrousługami, nie znajdując żadnej jasnej odpowiedzi.
Czytam takie rzeczy jak:
- skutki uboczne SOA
- SOA jest anty-wzorzec
- Przyszły mikrousługi, aby naprawić awarie SOA
- ESB nie są tak naprawdę ESB, lecz EAI
- Nadmierna zależność od brokerów wiadomości
- Sprzedawcy nadużywają pojęcia SOA i próbują sprzedawać swoje produkty
- SOA rośnie w niekontrolowany sposób
Ale nadal nic nie definiuje wyraźnie różnic architektonicznych między architekturą zorientowaną na usługi (jako koncepcja) a mikrousługami (jako koncepcja)
Zgodnie z tym, co zrozumiałem, oba mają:
- Dostawcy usług, robią tylko jedną rzecz
- Service Gateway / ESB ujawnia te usługi konsumentom
- Usługobiorcy, uzyskujący dostęp do usług za pośrednictwem ESB / Service Gateway
Pytanie
Czy jest coś innego niż zmiana nazwy SOA na Microservices? czy jest to ograniczenie technologiczne, które ma na celu ograniczenie możliwości przekształcenia Mikrousług w makro?
Uwaga: nie szukam opinii, tylko twarde fakty, mam nadzieję, że w punktach
Bibliografia
- Pytania dotyczące inżynierii oprogramowania
- Witryna Martina Fowlera (myślę, że on go nienawidzi)
- Świat informacji
- Witryna Michaela Fethersa
- Pytania dotyczące przepełnienia stosu
Aktualizacja
Wygląda na to, że podobna debata odbyła się w pytaniu o przepełnienie stosu , z opiniami podzielonymi niezależnie od tego, czy Mikrousługi są z natury zorientowane na usługi architektury.
Wniosek z pytania SO:
- MS jest szczególnym przypadkiem SOA
- MS poleca mniejszy rozmiar usług hostingowych aplikacji
- MS jest zależne od technologii (użycie HTTP zamiast opcji otwartego protokołu)
- PC polega na technologii w celu egzekwowania dyscypliny (automatyczne wdrażanie usług)
- MS uważa, że ESB (zło), ale używa bram API, które IMHO jest rodzajem ESB
To stwierdza, że MS jest SOA, jeśli spełnione są następujące warunki:
- Czy stwardnienie rozsiane popiera pojęcie orkiestracji? Jeden lub więcej procesów głównych zarządza przepływami pracy
- Czy w MS jest warstwa brokera wiadomości? Zestaw adapterów tłumaczących formaty komunikatów z przestrzeni komunikatów producentów usług na odbiorców usług
- Czy mikrousługi mogą odczytać dane z monolitycznych aplikacji korporacyjnych? Czy mogą to być interfejsy API aplikacji monolitycznej? czy musi to być samodzielna samodzielna aplikacja, zdolna do niezależnego działania?
Jeśli odpowiedź na ostatnie pytanie okazałaby się przecząca, wówczas Microservices nie byłby w stanie obsługiwać złożonych systemów przepływu pracy, np. Systemów zarządzania kartami kredytowymi lub systemów uzgadniania
Martin Fowler's Site (I think he hates it big time)
To nie było moje uczucie, kiedy poszedłem na jego przemówienie w Barcelonie. Ma świadomość kompromisów i tego, jak ludzie na ślepo przeszli na tę architekturę, nie biorąc pod uwagę, że stwardnienie rozsiane nie jest odpowiednie dla wszystkich.