Fortsätter med temat evolution och förändringar i paradigmer och arbetsmetoder hände inom området mjukvaruutveckling, som vi nyligen berörde i artiklarna som heter "Mjukvaruutveckling: En historisk recension fram till i dag", "Interoperabilitet genom molnet: Hur uppnår man det?" y "XaaS: Cloud Computing - Everything as a Service", idag ska vi prata om Mikrotjänster.
Mikrotjänster är en modern programvaruarkitektur, inte ett API (Application Programming Interface) eller en teknik som kan installeras och användas. Programvaruarkitekturer, även kända som programvarumönster, är helt främmande för programmeringsspråk, eftersom de bara fastställer hur tekniker ska fungera och inte hur de implementeras.
Inledning
Mikrotjänster kan ses som en utveckling av SOA Architecture (Service-Oriented Architecture), som guidar utvecklare att skapa mer modulära applikationer som är funktionella och autonoma, med hög kapacitet att återanvändas på ett effektivt sätt, vilket görs på ett liknande sätt, när vi optimerar användningen av viss hårdvara, där den utvecklar bara det som verkligen är nödvändigt istället för att utveckla sin fulla potential i onödan.
Arkitekturen för mikrotjänster, i praktiken har det inte blivit så utbrett som i teorin, det vill säga det är bättre känt än använt. Men varje dag mer implementerar många utvecklare det eftersom det är en programvaruutvecklingsmodell som förbättrar variablerna tid, prestanda och stabilitet inom de projekt där de tillämpas. Dessutom hans enkel associerad skalbarhet gör det särskilt lämpligt i utvecklingar där plattformskompatibilitet (Web, Mobile, Wearables, IoT) är viktigt.
Men medan SOA är en högre nivå arkitektur, det vill säga en arkitektur där applikationer baserade på tjänster byggs, där en tjänst är den minsta och mest funktionella arbetsenheten inom en skapad applikation, Microservices Architecture också tillåter oss att skapa tjänster, men dessa tjänster är utformade på ett mycket litet och specifikt sätt så att de uppfyller en mycket exakt och punktlig funktionalitet, på ett sådant sätt att de kan frikopplas från resten av applikationerna och fungera på ett helt autonomt sätt från resten av applikationen där den skapades.
Vad är programvaruarkitekturer (mönster)?
För att förstå Microservices mjukvaruarkitektur är det bra att veta lite om alla de mest kända befintliga programvaruarkitekturerna. Det finns många existerande, vilket kan ses på webbplatsen för oodesign eller helt enkelt in wikipedia, men enligt den berömda boken heter "Mönster designbok" (Designmönsterbok) befintliga mönster kan klassificeras som:
Skapande
De som hanterar sätt att instantiera objekt och vars mål är att abstrakta instantieringsprocessen och dölja detaljerna om hur objekt skapas eller initialiseras. I denna klass finns följande:
- Abstrakt fabrik
- Builder
- Fabriksmetod
- Prototype
- singleton
Strukturell
De som beskriver hur klasser och objekt (enkla eller sammansatta) kan kombineras för att bilda stora strukturer och ge nya funktioner. I denna klass finns följande:
- adapter
- bro
- Komposit
- Dekoratör
- fasaden
- Flyweight
- Proxy
Beteende
De som hjälper oss att definiera kommunikationen och iteration mellan objekten i ett system. Syftet med detta mönster är att minska kopplingen mellan objekt. I denna klass finns följande:
- Ansvarsförmåga
- Kommando
- Tolk
- iterator
- Medlare
- Memento
- Observer
- Ange
- Strategi
- Mallmetod
- Besökare
andra
Tidigare designmönster uttryckte scheman som definierar designstrukturer för att bygga programvarusystem. Men när vi bättre vill uttrycka ett grundläggande organisatoriskt och strukturellt system för de skapade programvarusystemen, hittar vi vanligtvis denna andra klassificering:
- Skifferarkitektur
- DAO: Data Access Object
- DTO: Dataöverföringsobjekt
- EDA: Event Driven Architecture
- Implicit anrop
- Nakna föremål
- Skiktad programmering
- Peer-to-peer
- Pipeline
- SOA: Serviceorienterad arkitektur
- Tre nivåer
Det finns också "Controller View Model" som är välkänt och använt och är indelat i:
- Model / View / Controller
- Modell / vy / presentatör
- Model / View / Presenter with Model Presenter
- Model / View / View-Model
- Modell / vy / presentatör med passiv vy
- Model / View / Presenter with Supervisor Controller
vara "Controller View Model" en av de mest kända och implementerade idag, är det otillräckligt att tillhandahålla de funktioner som krävs för en företagsapplikation, och detta är en av de främsta anledningarna till att, Microservices Architecture ersätter Model-View-Controller (MVC).
Fördelar med Microservices Architecture
När en webbplattform använder Microservices Architecture har den vanligtvis följande fördelar:
- lösa enkelt varje problem eller problem som presenteras genom att adressera varje liten Microservice som är inblandad i en specifik situation.
- För att mildra Allmänna eller globala fel i tjänsterna, eftersom när en Microservice misslyckas påverkar den inte de andra, eftersom de är helt oberoende.
- För att underlätta lanseringen och införlivandet av kompletta eller specifika funktioner eller tjänster, eftersom varje Microservice kan läggas till eller tas bort och uppdateras separat och successivt.
- Att bli bättre tillgång till applikationer eller tjänster som skapats från alla typer av enheter och plattformar.
- öka plattformens mångsidighet, eftersom Microservices kan distribueras på olika servrar och skrivas på olika språk.
Open Source Frameworks
Det finns många alternativ med öppen källkod som programutvecklare kan använda för att utveckla lösningar som ingår i Microservices Architectures. Specifikt för Java, som är en mycket använd teknik för detta, finns följande:
- Cricket
- dropwizard
- Eclipse MicroProfile
- Helidon
- Jersey
- Payara Micro
- Spela
- Återställ
- Gnista
- Fjäderkänga
- squash
- Skryt
- Telenärvaro
- WildFly Thorntail
- zipkin
Webbexempel med mikrotjänsterarkitekturer
Bland det stora antalet webbplatser som tillhandahåller storskaliga applikationstjänster och som gradvis har implementerat Microservices Architecture för att förbättra underhåll och skalbarhet för deras tjänster och produktplattformar, vilket gör det enkelt, effektivt och snabbt, kan vi nämna tre stora i branschen Vad är dem:
- amason
- ebay
- Netflix
Slutsats
Det är tydligt att Mikrotjänster bidrar mycket till modern webbaserad mjukvaruutvecklingMen de betyder också att hantera många nya utmaningar att lösa. Problem som inte bara har att göra med Framework-inlärningen och arbetet effektivt utan också hur dessa nya utvecklingar kompletteras och implementeras i IT-avdelningarna, som i slutändan är de som lägger dem online och hanterar och har röst om vikt i slutliga beslut om varje utveckling. Men Den här arkitekturen är här och den har kommit att stanna länge.