14 lut 20227 min czytania
Robert Krajewski
Współzałożyciel i CEO Ideamotive. Przedsiębiorca, mentor i doradca startupów.
Korporacje mają dość monolitycznych aplikacji, które są zbyt trudne w utrzymaniu i zamieniają dodawanie nowych funkcji w katastrofę. Tu wkraczają mikroserwisy.
Mikroserwisy to styl architektoniczny, w którym aplikację buduje się jako zestaw pojedynczych, niezależnych modułów komunikujących się ze sobą przez API. Każdy moduł (mikroserwis) pełni określoną funkcję - jeden odpowiada za profile użytkowników, drugi za koszyk, trzeci za wyszukiwarkę na stronie itd.
Usługi można wdrażać i zmieniać pojedynczo, co oznacza, że łatwo skalujesz i dodajesz nowe funkcje, a praca nad jedną z nich nie wymaga wyłączania całej aplikacji.
W ciągu ostatnich 5 lat firmy zaczęły dostrzegać, jak korzystna jest ta technologia, a liczba wyszukiwań hasła „microservices” w Google zanotowała wzrost o 200%. Wielkie firmy, takie jak Amazon, Netflix, Uber czy eBay, już przeszły na ten typ architektury, co pozwoliło im zarządzać stale rosnącą listą użytkowników i funkcji znacznie mniejszym nakładem sił niż w przypadku aplikacji monolitycznych.
Mikroserwisy można pisać w dowolnym języku, a poszczególne usługi nawet w różnych językach, zależnie od tego, która technologia lepiej pasuje do danej funkcji (lepiej jednak nie mieszać zbyt wielu - trudno będzie zapewnić im dobrą komunikację). Najczęściej używane języki do mikroserwisów to Python, JavaScript, Java, .NET i C#.
W tym artykule skupimy się na budowie mikroserwisów w C#: dla jakich firm i projektów się sprawdzą, jakich zasobów będzie wymagać development, jakie są plusy i minusy tej technologii oraz jaki będzie jej wpływ. Dowiedz się wszystkiego, co trzeba wiedzieć o tworzeniu mikroserwisów w C#, aby w pełni świadomie zdecydować, czy to najlepsza opcja dla Twojego kolejnego projektu.

Zanim zaczniesz projekt z mikroserwisami w C#, musisz lepiej poznać zasoby, których będziesz potrzebować do jego realizacji.
Przede wszystkim będziesz musiał znaleźć architekta oprogramowania. Mikroserwisy stawiają inne wyzwanie niż monolit - chodzi o to, by usługi komunikowały się ze sobą i poprawnie przekazywały dane. Część przykładowych mikroserwisów w C# będzie ze sobą współpracować i od siebie zależeć, o co również trzeba zadbać. Na przykład ulubione i rekomendacje będą musiały się komunikować, aby zapewnić bardziej spersonalizowane doświadczenie. Zaprojektowanie architektury to jeden z pierwszych kroków developmentu. Architekt oprogramowania to osoba, która potrafi zagłębić się w te niuanse i zadbać, by Twoje mikroserwisy łączyły się ze sobą w sensowny sposób.
Po drugie, będziesz potrzebować programistów doświadczonych zarówno w C# jak i w mikroserwisach. Lepiej pracować w kilku małych, 1-2-osobowych zespołach, z których każdy zajmuje się jednym lub dwoma mikroserwisami. Zalecamy zatrudnić project managera, który widzi produkt w szerszej perspektywie i zapewnia dobrą komunikację z zespołem oraz kadrą zarządzającą. Czasem, gdy mikroserwisów jest zbyt wiele, trzeba zatrudnić więcej niż jednego project managera.
Jako product owner będziesz zaangażowany głównie na etapie planowania, gdzie decydujesz o funkcjach, liczbie mikroserwisów, harmonogramie, budżecie i zespołach. Potem możesz włączać się rzadko, głównie odbierając aktualizacje od project managera. Jeśli go nie masz, będziesz zaangażowany nieustannie, bo potrzebna będzie komunikacja między zespołami, a Ty musisz monitorować postępy każdego z nich.
Prawdopodobnie będziesz też potrzebować inżynierów DevOps i administratorów baz danych, aby zapewnić nieprzerwany proces wytwarzania oprogramowania.
Ponieważ będziesz potrzebować więcej programistów o wąskich specjalizacjach i project managerów niż przy zwykłym developmencie monolitu, koszty będą prawdopodobnie wyższe i trzeba być na to gotowym. Jednocześnie koszty ogólne nie powinny Cię odstraszać — w dłuższej perspektywie mikroserwisy są znacznie tańsze w utrzymaniu. Będziesz mógł być na bieżąco ze wszystkimi nowymi trendami na rynku, dodając nowe funkcje tak szybko, jak to możliwe, i nie cierpieć z powodu przestojów całego systemu, gdy jedna funkcja nie działa. Mniejszy jest też strach przed zepsuciem całej aplikacji, jak to zwykle bywa przy oprogramowaniu monolitycznym.
Mikroserwisy zdecydowanie nie są odpowiedzią na każdy projekt i każdą firmę. Inaczej firmy IT przeszłyby na to rozwiązanie w całości.
Ten typ architektury jest przeznaczony dla przedsiębiorstw o licznych i złożonych operacjach lub dla firm, które planują mocno się skalować. Głównym celem mikroserwisów jest ułatwienie zarządzania dużymi aplikacjami. Nie ma sensu komplikować sprawy przy niewielkiej liczbie funkcji. Ze względu na wysokie koszty ogólne technologia ta jest rzadko stosowana przez startupy. Choć wydaje się, że startupy będą się mocno skalować, na początku nigdy nie wiadomo, czy produkt trafi w rynek.
Jeśli tworzysz nowe rozwiązanie, ta technologia dobrze pasuje do następujących projektów:
Jeśli chcesz przepisać starą aplikację, która stała się zbyt złożona, mikroserwisy też są świetną opcją. Na przykład Amazon oferował zbyt wiele usług i już na początku lat 2000 monolit przestał wystarczać. Usiedli więc, zaplanowali, jak zorganizować aplikację w mikroserwisy, i dziś cieszą się skalowalnością oraz zwinnością nowej architektury.

Decyzja o developmencie w mikroserwisach to kluczowy krok i przed jej podjęciem warto mieć wszystkie dostępne informacje. Przyjrzyjmy się plusom i minusom architektury mikroserwisowej w C#, by dać Ci pełny obraz.
Ważne jest też izolowanie mikroserwisów i uniezależnianie ich, tak aby w razie naruszenia hakerzy nie dostali się do całej aplikacji.
Są dwa główne typy wzorców projektowych mikroserwisów w C#: architektura all-to-all (synchroniczna) i sterowana zdarzeniami (asynchroniczna).
Komunikacja synchroniczna oznacza, że wywołujący musi poczekać na odpowiedź, zanim przejdzie do innych zadań. Tworzy to ścisłe powiązanie między usługami i czasem spowalnia procesy.
Komunikacja oparta na zdarzeniach oznacza, że wywołujący nie musi czekać na odpowiedź i może kontynuować swoje zadanie, zanim otrzyma wynik żądania. Mikroserwisy będą wyzwalane przez określone zdarzenia - na przykład gdy klient doda produkt do koszyka, automatycznie uruchomi to obliczenie kosztów dostawy. Ten typ pozwala na luźne powiązanie, ale wymaga większego doświadczenia.
Wybierając mikroserwisy w C#, możesz spodziewać się następujących zmian w oddziaływaniu na wszystkie strony:
C# jest w pierwszej dziesiątce najpopularniejszych języków programowania i piętnastce najbardziej lubianych języków, plasując się wyżej niż JavaScript i Java. Nie ma niedoboru programistów C#, więc raczej nie napotkasz problemów, szukając kilku ekspertów do małych zespołów. Wynika to z tego, że język stosuje się w bardzo różnych projektach, od stron internetowych po gry.
Nie zapomnij jednak wybrać osób, które mają doświadczenie i wiedzę w pracy z mikroserwisami. Warto zadać dodatkowe pytania rekrutacyjne właśnie o architekturę mikroserwisową, a także o umiejętność pracy przy równoległym developmencie. Jeśli chcesz oszczędzić sobie tego kłopotu, możesz udać się do sprawdzonego dostawcy i zająć się innymi zadaniami biznesowymi, podczas gdy firma zapewni Ci przetestowanych i doświadczonych specjalistów.
C# należy do najczęściej używanych języków przy mikroserwisach i ma to swoje uzasadnienie. Bardzo dobrze obsługuje projekty wielojęzyczne, bo działa na platformie .NET , jest zaprojektowany pod łatwe skalowanie oraz jest mocno ustrukturyzowany i wydajny. Oferuje też liczne biblioteki z narzędziami biznesowymi, co czyni go idealnym wyborem do back-endu. C# daje proste rozwiązania do budowy API łączących mikroserwisy i dobrze współpracuje z kontenerami Docker.
Mikroserwisy to świetna alternatywa dla monolitu w złożonym, wielousługowym oprogramowaniu, bo znacznie ułatwiają zarządzanie różnymi usługami i pozwalają dodawać nową funkcjonalność oraz skalować jak najmniejszym wysiłkiem.
Projekty w mikroserwisach z C# wymagają większej inwestycji na początku, ale ROI jest nieporównywalnie lepszy. Programistów znajdziesz łatwo, bo C# jest wśród nich popularny, a język to jeden z najlepszych wyborów do mikroserwisów.
Jeśli szukasz architektów oprogramowania, programistów C#, project managerów, sprawnych testerów i reszty zespołu developerskiego, śmiało odezwij się do Ideamotive. To pewny sposób na znalezienie ekspertów, których potrzebujesz - już po starannej weryfikacji i z wieloletnim doświadczeniem w podobnych projektach.
Robert jest współzałożycielem Ideamotive. Przedsiębiorca, który z pasją szerzy cyfrową rewolucję w całym internecie. Mentor i doradca w akceleratorach startupów. Uwielbia się uczyć i odkrywać nowe modele biznesowe.
Zobacz wszystkie wpisy autoraBiałoruś • Polska • Rumunia • Ukraina
Czytaj terazPopularne artykuły
21 inspirujących projektów UI aplikacji mobilnych na 2023 rok
Michał Pruciak 7 min czytania
MedTech vs HealthTech vs BioTech: jakie są różnice?
Michał Pruciak 7 min czytania
10 biznesowych zastosowań sieci neuronowych (z przykładami!)
Michał Pruciak 4 min czytania
10 przykładów dobrych praktyk w web designie na 2023 rok
Adam Kozłowski 7 min czytania
28 znanych aplikacji webowych napisanych w PHP
Dawid Karczewski 14 min czytania
Jakich usług programistycznych szukasz?
W naszej sieci talentów czekają dziesiątki zweryfikowanych specjalistów C#.
Dane rejestrowe:
Firma
Usługi
Najczęściej poszukiwani specjaliści
Ocena 4,8 / 5,0 od klientów z różnych branż i lokalizacji.