Mikrousługi: platformy open source i architektura oprogramowania

Mikrousługi: nowoczesna architektura oprogramowania

Mikrousługi: nowoczesna architektura oprogramowania

Kontynuując temat ewolucji i zmian paradygmatów i metod pracy wydarzyło się w obszarze tworzenia oprogramowania, o którym ostatnio poruszyliśmy w artykułach pt „Rozwój oprogramowania: przegląd historyczny do dnia dzisiejszego”, „Interoperacyjność przez chmurę: jak to osiągnąć?” y „XaaS: Cloud Computing - Everything as a Service”, dzisiaj porozmawiamy Mikrousługi.

Mikrousługi to nowoczesna architektura oprogramowania, a nie API (interfejs programowania aplikacji) lub sama technologia, którą można zainstalować i używać. Architektury oprogramowania, znane również jako wzorce oprogramowania, są całkowicie obce językom programowania, ponieważ określają jedynie sposób, w jaki technologie powinny działać, a nie sposób ich implementacji.

Mikrousługi: wprowadzenie

Wprowadzenie

Mikrousługi można postrzegać jako ewolucję architektury SOA (architektura zorientowana na usługi), który prowadzi programistów do tworzenia bardziej modułowych aplikacji, które są funkcjonalne i autonomiczne, z dużą zdolnością do ponownego wykorzystania w efektywny sposób, jak to się dzieje w podobny sposób, gdy optymalizujemy użycie jakiegoś sprzętu, w którym tylko się rozwija to, co jest naprawdę potrzebne, zamiast niepotrzebnie rozwijać swój pełny potencjał.

Architektura mikrousług, w praktyce nie stał się tak rozpowszechniony jak w teorii, to znaczy jest lepiej znany niż używany. Jednak każdego dnia coraz więcej programistów wdraża go, ponieważ jest to model rozwoju oprogramowania poprawia czas, wydajność i stabilność zmiennych w projektach, w których jest stosowany. Poza tym jego prosta powiązana skalowalność sprawia, że ​​jest on szczególnie przydatny w projektach, w których niezbędna jest zgodność między platformami (internet, urządzenia mobilne, urządzenia do noszenia, IoT).

Mikrousługi: Schemat pracy

Ale podczas gdy SOA jest architekturą wyższego poziomuczyli Architekturę, w której budowane są aplikacje oparte na usługach, gdzie usługa jest najmniejszą i najbardziej funkcjonalną jednostką pracy w ramach tworzonej aplikacji, Architektura mikrousług również pozwala nam tworzyć usługi, ale te usługi są zaprojektowane w bardzo mały i specyficzny sposób tak, aby spełniały bardzo precyzyjną i terminową funkcjonalność, w taki sposób, że można je oddzielić od reszty aplikacji i działać w sposób całkowicie autonomiczny od reszty aplikacji, w której została utworzona.

Mikrousługi: czym one są i czym są?

Czym są architektury oprogramowania (wzorce)?

Aby dobrze zrozumieć architekturę oprogramowania mikrousług, dobrze jest wiedzieć trochę o wszystkich najbardziej znanych istniejących architekturach oprogramowania. Istnieje wiele, jak widać na stronie oodesign lub po prostu w Wikipedia, ale według słynnej książki pt «Książka wzorów wzorów» (Książka wzorców projektowych) istniejące wzorce można sklasyfikować jako:

Kreatywne

Te, które zajmują się sposobami tworzenia instancji obiektów i których celem jest abstrakcja procesu tworzenia instancji i ukrycie szczegółów tworzenia lub inicjowania obiektów. W tej klasie są następujące:

  • Fabryka abstrakcyjna
  • Budowniczy
  • Metoda fabryczna
  • Prototyp
  • Singel

Strukturalny

Te, które opisują, w jaki sposób można łączyć klasy i obiekty (proste lub złożone), tworząc duże struktury i dostarczając nowe funkcje. W tej klasie są następujące:

  • Zasilacz
  • Most
  • Kompozyt
  • Dekorator
  • Fasada
  • Flyweight
  • lufka

comportamiento

Te, które pomagają nam zdefiniować komunikację i iterację między obiektami systemu. Celem tego wzoru jest zmniejszenie sprzężenia między obiektami. W tej klasie są następujące:

  • Łańcuch odpowiedzialności
  • Command
  • Interpretator
  • iteratory
  • Mediator
  • Memento
  • Obserwator
  • Miasto
  • Strategia
  • Metoda szablonu
  • Gość

inni

Poprzednie wzorce projektowe wyrażały schematy definiujące struktury projektowe, za pomocą których można tworzyć systemy oprogramowania. Ale kiedy chcemy lepiej wyrazić podstawowy schemat organizacyjny i strukturalny tworzonych systemów oprogramowania, zwykle znajdujemy tę inną klasyfikację:

  • Architektura łupkowa
  • DAO: Data Access Object
  • DTO: obiekt transferu danych
  • EDA: Architektura sterowana zdarzeniami
  • Niejawne wywołanie
  • Nagie przedmioty
  • Programowanie warstwowe
  • Peer-to-peer
  • Rurociąg
  • SOA: Architektura zorientowana na usługi
  • Trzy poziomy

Jest też „Model widoku kontrolera” który jest dobrze znany i używany i dzieli się na:

  • Model / widok / kontroler
  • Model / Widok / Prezenter
  • Model / Widok / Prezenter z prezenterem modelu
  • Model / Widok / Widok-Model
  • Model / Widok / Prezenter z pasywnym widokiem
  • Model / widok / prezenter z kontrolerem nadzorującym

Bycie „Model View Controller”, jeden z najbardziej znanych i obecnie wdrożonychjest niewystarczające, aby zapewnić wymagane funkcjonalności aplikacji korporacyjnej, a to jeden z głównych powodów, dla których Architektura mikrousług zastępuje model-widok-kontroler (MVC).

Mikrousługi: zalety

Zalety architektury mikrousług

Kiedy platforma internetowa korzysta z architektury mikrousług, ma zwykle następujące zalety:

  • rozwiązać łatwo każdy problem lub problem przedstawiony przez zajęcie się każdą małą mikrousługą zaangażowaną w konkretną sytuację.
  • Łagodzić Ogólne lub globalne awarie usług, ponieważ niepowodzenie mikrousługi nie wpływa na inne, ponieważ są one całkowicie niezależne.
  • W celu ułatwienia uruchomienie i włączenie kompletnych lub określonych funkcjonalności lub usług, ponieważ każda Mikrousługa może być dodawana lub usuwana i aktualizowana oddzielnie i stopniowo.
  • Aby być lepszym dostęp do aplikacji lub usług stworzonych ze wszystkich typów urządzeń i platform.
  • Zwiększ wszechstronność platformy, ponieważ mikrousługi mogą być dystrybuowane na różnych serwerach i napisane w różnych językach.

Mikrousługi: ramy

Struktury Open Source

istnieje wiele opcje open source których programiści mogą używać do opracowywania rozwiązań, które są częścią architektur mikrousług. W szczególności dla języka Java, która jest szeroko stosowaną technologią do tego celu, są następujące:

Mikrousługi: sieci

Przykłady sieci Web z architekturami mikrousług

Wśród dużej liczby witryn internetowych, które zapewniają usługi aplikacji na dużą skalę i stopniowo wdrażają architekturę mikrousług w celu poprawy utrzymania i skalowalności platformy usług i produktów, dzięki czemu jest prosta, skuteczna i szybka, możemy wymienić trzy główne w branży Czym oni są:

  • Amazon
  • Ebay
  • Netflix

Mikrousługi: wniosek

Wnioski

Jest jasne, że Mikrousługi wnoszą wiele do nowoczesnego tworzenia oprogramowania opartego na sieci WebAle oznaczają także zmierzenie się z wieloma nowymi wyzwaniami do rozwiązania. Problemy, które nie tylko mają związek z uczeniem się i wydajną pracą Framework, ale także z tym, jak te nowe rozwiązania są uzupełniane i wdrażane w działach IT, które w końcu są tymi, którzy umieszczają je online i zarządzają nimi, i mają głos przy podejmowaniu ostatecznych decyzji dotyczących każdego rozwoju. Ale Ta architektura jest tutaj i pozostała na długo.