Trudno wyliczyć sobie różne opcje, ponieważ niekoniecznie muszą się one wzajemnie wykluczać, ale w niektórych punktach, o których wspomniałeś, jest trochę początku, wiem też, że niekoniecznie musi to dotyczyć Twojej Usługi Pytanie o materiał, ale mam nadzieję, że nadal będzie użyteczne.
Środowisko mikro usług jest świetne z punktu widzenia kodu, dzięki czemu programiści mogą z łatwością pracować. Dzięki scentralizowaniu funkcjonalności do jednej usługi oznacza to, że mogą skupić się na problemie bez myślenia o niepotrzebnych zależnościach. Na przykład, gdybyś zgrupował wszystkie swoje metody w jednym projekcie i musiałeś zmienić interfejs, możesz zdecydować o utworzeniu nowego punktu końcowego. W tym przykładzie może trzeba wziąć pod uwagę konsumentów metod, które się nie zmieniają, czy chcemy zmusić ich do podniesienia lub jesteśmy szczęśliwi, że wskazują na poprzednią wersję, ale oczywiście obsługujemy wiele wersji.
Duży problem polega na tym, że mikroserwisy hodują wyizolowaną wiedzę i przyjmując podejście, że twórca jednej usługi nie musi wiedzieć, kto lub co ją zużywa, oznacza, że nie jesteś w stanie odpowiedzieć na to, co często jest bardzo ważnym pytaniem tego, kto lub co zajmuje się tą usługą i czy musimy ją zmusić do wzniesienia się do nowego punktu końcowego. W praktyce może to sprawić, że twoje serwery sieciowe będą trochę zawiedzione, a stare usługi nie będą musiały tego robić.
Niezależnie od tego, jakie jest Twoje rozwiązanie, zawsze staram się pogrupować Twoją logikę i umieścić podobne metody w tym samym projekcie. Myślę, że musisz zaakceptować, że podejmujesz decyzje, nie mając pełnej wiedzy o tym, jak rozwinie się to rozwiązanie w przyszłości i dlatego będziesz musiał potasować rzeczy.
Kolejnym zagadnieniem będzie zarządzanie wymaganiami i równoległy rozwój. Dzięki usługom mikro prawdopodobnie łatwiej będzie zarządzać wymaganiami biznesowymi niż pojedynczą usługą. Załóżmy, że dostajesz 10 wymagań i żądasz dostarczenia 5 w następnym miesiącu, a pozostałych 5 w następnym miesiącu. Załóżmy na przykład, że pierwsze 5 wymagań skupia się na logice biznesowej a na następnej partii w logice biznesowej b, jeśli masz dwóch programistów, możesz sprawić, by pracowali nad tym równolegle bez konieczności rozgałęziania i scalania. Jest to oczywiście dobry przykład do zilustrowania tego punktu, ale jest to relacja relatywnie łatwa, jeśli są podzielone na różne usługi, ponieważ łatwo jest powiedzieć przedstawicielom firmy, że logika biznesowa A musi iść w parze.
Internetowe usługi stanowe mogą być trudne do szybkiego przetestowania, co prawda można je obejść, ale zawsze lubię być w stanie wysłać zgłoszenie do usługi i uzyskać odpowiedź, jeśli muszę przygotowywać rzeczy, to spowalnia mnie to i może to być frustrujące podczas diagnozowania problemów na żywo.
Zobacz ["Czy pytania powinny zawierać" znaczniki "w tytułach?] (Http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles) , gdzie konsensus jest "nie, nie powinien"! –
@AndreasNiedermair Zmieniłem tytuł. – CPA