@numeryczny_mikolaj12: Nie wiem czy w przypadku mikroserwisów w ogóle istnieje coś takiego jak podstawy (chyba, że chodzi ci o teoretyczne koncepcje). To jest skomplikowany system już z założenia, a zrobisz źle to będzie trudniej wyprostować niż źle zaprojektowany monolit.
Wszystkie ważne linki od @spetz (+fajna prezentacja) tutaj
@MQs: dzięki! @numeryczny_mikolaj12: nasz darmowy kurs, przykładowe projekty (kurs bazuje na DShop, z najprostszych NPost, a z najnowszych i najładniejszych Pacco). Dodatkowo szykujemy bombę na polskim rynku - kurs online mikroserwisy.net bazując na doświadczeniu zdobytym podczas szkoleń stacjonarnych ale to w niedalekiej przyszłości ( ͡°͜ʖ͡°).
@Yahoo_: dlatego jak prowadzę szkolenia z mikroserwisów, to paradoksalnie w tym celu, aby uświadomić uczestników jak jest to złożone, i że najlepiej zostać przy modularnym monolicie :). @zibizz1: thx!
@Yahoo_: no bo po co robić mikroserwisy? Chyba tylko po to żeby sobie wygenerować więcej pracy. Narzut na development jest zbyt duży. @spetz jakie mamy zalety względem monolitu?
@zibizz1: jak zrobisz dobrze to przede wszystkim autonomiczność (dedykowane osoby per usługa, osobne repozytoria, CI & CD pipeline, łatwo usunąć/przepisać mikroserwisy na nowy), asymetryczna skalowalność (możesz najbardziej wykorzystywaną usługę skalować horyzontalnie niezależnie od reszty) oraz nie ma SPOF jak w przypadku monolitu (część systemu nadal działa, nawet gdy pewne mikroserwisy padły) - jak to faktycznie zrobić dobrze to już inna historia ( ͡°͜ʖ͡°).
@spetz: autonomiczność - co za problem mieć osobny serwis/ zestaw kontrolerów w aplikacji którym może się zajmować dana osoba. Może to być w osobnym projekcie/repozytorium. Łatwo można cały taki moduł odłączyć, podmienić, usunąć. Wydzielając do osobnego projektu łatwiej utrzymać odpowiedni poziom separacji.
asymetryczna skalowalność- a co przeszkadza żeby skalować cała aplikację? Oszczędność zasobów na poziomie aplikacji jest niewielka w mikrosewisach a narzut na komunikację pomiędzy znaczący. Po stronie bazy taka asymetria
autonomiczność - wydzielając usługi do osobnych repozytoriów masz 100% pewność, że nikt przypadkiem nie doda referencji tam gdzie nie powinien, każdy projekt może mieć swój własny cykl życia, prościej zadbać o architekturę, a jesli jest potrzeba to i można go napisać w innej technologii. Zazwyczaj jest też go łatwiej zaorać i napisać od nowa.
asymetryczna skalowalność - niestety ale dużo przeszkadza - możesz sobie wyobrazić, że posiadasz np. obsługę żądania
@spetz: @zibizz1: no i komunikacja miedzy mikroserwisami w wielu przypadkach bywa kluczowa. Na YB na kanale NDC Conferences jest godzinny filmik ktory opowiada historię jakiejs firmy, ktora zapomniala doliczyc koszt komunikacji przez zwykle API miedzy serwisami i w dniu kiedy zaczeli testowac okazalo sie ze maja jakis astronomiczny delay :p Gdyby kogos interesowal glebiej temat to warto obczaic temat protokołu GRPC zbudowanego na HTTP2.
@bacteria tak, gdziekolwiek wchodzi komunikacja sieciowa, topojawia się masa wyzwań, liczymy się z CAP mając zawsze na uwadze partycjonowanie sieci itd. Odnośnie gRPC to bardzo fajna sprawa, coraz większa popularność i w sumie cała komunikacja w ostatnio hypeowanym service mesh się na nim opiera :).
#aspnet #dotnet #csharp #programowanie
microsoft ma bardzo rozwiniete te ich dokumentacje wiec nie wiem w czym problem ( ͡° ͜ʖ ͡°)
Wszystkie ważne linki od @spetz (+fajna prezentacja) tutaj
@numeryczny_mikolaj12: nasz darmowy kurs, przykładowe projekty (kurs bazuje na DShop, z najprostszych NPost, a z najnowszych i najładniejszych Pacco). Dodatkowo szykujemy bombę na polskim rynku - kurs online mikroserwisy.net bazując na doświadczeniu zdobytym podczas szkoleń stacjonarnych ale to w niedalekiej przyszłości ( ͡° ͜ʖ ͡°).
@zibizz1: thx!
@spetz jakie mamy zalety względem monolitu?
autonomiczność - co za problem mieć osobny serwis/ zestaw kontrolerów w aplikacji którym może się zajmować dana osoba. Może to być w osobnym projekcie/repozytorium. Łatwo można cały taki moduł odłączyć, podmienić, usunąć. Wydzielając do osobnego projektu łatwiej utrzymać odpowiedni poziom separacji.
asymetryczna skalowalność- a co przeszkadza żeby skalować cała aplikację? Oszczędność zasobów na poziomie aplikacji jest niewielka w mikrosewisach a narzut na komunikację pomiędzy znaczący. Po stronie bazy taka asymetria
autonomiczność - wydzielając usługi do osobnych repozytoriów masz 100% pewność, że nikt przypadkiem nie doda referencji tam gdzie nie powinien, każdy projekt może mieć swój własny cykl życia, prościej zadbać o architekturę, a jesli jest potrzeba to i można go napisać w innej technologii. Zazwyczaj jest też go łatwiej zaorać i napisać od nowa.
asymetryczna skalowalność - niestety ale dużo przeszkadza - możesz sobie wyobrazić, że posiadasz np. obsługę żądania