Mikrousługi: czym są i jakie przynoszą korzyści

Ciągłe dostarczanie (CD) to praktyka polegająca na używaniu automatyzacji do wydawania oprogramowania w krótkich iteracjach

Wypróbuj Compass bezpłatnie

Improve your developer experience, catalog all services, and increase software health.

Mniej więcej do 2013 roku firmy zwykle tworzyły oprogramowanie dla firm i organizacji, konstruując aplikacje jako pojedyncze jednostki z dużymi bazami kodów — architekturę monolityczną. Ponieważ oprogramowanie stało się bardziej złożone, a popularność zyskało przetwarzanie w chmurze, podejście to stało się mniej praktyczne.

Pojawienie się produktów typu oprogramowanie jako usługa (aplikacji dostarczanych w chmurze) pozwoliło firmom korzystać z usług dostawców, takich jak Amazon Web Services, do tworzenia nowych serwerów i szybkiego dodawania nadmiarowości. Dzięki temu usługi pozostawały online podczas aktualizacji. Zapoczątkowało to również nową erę prędkości i elastyczności. Użytkownicy zaczęli oczekiwać szybkich uaktualnień i ulepszeń, co skłoniło firmy do zmiany swoich procesów tworzenia oprogramowania.

Firmy zaczęły dzielić aplikacje na mniejsze, niezależne usługi lub mikrousługi. Na przykład zamiast umieszczać skrzynkę odbiorczą wiadomości na monolitycznej platformie e-commerce, mogą utworzyć dla tej funkcji oddzielną mikrousługę.

Jednocześnie programiści zaczęli pracować w mniejszych, bardziej wyspecjalizowanych grupach, które modyfikowały i ulepszały poszczególne usługi bez ryzyka dla całej aplikacji. Grupy te często brały również odpowiedzialność za działanie swojego kodu — model ten nosi nazwę DevOps. Aby ułatwić te zmiany, menedżerowie projektów zaczęli opracowywać nowe metodologie, takie jak Agile, która dzieli projekty na mniejsze, ale częstsze wydania.  

Czytaj dalej, aby dowiedzieć się więcej o budowie aplikacji opartych na mikrousługach. Dowiedz się również, w jaki sposób narzędzie Compass firmy Atlassian ogranicza złożoność, umożliwiając jednocześnie programistom czerpanie korzyści z tego modelu architektury.

Czym są mikrousługi?

Mikrousługa to funkcja odpowiedzialna za pojedynczy element logiki (z wyjątkiem objaśnionych poniżej mikrousług domeny). Mikrousługi łączą się, tworząc aplikacje rozproszone, takie jak Jira Software.

Istnieją trzy rodzaje mikrousług:

  1. 1

    Domain microservices loosely couple services with related functionality. 

  2. 2

    Mikrousługi integracyjne ułatwiają interakcję między niepowiązanymi aplikacjami. 

  3. 3

    Mikrousługi jednostek obsługują pojedyncze funkcje.

Mikrousługi współdziałają ze sobą za pomocą interfejsów programowania aplikacji (API). Programiści pracujący nad poszczególnymi usługami mogą poznawać wewnętrzne funkcjonowanie pozostałych mikrousług, co stanowi kolejną przewagę nad architekturą monolityczną.

Architektura oparta na mikrousługach oferuje wiele korzyści, ale jednocześnie zwiększa stopień złożoności. Dlatego firma Atlassian opracowała narzędzie Compass, które ma pomóc firmom ograniczać tę złożoność podczas zmiany skali. Ta platforma środowiska programistycznego gromadzi wszystkie informacje o wynikach prac inżynierskich i współpracy zespołowej w centralnej lokalizacji z możliwością wyszukiwania.

Kluczowe zasady dotyczące mikrousług

Microservices-based architecture has several distinguishing features. Developers can develop and deploy their services independently using the languages and technologies that suit their components. 

Communication between microservices is API-based, allowing access to data from various sources without modification. Individual services can scale based on demand, saving costs and ensuring availability.

These attributes make microservices-based distributed applications flexible and easy to maintain.

Korzyści płynące z mikrousług

Microservices provide many advantages. They simplify development and project management. Sometimes, they may eliminate the need for separate operations teams since developers can handle operations for the microservices they build. 

Some other benefits of microservices include:

Odporność i wyodrębnianie błędów

W architekturach monolitycznych jeden błąd wpływa na całą aplikację. Tymczasem mikrousługi są niezależne. Jedna awaria nie wpływa na pozostałe części aplikacji.

Agility

Dzielenie aplikacji na mniejsze części przyspiesza ich rozwój. Pozwala zespołom na szybsze tworzenie, testowanie i wdrażanie oprogramowania.

Różnorodność technologiczna

Mikrousługi pozwalają programistom wybierać narzędzia i technologie odpowiednie do zadania. Zwiększa to wydajność i produktywność.

Ulepszona konserwacja

Możliwość testowania poszczególnych komponentów ułatwia znajdowanie i naprawianie błędów bez przełączania całej aplikacji w tryb offline.

Odporność i wyodrębnianie błędów

W architekturach monolitycznych jeden błąd wpływa na całą aplikację. Tymczasem mikrousługi są niezależne. Jedna awaria nie wpływa na pozostałe części aplikacji.

Agility

Dzielenie aplikacji na mniejsze części przyspiesza ich rozwój. Pozwala zespołom na szybsze tworzenie, testowanie i wdrażanie oprogramowania.

Różnorodność technologiczna

Mikrousługi pozwalają programistom wybierać narzędzia i technologie odpowiednie do zadania. Zwiększa to wydajność i produktywność.

Ulepszona konserwacja

Możliwość testowania poszczególnych komponentów ułatwia znajdowanie i naprawianie błędów bez przełączania całej aplikacji w tryb offline.

Wyzwania związane z mikrousługami

Microservices-based architecture has many benefits, but it also comes with challenges. 

One challenge of microservices is that the independent services generate their logs. This is a disadvantage compared to monoliths' centralized logs, which provide a single source of truth for developers and operations teams. Monitoring and infrastructure management are also more complicated since many moving pieces exist. Testing and debugging are challenging because, unlike monoliths, no integrated development environment (IDE) exists.

Atlassian's Compass can help with all these challenges. Compass facilitates collaboration and allows companies to manage the complexities of distributed architectures as they scale. It does this by bringing the disconnected information together in a central, searchable location.

Do czego służy architektura mikrousług?

Duże witryny internetowe dla konsumentów często korzystają z setek lub tysięcy mikrousług. Mikrousługi są szczególnie pomocne w następujących przykładach zastosowania i branżach:

  • Witryny e-commerce, takie jak eBay, używają oddzielnych mikrousług do koszyków, aplikacji mobilnych i przesyłania wiadomości.
  • Instytucje finansowe, takie jak Bank of America, wykorzystują mikrousługi do komunikacji z usługami zewnętrznymi. Używają ich również do obsługi funkcji, takich jak autoryzacja użytkowników i wyświetlanie transakcji.
  • Platformy mediów społecznościowych, takie jak Instagram i Facebook, używają mikrousług do wyświetlania użytkownikom kanałów informacyjnych, wiadomości, powiadomień i sieci znajomych.

Najlepsze praktyki dotyczące zarządzania mikrousługami

Przez lata programiści stworzyli dziesiątki niezbędnych najlepszych praktyk w zakresie rozwoju mikrousług. Poniżej podano kilka przykładów:

  • Zasada jednej odpowiedzialności (SRP) określa, że każdy moduł lub każda mikrousługa powinny mieć tylko jedną funkcję. Ciągła integracja (CI) to metodologia kontroli kodu źródłowego, która automatyzuje kontrole jakości kodu przed jego włączeniem do projektu, przyspieszając proces przez wyeliminowanie potrzeby stosowania oddzielnego procesu zapewnienia jakości. Ta najlepsza praktyka DevOps sprzyja prędkości. CI poprzedza ciągłe dostarczanie (CD), które uruchamia zautomatyzowane narzędzia kompilacyjne w celu przygotowania oprogramowania do wdrożenia.
  • Bramy interfejsów API upraszczają komunikację między mikrousługami, zarządzają uwierzytelnianiem i autoryzacją oraz zwiększają bezpieczeństwo.
  • Asynchroniczna komunikacja między mikrousługami zachowuje autonomię, zmniejszając zależności, które mogą spowolnić działanie aplikacji.  
  • Przechowywanie wersji mikrousług ma kluczowe znaczenie, gdy programiści wprowadzają zmiany powodujące niezgodność, takie jak usunięcie całej operacji. Ta praktyka zapewnia płynne zmiany statusu i minimalizuje prawdopodobieństwo zakłóceń w świadczeniu usług.

Oparty na systemie Jira Software zestaw narzędzi Open DevOps firmy Atlassian ułatwia zespołom automatyczną integrację narzędzi firmy Atlassian i jej partnerów, umożliwiając im skupienie się na tworzeniu i obsłudze oprogramowania.

Lepsze zarządzanie architekturą mikrousług dzięki platformie Compass

Compass firmy Atlassian to platforma programistyczna, która łączy rozproszoną architekturę oprogramowania i współpracujące zespoły w jednym miejscu. Zapewnia ona wygodny przegląd wszystkich komponentów i usług, nad którymi pracuje zespół. Zawiera również katalog komponentów oprogramowania, który ułatwia programistom znalezienie tego, czego potrzebują.

Compass umożliwia łatwe zarządzanie komponentami, śledzenie własności i monitorowanie relacji. Śledzi również zmiany w czasie rzeczywistym.

Zintegrowanie platformy Compass ze środowiskiem programistycznym jest proste dzięki konfigurowalnemu interfejsowi użytkownika i kompatybilności z narzędziami własnymi i narzędziami innych firm. Dowiedz się, jak zarządzać architekturą mikrousług za pomocą platformy Compass oraz jak łączy ona niepowiązane informacje w ujednoliconej, centralnej lokalizacji.

Mikrousługi: często zadawane pytania

What tools do people commonly use in microservices?

Firmy często używają narzędzi do konteneryzacji, takich jak Kubernetes i Docker. Przeważnie korzystają również z bram interfejsów API między mikrousługami a ich klientami. Bramy te realizują funkcje ruchu przez interfejsy API, takie jak uwierzytelnianie, kontrola dostępu i równoważenie obciążenia.

Czym różnią się mikrousługi od architektury monolitycznej?

Rozwiązania monolityczne to duże bazy kodów funkcjonujące jako jeden system. Wymagają przestojów systemu w celu aktualizacji i debugowania. Architektury mikrousług to aplikacje rozproszone o mniejszych, niezależnych funkcjach. Programiści mogą aktualizować, ulepszać i debugować te moduły bez przełączania całej aplikacji w tryb offline. Upraszcza to skalowanie i przyspiesza rozwój oprogramowania.

Jak mikrousługi wpływają na DevOps?

Osoby znające DevOps wiedzą, że ciągła integracja i ciągłe dostarczanie (pipeline CI/CD DevOps) stanowią podstawy metodologii DevOps. Modułowy charakter mikrousług idealnie pasuje do tego podejścia. Mikrousługi umożliwiają programistom szybkie i częste tworzenie, testowanie i wdrażanie małych wydań.

Dołącz do społeczności Atlassian, aby uzyskać dostęp do większej liczby artykułów i dyskusji o mikrousługach.

Polecane dla Ciebie

Społeczność rozwiązania Compass

Samouczek: Tworzenie komponentu

Zacznij korzystać z Compass za darmo