Jeśli chodzi o architekturę i projekt oprogramowania, w jaki sposób mikrousługi „nakładają się” (zamierzone) na oprogramowanie pośrednie? Pochodzę z Javy i wygląda na to, że odsuwając się od prostej wersji REST jako interfejsu API i abstrahując od różnych warstw i parametrów połączenia, przynajmniej w Javie, prawie zatoczyłeś koło kilku bardzo starych pomysłów szkolnych . Wróciliśmy do wirtualizacji ... gdzie JVM jest już wirtualna.
W agnostyczny sposób możesz, i powiedziałbym, zalety, abstrakcji RESTful API na CORBA. Lub, w sposób bardziej zorientowany na java, JMS lub MDB.
Kiedyś EJB był wielką sprawą w Javie, potem został rozpoznany jako efekt klastra, ale teraz wracamy do początku?
Czy też mikrousługi oferują coś, czego brakuje CORBA, a nawet lepiej, MDB? Kiedy czytam (TLDR) Martina Fowlera wyjaśniającego mikrousługi, wydaje mi się to dobrym rozwiązaniem na zły problem, jeśli wolisz. A raczej podejście z zamkniętym umysłem, które wprowadza poziom złożoności, który tylko popycha problem. Jeśli usługi są naprawdę mikro i są liczne, to każda z nich kosztuje dolara, aby je uruchomić i utrzymać.
Co więcej, jeśli jedna z wielu usług mikro zmieni swój interfejs API, wówczas wszystko zależne od tej usługi ulegnie awarii. Nie wydaje się luźno sprzężony, wydaje się przeciwieństwem zwinności. Czy też niewłaściwie używam tych słów?
Oczywiście istnieje nieokreślona ilość wyborów między tymi skrajnościami.
Rekin kontra goryl ... idź! (Dla pedantycznych, to ma być ironiczne i wcale nie jest to moim zamiarem. Pytanie powinno być traktowane na pierwszy rzut oka. Jeśli pytanie można poprawić, zrób to, lub skomentuj, a ja naprawię. )
Wyobraź sobie wiele mikrousług działających w oknie dokowanym, wszystkie na jednym komputerze, rozmawiające ze sobą ... szaleństwo. Trudne w utrzymaniu lub administrowaniu, a prawie nigdy nic nie można zmienić, ponieważ każda zmiana kaskadowo spowoduje nieprzewidziane błędy. Jak to jest lepsze, że te usługi są rozproszone na różnych komputerach? A jeśli są rozproszone, to z pewnością niektóre bardzo, bardzo stare techniki szkolne rozwiązały, przynajmniej w pewnym stopniu, rozproszone obliczenia.
Dlaczego skalowanie w poziomie jest tak powszechne, a przynajmniej pożądane?
giant blob
, ponieważ musi mieć interfejsy, więc każda część zaczynająca się od jądra jest rodzajem MS, a przede wszystkim jakikolwiek zespół zaczął pisać kod w celu uzgodnienia specyfikacji v0.0.1.