Folytatva az evolúció témája, valamint a paradigmák és a munkamódszerek változásai a szoftverfejlesztés területén történt, amelyet a közelmúltban érintettünk az úgynevezett cikkekben "Szoftverfejlesztés: Történelmi áttekintés a mai napig", "Interoperabilitás a felhőn keresztül: hogyan érhető el?" y "XaaS: Cloud Computing - Minden, mint szolgáltatás", ma erről fogunk beszélni Mikroszolgáltatások.
A mikroszolgáltatások egy modern szoftverarchitektúra, nem pedig API (Application Programming Interface) vagy maga a technológia, amely telepíthető és használható. A szoftverarchitektúrák, más néven szoftverminták, teljesen idegenek a programozási nyelvektől, mivel csak a technológiák működésének módját határozzák meg, és nem a megvalósítás módját.
Bevezetés
A mikroszolgáltatások a SOA Architecture (Service-Oriented Architecture) fejlődésének tekinthetők, amely arra irányítja a fejlesztőket, hogy funkcionálisabb és autonóm modulárisabb alkalmazásokat hozzanak létre, amelyek nagy kapacitással hatékonyan újrafelhasználhatók, ahogyan ez hasonló módon történik, amikor optimalizálunk bizonyos hardvereket, amelyekben csak azok bontakoznak ki. ami valóban szükséges, ahelyett, hogy szükségtelenül kibontakoztatná teljes potenciálját.
A mikroszolgáltatások architektúrája, a gyakorlatban nem vált annyira elterjedté, mint elméletben, vagyis ismertebb, mint használt. Azonban mindennap sok fejlesztő implementálja, mert ez egy szoftverfejlesztési modell Javítja a változók idejét, teljesítményét és stabilitását azokon a projekteken belül, ahol alkalmazzák. Emellett az övé egyszerű társított méretezhetőség különösen alkalmassá teszi olyan fejlesztésekben, ahol a platformok közötti kompatibilitás (Web, Mobile, Wearables, IoT) elengedhetetlen.
De míg a SOA egy magasabb szintű építészet, vagyis egy olyan architektúra, ahol a szolgáltatásokra épülő alkalmazások épülnek fel, ahol a szolgáltatás a létrehozott alkalmazáson belül a legkisebb és legfunkcionálisabb munkaegység, Mikroszolgáltatások architektúrája is lehetővé teszi számunkra, hogy szolgáltatásokat hozzunk létre, de ezeket a szolgáltatásokat úgy tervezték nagyon kicsi és konkrét módon hogy nagyon pontos és pontos funkciókat töltsenek be, oly módon, hogy leválaszthatók a többi alkalmazásról, és teljesen autonóm módon működjenek az alkalmazás többi részétől, ahol létrehozták.
Mik azok a szoftverarchitektúrák (minták)?
A mikroszolgáltatások szoftverarchitektúrájának megértéséhez jó, ha ismerünk egy kicsit a legismertebb meglévő szoftverarchitektúrákról. Sok létező létezik, amint az a webhelyen is látható oodesign vagy egyszerűen be Wikipedia, de a híres könyv szerint "Minta tervezési könyv" (Tervezési minták könyv) a meglévő minták a következőkbe sorolhatók:
Kreatív
Azok, amelyek az objektumok példányosításának módjaival foglalkoznak, és amelyek célja a példányosítás folyamatának elvonatkoztatása, és az objektumok létrehozásának vagy inicializálásának részleteinek elrejtése. Ebben az osztályban a következők vannak:
- Absztrakt gyár
- Építész
- Gyári módszer
- Prototípus
- Szingli
Szerkezeti
Azok, amelyek leírják, hogy az osztályok és az objektumok (egyszerű vagy összetett) hogyan kombinálhatók nagy struktúrák kialakításához és új funkciók biztosításához. Ebben az osztályban a következők vannak:
- adapter
- Bridge
- Összetett
- díszlettervező
- épülethomlokzat
- Légysúly
- meghatalmazott
viselkedés
Azok, amelyek segítenek meghatározni a rendszer objektumai közötti kommunikációt és iterációt. Ennek a mintának a célja az objektumok közötti kapcsolatok csökkentése. Ebben az osztályban a következők vannak:
- A felelősség láncolata
- parancs
- Tolmács
- iterátor
- Közvetítő
- emlékeztető
- Megfigyelő
- Állami
- Stratégia
- Sablon módszer
- Látogató
Egyéb
A korábbi tervezési minták olyan sémákat fejeztek ki, amelyek meghatározzák a tervezési struktúrákat, amelyekkel szoftverrendszereket lehet építeni. De amikor jobban meg akarjuk fejezni a létrehozott szoftverrendszerek alapvető szervezeti és strukturális sémáját, általában ezt a másik besorolást találjuk:
- Pala építészet
- DAO: Adathozzáférési objektum
- DTO: Adatátviteli objektum
- EDA: Eseményvezérelt építészet
- Implicit meghívás
- Meztelen tárgyak
- Réteges programozás
- Peer-to-peer
- Csővezeték
- SOA: Szolgáltatásorientált architektúra
- Három szint
Van még a "Vezérlő modellje" amely jól ismert és használt, és fel van osztva:
- Modell / Nézet / Vezérlő
- Modell / Nézet / Előadó
- Model / View / Presenter with Model Presenter
- Modell / Nézet / Nézet-modell
- Modell / nézet / előadó passzív nézettel
- Modell / nézet / előadó felügyelő vezérlővel
lét a "Controller View Model" az egyik legismertebb és megvalósított ma, nem elegendő a szükséges funkciók biztosítása egy vállalati alkalmazás számára, és ez az egyik fő oka annak, hogy A Microservices Architecture felváltja a Model-View-Controllert (MVC).
A Microservices Architecture előnyei
Amikor egy webes platform a Microservices architektúrát használja, annak általában a következő előnyei vannak:
- rezolverhez könnyedén bemutathat minden problémát vagy problémát azáltal, hogy foglalkozik az adott helyzetben részt vevő minden egyes kis Microservice-szel.
- Enyhíteni A szolgáltatások általános vagy globális meghibásodása, mivel amikor egy Microservice meghibásodik, az nem érinti a többieket, mert teljesen függetlenek.
- Enyhíteni komplett vagy specifikus funkciók vagy szolgáltatások bevezetése és beépítése, mivel mindegyik Microservice külön-külön és fokozatosan hozzáadható vagy eltávolítható és frissíthető.
- Jobban lenni hozzáférés minden típusú eszközről és platformról létrehozott alkalmazásokhoz vagy szolgáltatásokhoz.
- növekedés a platform sokoldalúsága, mivel a Microservices különböző szervereken terjeszthető és különböző nyelveken írható.
Nyílt forráskódú keretrendszerek
sok nyílt forráskódú opciók amelyet a szoftverfejlesztők felhasználhatnak a Microservices Architectures részét képező megoldások kifejlesztésére. Pontosabban a Java számára, amely erre széles körben alkalmazott technológia, a következők vannak:
- Krikett
- Varázsló
- Eclipse MicroProfile
- Helidon
- Jersey
- Payara Micro
- játszani
- restlet
- Szikra
- Tavaszi bakancs
- Squash
- Henceg
- TelePresence
- WildFly Thorntail
- zipkin
Webes példák Microservices architektúrákkal
A nagyszámú olyan webhely közül, amelyek nagyszabású alkalmazás-szolgáltatásokat nyújtanak, és fokozatosan implementálták a Microservices Architecture-t, hogy javítsák szolgáltatásaik és termékeik platformjának karbantartását és skálázhatóságát, egyszerűvé, hatékonyá és gyorsabbá téve, az iparág három fő webhelyét említhetjük Kik ők:
- amazon
- Ebay
- Netflix
Következtetés
Világos, hogy A mikroszolgáltatások nagyban hozzájárulnak a modern webalapú szoftverfejlesztéshezDe sok új megoldandó kihívás kezelését is jelentik. Problémák, amelyek nem csak a keretrendszer tanulásához és hatékony működéséhez kapcsolódnak, hanem az is, hogy ezeket az új fejlesztéseket hogyan egészítik ki és hajtják végre az informatikai részlegek, akik végül ők teszik online és kezelik őket, és szavaznak súlya az egyes fejlesztésekre vonatkozó végső döntésekben. De Ez az építészet itt van, és sokáig maradt.