SOA vs Microservices - Forskellen mellem dem
Nรธgleforskel mellem SOA og mikrotjenester
- SOA fokuserer pรฅ genanvendelighed af applikationstjenester, mens Microservices fokuserer mere pรฅ afkobling.
- SOA er monolitisk af natur, mens Microservices er fuld stack.
- SOA-applikationer er bygget til at udfรธre adskillige forretningsopgaver, men mikrotjenester er bygget til at udfรธre en enkelt forretningsopgave.
- SOA involverer deling af datalagring mellem tjenester, mens i Microservices kan hver tjeneste have uafhรฆngig datalagring.
- SOA er designet til at dele ressourcer pรฅ tvรฆrs af tjenester, mens Microservices er designet til at hoste tjenester, der kan fungere uafhรฆngigt.
- I SOA Architecture, DevOps og Continuous Delivery er ved at blive populรฆre, men alligevel ikke blevet mainstream, mens Microservices har stor vรฆgt pรฅ DevOps og Continuous Delivery.
- SOA er en mindre skalerbar arkitektur, mens Microservices er en meget skalerbar arkitektur.

Hvad er serviceorienteret arkitektur (SOA)?
SOA er et arkitektonisk mรธnster i computersoftwaredesign. I denne type applikation leverer komponenter tjenester til andre komponenter via en kommunikationsprotokol, typisk over et netvรฆrk. Principperne for serviceorientering er uafhรฆngige af ethvert produkt, leverandรธr eller teknologi. Den fulde form for SOA er serviceorienteret arkitektur
SOA gรธr det lettere for softwarekomponenter over forskellige netvรฆrk at arbejde med hinanden. Webtjenester, der er bygget i henhold til SOA-arkitekturen, har en tendens til at gรธre webtjenester mere uafhรฆngige.
Hvad er mikrotjenester?
Microservices er et serviceorienteret arkitekturmรธnster, hvor applikationer er bygget som en samling af forskellige mindste uafhรฆngige serviceenheder. Det er en softwareteknologisk tilgang, der fokuserer pรฅ at dekomponere en applikation i enkeltfunktionsmoduler med veldefinerede grรฆnseflader.
Disse moduler kan implementeres uafhรฆngigt og drives af smรฅ teams, der ejer hele tjenestens livscyklus.
Udtrykket "mikro" refererer til stรธrrelsen af โโen mikrotjeneste, som skal kunne administreres af et enkelt udviklingsteam (5 til 10 udviklere). I denne metode er store applikationer opdelt i de mindste uafhรฆngige enheder.
Forskellen mellem SOA og mikrotjenester
Her er forskellene mellem SOA og mikrotjenester:
| SOA (serviceorienteret Architecture) | Microservices |
|---|---|
| SOA modellen har et enkelt datalagerlag, som deles af alle tjenesterne i den applikation. | Microservices-apps dedikerer for det meste en database eller anden type lagring til tjenester, der har brug for det. |
| Kommunikation mellem forskellige tjenester i en SOA-app bruger enkle og ligetil tilgange. | Mikrotjenester bruger komplekse API'er. |
| Fokuseret pรฅ maksimerer applikationstjenestens genbrugbarhed. | Mere fokuseret pรฅ afkobling. |
| En systematisk รฆndring krรฆver modificering af monolitten. | En systematisk รฆndring hjรฆlper dig med at skabe en ny service. |
| DevOps og Continuous Delivery er ved at blive populรฆre, men alligevel ikke mainstream. | Stรฆrk vรฆgt pรฅ DevOps og kontinuerlig levering |
| Monolitisk i naturen | Fuld stack i naturen |
| Understรธtter flere meddelelsesprotokoller. | Bruger lette protokoller som HTTP, REST eller Thrift API'er. |
| Det er designet til at dele ressourcer pรฅ tvรฆrs af tjenester. | Det er designet til at vรฆre vรฆrt for tjenester, der kan fungere uafhรฆngigt. |
| Indebรฆrer ofte komponentdeling | Typisk inkluderer det ikke komponentdeling |
| Indebรฆrer deling af datalagring mellem tjenester | Hver tjeneste kan have uafhรฆngig datalagring. |
| Bedre til integrationer i stor skala | Bedre til smรฅ og webbaserede applikationer. |
| Kommunikerer gennem en ESB | Kommuniker gennem et API-lag |
| Afhรฆnger af deling af ressourcer | Stoler pรฅ den afgrรฆnsede kontekst for kobling. |
| Less fleksibilitet i implementeringen | Hurtig og nem implementering. |
| Teknologistakken af โโSOA er lavere sammenlignet med Microservice. | Mikroserviceteknologistak kan vรฆre meget stor. |
| Forretningsenheder er afhรฆngige. | Forretningsenheder er uafhรฆngige af hinanden. |
| En SOA-app bestรฅende af to eller tre tjenester. | En Microservices-app kan have snesevis af tjenester. |
| SOA-applikationer er bygget til at udfรธre adskillige forretningsopgaver. | De er bygget til at udfรธre en enkelt forretningsopgave. |
| Implementering er en tidskrรฆvende proces. | Implementeringen er ligetil og mindre tidskrรฆvende. |
| Forretningslogikkomponenter er gemt inde i enkelt servicedomรฆne simple wire-protokoller (HTTP med XML JSON) API drives med SDK'er/klienter. | Forretningslogik kan leve pรฅ tvรฆrs af domรฆner, enterprise service bus som separate lag mellem tjenester. |
| Bruger enterprise service bus (ESB) til kommunikation | Det bruger det mindre komplicerede og ligetil beskedsystem |
| Softwarestรธrrelsen er stรธrre end nogen konventionel software | Softwarens stรธrrelse er lille i Microservices |
| Multigevind med flere overheads til at hรฅndtere I/O | Enkeltgevind bruges mest med Event Loop-funktioner til ikke-lรฅsende I/O-hรฅndtering |
| En systematisk รฆndring nรธdvendig for at modificere monolitten | I Microservices er systematisk forandring at skabe en ny service |
| Fokuser pรฅ at maksimere genbrugbarheden af โโapplikationstjenester. | Vรฆgt pรฅ afkobling. |
| Fรฆlles ledelse og standarder. | Afslappet styring, som er mere fokuseret pรฅ menneskers samarbejde og valgfrihed. |
| Implementeringsprocessen er tidskrรฆvende. | Implementeringen er nem og mindre tidskrรฆvende. |
| Less skalerbar arkitektur. | Meget skalerbar arkitektur. |
Hvad er SOA Archilรฆre?
Serviceorienteret arkitektur er en stil inden for softwaredesign. En arkitektur er kategoriseret i to dele
- funktionelle aspekter og
- servicekvalitetsaspekter.
Lad os se dem begge i detaljer:

Funktionelle aspekter
Det funktionelle aspekt indeholder:
Transport: Denne komponent transporterer serviceanmodningerne fra serviceforbrugeren til serviceudbyderen og servicesvar fra dem til serviceforbrugeren.
Tjenestekommunikationsprotokol: Det giver tjenesteudbyderen og forbrugeren mulighed for at kommunikere med hinanden.
Service Description: Den forklarer den service og de data, der krรฆves for at aktivere den.
Service: Det er en egentlig service.
Forretningsproces: Denne komponent reprรฆsenterer gruppen af โโtjenester, der kaldes i en bestemt foruddefineret rรฆkkefรธlge, der er forbundet med de specifikke regler for at opfylde forretningskravene.
Serviceregister: Dette register indeholder beskrivelsen af โโdata, der bruges af tjenesteudbydere til at offentliggรธre deres tjenester.
Servicekvalitetsaspekter
Servicekvaliteten indeholder:
- Politik: Det er et sรฆt protokoller, ifรธlge hvilke tjenesteudbydere skaber og leverer tjenester til forbrugere.
- Sikkerhed: Det reprรฆsenterer det sรฆt af protokoller, der er nรธdvendige for identifikation og godkendelsesprocessen.
- Transaktion: Det giver sikkerhed for ensartede resultater.
- Ledelse: Denne komponent af SOA hjรฆlper dig med at definere det sรฆt af attributter, der bruges til at administrere tjenesterne.
Hvad er en mikroservice Archilรฆre?
Det er en arkitektonisk udviklingsstil, der gรธr det muligt at bygge en applikation som en samling af smรฅ autonome tjenester udviklet til et forretningsdomรฆne.
Lad os tage et eksempel pรฅ en e-handelsapplikation udviklet med mikroservicearkitektur. I dette eksempel er hver mikrotjeneste fokuseret pรฅ enkelt virksomhedskapacitet. Sรธgning, vurdering og anmeldelse og betaling har hver deres instans (server) og kommunikerer med hinanden.

I denne Monolitikum Architecture, smelter alle komponenterne sammen til et enkelt modul. Men i Microservices Architecture, er de spredt i individuelle moduler (microservice), som kommunikerer med hinanden.
Kommunikationen mellem mikrotjenester er en statslรธs kommunikation, hvor hvert par af anmodninger og svar er uafhรฆngige. Derfor kan Microservices kommunikere ubesvรฆret. I Microservice Architecture, er dataene fรธdereret. Hver mikroservice har et separat datalager.
Funktioner af SOA
Her er vigtige funktioner i SOA
- SOA bruger grรฆnseflader, der lรธser de svรฆre integrationsproblemer i store systemer.
- SOA kommunikerer med kunder, udbydere og leverandรธrer ved hjรฆlp af XML-skemaet.
- SOA bruger meddelelsesovervรฅgningen til at forbedre ydeevnemรฅlingen og registrerer sikkerhedsangrebene.
- Da det genbruger tjenesten, er omkostningerne lidt lavere til softwareudvikling og -styring.
Funktioner af mikrotjenester
Her er vรฆsentlige funktioner i Microservices:
- I Microservices er moduler de lรธst koblede
- Ledelse af projektet, kan ogsรฅ modulariseres.
- Omkostningerne ved skalerbarhed er ringe
- Det er meget nemt at bruge flere teknologier som flere funktioner i en applikation.
- Det er en ideel service til evolutionรฆre systemer, hvor du ikke kan forudse, hvilke typer enheder der en dag kan fรฅ adgang til din applikation.
Fordele ved SOA
Her er fordele/fordele ved SOA
- Det er nemt at redigere og opdatere enhver tjeneste
- Tjenester har den samme biblioteksstruktur, som giver forbrugerne adgang til tjenestedataene fra den samme adressebog hver gang.
- Tjenester kommunikerer med andre applikationer ved hjรฆlp af et fรฆlles sprog, hvilket betyder, at det er uafhรฆngigt af platformen
- Tjenester er normalt smรฅ i forhold til den fuldgyldige applikation. Derfor er det nemmere at fejlsรธge og teste de uafhรฆngige tjenester.
- SOA gรธr det muligt at genbruge servicen til et eksisterende system, skiftevis opbygning af det nye system.
- Det tilbyder at tilslutte nye tjenester eller at opgradere eksisterende faciliteter for at stille de nye forretningskrav.
- Du kan forbedre ydeevnen, funktionaliteten af โโen tjeneste og nemt opgradere systemet.
- SOA kan justere eller modificere de forskellige eksterne miljรธer
- Virksomhederne kan udvikle applikationer uden at erstatte eksisterende applikationer.
- Det tilbyder pรฅlidelige applikationer, hvor du kan teste og fejlsรธge de uafhรฆngige tjenester sammenlignet med et stort antal kode.
Fordel ved mikrotjenester
Her er fordele/fordele ved at bruge mikrotjenester:
- Lettere arkitekturmรธnster, som er let at forstรฅ for udviklere
- IDE er hurtigere, hvilket gรธr udviklere hurtigere og produktive
- Webcontaineren starter hurtigere; dette hjรฆlper med at fremskynde implementeringsprocessen og udviklingen.
- Det giver teamet mulighed for at udvikle, implementere og skalere deres service uafhรฆngigt af alle de andre teams.
Ulemper ved SOA
Her er ulemper/ulemper ved at bruge serviceorienteret arkitektur:
- Alle input bรธr valideres, fรธr de sendes til tjenesten
- SOA er en kostbar service i form af menneskelige ressourcer, udvikling og teknologi.
- Nogle webtjenester skal sende og modtage beskeder og information ofte, sรฅ den nรฅr nemt op pรฅ en million anmodninger om dagen.
- SOA krรฆver hรธje investeringsomkostninger
- Der er stรธrre overhead, nรฅr en tjeneste interagerer med en anden tjeneste, hvilket รธger responstiden
- SOA-tjenesten er ikke egnet til GUI-applikationer (grafisk brugergrรฆnseflade), sรฅ det bliver mere kompliceret, nรฅr SOA'en har brug for omfattende dataudveksling.
Ulemper ved mikrotjenester
Her er ulemper/ulemper ved mikrotjenester:
- Den er udviklet til at bygge monolitiske applikationer, sรฅ den yder ikke eksplicit understรธttelse af udvikling.ping distribuerede applikationer.
- Test er svรฆrere
- Udviklere skal implementere kommunikationsmekanismen mellem tjenestegrenene.
- Implementering af use cases, der spรฆnder over flere tjenester, krรฆver koordinering mellem teamene.
- Microservice er dyrt, da du altid skal vedligeholde forskellige serverpladser til forskellige forretningsopgaver
Hvilken ArchiTecture er bedre?
SOA er en ideel arkitekturmetode til store og komplekse forretningsapplikationer. Det er mest velegnet til miljรธer, der krรฆver integration med mange forskellige applikationer.
Workflow-baserede applikationer, der har et veldefineret behandlingsflow, er dog udfordrende at implementere ved hjรฆlp af SOA-arkitekturmรธnstre. Derfor er smรฅ applikationer heller ikke ideelle til SOA, da de ikke krรฆver middleware-meddelelseskomponenter. Pรฅ den anden side er mikroservicemรธnsteret velegnet til mindre og velopdelte webbaserede systemer.
