Pokračování s téma evoluce a změn paradigmat a pracovních metod došlo v oblasti vývoje softwaru, čehož jsme se nedávno dotkli v článcích s názvem „Vývoj softwaru: historický přehled až do současnosti“, „Interoperabilita prostřednictvím cloudu: Jak toho dosáhnout?“ y „XaaS: Cloud Computing - Vše jako služba“, dnes si povíme Mikroslužby.
Mikroslužby jsou moderní softwarová architektura, nikoli API (Application Programming Interface) nebo samotná technologie, kterou lze instalovat a používat. Softwarové architektury, známé také jako softwarové vzory, jsou programovacím jazykům zcela cizí, protože určují pouze způsob, jakým by technologie měly fungovat, a nikoli způsob jejich implementace.
Úvod
Na mikroslužby lze pohlížet jako na vývoj architektury SOA (architektura orientovaná na služby), který vede vývojáře k vytváření modulárnějších aplikací, které jsou funkční a autonomní, s vysokou kapacitou, které lze efektivně znovu použít, jak je tomu obdobně, když optimalizujeme použití nějakého hardwaru, ve kterém Rozvíjí pouze to, co je skutečně nutné, místo toho, aby zbytečně rozvinul svůj plný potenciál.
Architektura mikroslužebv praxi se to nestalo tak rozšířeným jako teoreticky, to znamená, je známější než používáno. Mnoho vývojářů to však implementuje každý den, protože jde o model vývoje softwaru zlepšuje čas, výkonnost a stabilitu proměnných v projektech, kde se aplikuje. Kromě toho jeho jednoduchá přidružená škálovatelnost je obzvláště vhodný pro vývoj, kde je nezbytná kompatibilita mezi platformami (Web, Mobile, Wearables, IoT).
Ale zatímco SOA je architektura vyšší úrovně, tj. Architektura, kde jsou vytvářeny aplikace založené na službách, kde je služba nejmenší a nejfunkčnější jednotkou práce v rámci vytvořené aplikace, Architektura mikroslužeb také umožňuje nám vytvářet služby, ale tyto služby jsou navrženy velmi malým a konkrétním způsobem tak, aby splňovaly velmi přesnou a přesnou funkčnost, a to takovým způsobem, že je lze oddělit od zbytku aplikací a fungovat zcela autonomně od zbytku aplikace, kde byla vytvořena.
Co jsou softwarové architektury (vzory)?
Abychom dobře porozuměli softwarové architektuře mikroslužeb, je dobré vědět něco o všech nejznámějších existujících softwarových architekturách. Existuje mnoho existujících, jak je vidět na stránkách oodesign nebo jednoduše dovnitř Wikipedia, ale podle slavné knihy s názvem „Kniha vzorů“ (Kniha návrhových vzorů) stávající vzory lze klasifikovat jako:
Kreativní
Ti, kteří se zabývají způsoby vytváření instancí objektů a jejichž cílem je abstrahovat proces vytváření instancí a skrýt podrobnosti o tom, jak jsou objekty vytvářeny nebo inicializovány. V této třídě jsou následující:
- Abstraktní továrna
- Stavitel
- Tovární metoda
- Prototyp
- Singleton
Strukturální
Ty, které popisují, jak lze kombinovat třídy a objekty (jednoduché nebo složené), aby vytvořily velké struktury a poskytly nové funkce. V této třídě jsou následující:
- Adaptér
- Bridge
- Složený
- Malířka
- Fasáda
- Muška
- Zástupce
Chování
Ty, které nám pomáhají definovat komunikaci a iteraci mezi objekty systému. Účelem tohoto vzoru je snížit vazbu mezi objekty. V této třídě jsou následující:
- Řetěz odpovědnosti
- Příkaz
- Tlumočník
- Iterátor
- Prostředník
- Memento
- Pozorovatel
- Stát
- Strategie
- Metoda šablony
- Návštěvník
ostatní
Předchozí návrhové vzory vyjadřovaly schémata, která definují konstrukční struktury, pomocí kterých lze budovat softwarové systémy. Ale když chceme lépe vyjádřit základní organizační a strukturální schéma vytvořených softwarových systémů, obvykle najdeme tuto jinou klasifikaci:
- Břidlicová architektura
- DAO: Objekt pro přístup k datům
- DTO: Objekt přenosu dat
- EDA: Architektura řízená událostmi
- Implicitní vyvolání
- Nahé předměty
- Vrstvené programování
- Peer-to-peer
- Potrubí
- SOA: Architektura orientovaná na služby
- Tři úrovně
K dispozici je také „Model zobrazení ovladače“ který je dobře známý a používaný a je rozdělen na:
- Model / Pohled / Řadič
- Model / Pohled / Prezentátor
- Model / View / Presenter s Model Presenter
- Model / View / View-Model
- Model / View / Presenter s pasivním zobrazením
- Model / View / Presenter s kontrolerem
Být «Model View Controller» jeden z nejznámějších a dnes implementovaných, nestačí poskytnout požadované funkce podnikové aplikaci, a to je jeden z hlavních důvodů, proč Microservices Architecture nahrazuje Model-View-Controller (MVC).
Výhody architektury mikroslužeb
Když webová platforma využívá architekturu Microservices Architecture, má obvykle následující výhody:
- vyřešit snadno každý problém nebo problém představený řešením každé malé mikroslužby zapojené do konkrétní situace.
- Zmírnit Obecná nebo globální selhání služeb, protože když Microservice selže, neovlivní to ostatní, protože jsou zcela nezávislé.
- Uklidnit se spuštění a začlenění úplných nebo specifických funkcí nebo služeb, protože každou Microservice lze přidávat nebo odebírat a aktualizovat samostatně a postupně.
- Zlepšit se přístup k aplikacím nebo službám vytvořeným ze všech typů zařízení a platforem.
- Zvýšení univerzálnost platformy, protože Microservices mohou být distribuovány na různých serverech a psány v různých jazycích.
Open Source Frameworks
existuje mnoho možnosti otevřeného zdroje které mohou vývojáři softwaru použít k vývoji řešení, která jsou součástí Microservices Architectures. Konkrétně pro Javu, která je k tomu široce používanou technologií, existují následující:
- Kriket
- dropwizard
- Microprofile Eclipse
- Helidone
- Trikot
- Payara Micro
- Hrát
- restlet
- Jiskra
- Jarní bota
- Squash
- Naparování
- Teleprezence
- WildFly Thorntail
- Zipkin
Webové příklady s architekturami mikroslužeb
Z velkého počtu webů, které poskytují rozsáhlé aplikační služby a postupně implementovaly architekturu Microservices Architecture za účelem zlepšení údržby a škálovatelnosti jejich služeb a platformy produktů, což je jednoduché, efektivní a rychlé, můžeme zmínit tři hlavní v oboru Co jsou:
- Amazonka
- Ebay
- Netflix
Závěr
Je jasné že Mikroslužby významně přispívají k vývoji moderního webového softwaruAle také znamenají řešení mnoha nových výzev k řešení. Problémy, které nemusí mít co do činění pouze s rámcovým učením a efektivní prací, ale také s tím, jak se tento nový vývoj doplňuje a implementuje v IT odděleních, která je nakonec budou online a spravovat a budou hlasovat váha při konečném rozhodování o každém vývoji. Ale Tato architektura je tady a zůstala dlouho.