logo

Vad är mikrotjänster?

Mikrotjänster är ett arkitektoniskt tillvägagångssätt för att utveckla mjukvaruapplikationer som en samling små, oberoende tjänster som kommunicerar med varandra över ett nätverk. Istället för att bygga en monolitisk applikation där all funktionalitet är tätt integrerad i en enda kodbas, bryter mikrotjänster ner applikationen i mindre, löst kopplade tjänster.

justera css-bild



Viktiga ämnen för mikrotjänster

1. Vad är mikrotjänster?

Microservice är en liten, löst kopplad distribuerad tjänst. Varje mikrotjänst är designad för att utföra en specifik affärsfunktion och kan utvecklas, distribueras och skalas oberoende. Det låter dig ta en stor applikation och bryta ner eller dela upp den i lätthanterliga små komponenter med snävt definierade ansvarsområden. Det anses vara byggstenen i moderna applikationer. Mikrotjänster kan skrivas i en mängd olika programmeringsspråk och ramverk, och varje tjänst fungerar som en miniapplikation för sig.

2. Hur fungerar Microservices?

Mikrotjänster fungerar genom att bryta ner en komplex applikation i mindre, oberoende delar som kommunicerar och arbetar tillsammans, vilket ger flexibilitet, skalbarhet , och enklare underhåll, ungefär som att bygga en stad av modulära, sammankopplade komponenter.



Låt oss förstå hur mikrotjänster fungerar:

  • Modulär struktur:
    • Microservices arkitektur bryter ner stora, monolitiska applikationer i mindre, oberoende tjänster.
    • Varje tjänst är en fristående modul med en specifik affärskapacitet eller funktion.
    • Denna modulära struktur främjar flexibilitet, enkel utveckling och förenklat underhåll.
  • Oberoende funktioner:
    • Varje mikrotjänst är designad för att hantera en specifik affärsfunktion eller funktion.
    • Till exempel kan en tjänst hantera användarautentisering, medan en annan hanterar produktkatalogfunktioner.
    • Detta oberoende möjliggör specialiserad utveckling och underhåll av varje tjänst.
  • Kommunikation:
    • Mikrotjänster kommunicerar med varandra genom väldefinierade applikationsprogrammeringsgränssnitt (API).
    • API:er fungerar som gränssnitt genom vilka tjänster utbyter information och förfrågningar.
    • Denna standardiserade kommunikation möjliggör interoperabilitet och flexibilitet vid integrering av tjänster.
  • Flexibilitet:
    • Mikrotjänsters arkitektur stöder användningen av olika teknologier för varje tjänst.
    • Detta innebär att olika programmeringsspråk, ramverk och databaser kan väljas baserat på de specifika kraven för varje mikrotjänst.
    • Teamen har flexibiliteten att använda de bästa verktygen för sina respektive funktioner.
  • Oberoende och uppdateringar:
    • Mikrotjänster fungerar oberoende, vilket möjliggör uppdateringar eller modifieringar av en tjänst utan att påverka hela systemet.
    • Denna frikoppling av tjänster minskar risken för systemomfattande störningar under uppdateringar, vilket gör det lättare att implementera ändringar och förbättringar.
    • Microservices bidrar också till systemets motståndskraft genom att se till att om en tjänst stöter på problem eller misslyckanden så tar den inte ner hela systemet.
  • Skalbarhet:
    • Mikrotjänster erbjuder skalbarhet genom att tillåta tillägg av instanser av specifika tjänster.
    • Om en viss funktion kräver mer resurser kan ytterligare instanser av den mikrotjänsten distribueras för att hantera ökad efterfrågan.
    • Denna skalbarhet är avgörande för anpassning till varierande arbetsbelastningar.
  • Kontinuerlig förbättring:
    • Den modulära karaktären hos mikrotjänster underlättar kontinuerliga förbättringar.
    • Utvecklingsteam kan självständigt arbeta med och släppa uppdateringar för sina respektive tjänster.
    • Denna smidighet gör det möjligt för systemet att utvecklas snabbt och svara på ändrade krav eller användarbehov.

3. Vilka är huvudkomponenterna i Microservices Architecture?

Microservices-arkitekturen består av flera komponenter som arbetar tillsammans för att skapa ett modulärt, skalbart och oberoende driftsättbart system.

Huvudkomponenterna i mikrotjänster inkluderar :



  • Mikrotjänster: Dessa är de individuella, fristående tjänsterna som kapslar in specifika affärsmöjligheter. Varje mikrotjänst fokuserar på en distinkt funktion eller funktion.
  • API-gateway: API Gateway är en central ingång för externa klienter att interagera med mikrotjänsterna. Den hanterar förfrågningar, hanterar autentisering och dirigerar förfrågningar till lämpliga mikrotjänster.
  • Tjänsteregister och upptäckt: Denna komponent håller reda på platserna och nätverksadresserna för alla mikrotjänster i systemet. Service discovery säkerställer att tjänster kan lokalisera och kommunicera med varandra dynamiskt.
  • Lastbalanserare: Lastbalanserare fördelar inkommande nätverkstrafik över flera instanser av mikrotjänster. Detta säkerställer att arbetsbelastningen är jämnt fördelad, vilket optimerar resursutnyttjandet och förhindrar att någon enskild tjänst blir en flaskhals.
  • Containerisering: Behållare, som Docker, kapslar in mikrotjänster och deras beroenden. Orkestreringsverktyg, som Kubernetes, hanterar distribution, skalning och drift av containrar, vilket säkerställer ett effektivt resursutnyttjande.
  • Händelsebuss/meddelandemäklare: En händelsebuss eller meddelandeförmedlare underlättar kommunikation och samordning mellan mikrotjänster. Det tillåter tjänster att publicera och prenumerera på evenemang, vilket möjliggör asynkron kommunikation och frikoppling.
  • Centraliserad loggning och övervakning: Centraliserade loggnings- och övervakningsverktyg hjälper till att spåra mikrotjänsters prestanda och hälsa. De ger insikter i systemets beteende, upptäcker problem och hjälper till vid felsökning.
  • Databas per mikrotjänst: Varje mikrotjänst har vanligtvis sin egen databas, vilket säkerställer dataautonomi. Detta tillåter tjänster att självständigt hantera och skala sin datalagring enligt deras specifika krav.
  • Cachning: Cachingmekanismer kan implementeras för att förbättra prestandan genom att lagra data som ofta används närmare mikrotjänsterna. Detta minskar behovet av att upprepade gånger hämta samma data från databaser.
  • Feltolerans och motståndskraftskomponenter: Implementering av komponenter för feltolerans, såsom strömbrytare och mekanismer för återförsök, säkerställer att systemet på ett elegant sätt kan hantera fel i mikrotjänster och återställa utan att påverka den övergripande funktionaliteten.

4. Vilka är designmönstren för mikrotjänster?

När ett problem uppstår när du arbetar med ett system, finns det några rutiner som ska följas och i mikrotjänster är dessa metoder designmönster. Designmönster för mikrotjänster är sådana metoder som när de följs leder till effektiva arkitektoniska mönster som resulterar i att övervinna utmaningar som ineffektiv administration av dessa tjänster och även maximera prestanda. När man arbetar med en applikation måste man vara medveten om vilket designmönster som ska användas för att skapa en effektiv applikation.

  • Aggregator
    • Den anropade tjänster för att ta emot den information som krävs (relaterade data) från olika tjänster, tillämpa viss logik och producera resultatet.
    • De insamlade uppgifterna kan användas av respektive tjänster. Stegen som följs i aggregatormönstret involverar begäran som tas emot av tjänsten, och sedan förfrågan som görs till flera andra tjänster kombinerar varje resultat och svarar slutligen på den initiala begäran.
  • API-gateway
    • API Gateway fungerar som en lösning på begäran till mikrotjänster.
    • Den fungerar som en ingångspunkt till alla mikrotjänster och skapar finkorniga API:er för olika klienter.
    • Gjorda förfrågningar skickas till API Gateway och lastbalanseraren hjälper till att kontrollera om förfrågan hanteras och skickas till respektive tjänst.
  • Event Sourcing
    • Detta designmönster skapar händelser angående ändringar (data) i applikationstillståndet.
    • Med hjälp av dessa händelser kan utvecklare hålla reda på register över gjorda ändringar.
  • Strangler
    • Strangler är också känt som ett Vine-mönster eftersom det fungerar på samma sätt som vine stryper ett träd runt det. För varje URI-anrop (Uniform Resource Identifier) ​​går ett samtal fram och tillbaka och delas även upp i olika domäner.
    • Här förblir två separata applikationer sida vid sida i samma URI-utrymme, och här kommer en domän att beaktas i taget. Således ersätter den nya omstrukturerade applikationen den ursprungliga applikationen.
  • Sönderfall
    • Nedbrytningsdesignmönster är att sönderdela en applikation till mindre mikrotjänster som har sin egen funktionalitet.
    • Baserat på affärskraven kan du dela upp en ansökan i delkomponenter. Amazon har till exempel separata tjänster för produkter, beställningar, kunder, betalningar osv.

5. Vilka är antimönstren i mikrotjänster?

Att lära sig antimönster i mikrotjänster är avgörande för att undvika vanliga misstag. Det ger insikter i potentiella problem som kan äventyra systemets skalbarhet, oberoende och underhållsbarhet. Genom att förstå dessa antimönster kan utvecklare fatta välgrundade beslut, implementera bästa praxis och bidra till framgångsrik design och implementering av robusta mikrotjänsterarkitekturer.

Nedan finns de fem viktigaste antimönsterna i mikrotjänster

  • Datamonolit: Dela en centraliserad databas mellan mikrotjänster, vilket undergräver oberoende och skalbarhet.
  • Chattiga tjänster: Mikrotjänster kommunicerar för mycket för små uppgifter, vilket leder till ökad nätverkskostnader och fördröjning.
  • Överanvändning av mikrotjänster: Skapar för många mikrotjänster för triviala funktioner, vilket skapar onödig komplexitet.
  • Otillräckliga tjänstegränser: Dåligt definierade gränser för mikrotjänster, vilket resulterar i tvetydighet och oklara ansvarsområden.
  • Ignorera säkerhet: Försummar säkerhetsproblem i mikrotjänster, riskerar sårbarheter och dataintrång.

6. Verkliga exempel på mikrotjänster

Låt oss förstå Miscroservices med hjälp av det verkliga exemplet på Amazon E-Commerce Application:

Amazons onlinebutik är som ett gigantiskt pussel gjord av många små, specialiserade bitar som kallas mikrotjänster. Varje mikrotjänst gör ett specifikt jobb för att se till att allt går smidigt. Tillsammans arbetar dessa mikrotjänster bakom kulisserna för att ge dig en fantastisk shoppingupplevelse.

Nedan är mikrotjänsterna som är involverade i Amazon E-commerce Application:

  1. Användartjänst: Hanterar användarkonton, autentisering och inställningar. Den hanterar användarregistrering, inloggning och profilhantering, vilket säkerställer en personlig upplevelse för användarna.
  2. Söktjänst: Driver sökfunktionen på plattformen, vilket gör det möjligt för användare att hitta produkter snabbt. Den indexerar produktinformation och ger relevanta sökresultat baserat på användarfrågor.
  3. Katalogtjänst: Hanterar produktkatalogen, inklusive produktdetaljer, kategorier och relationer. Det säkerställer att produktinformationen är korrekt, uppdaterad och lättillgänglig för användarna.
  4. Kundvagnsservice : Hanterar användarens kundvagn, så att de kan lägga till, ta bort och ändra artiklar före kassan. Det säkerställer en sömlös shoppingupplevelse genom att hålla reda på utvalda varor.
  5. önskelista Service : Hanterar användarens önskelistor, så att de kan spara produkter för framtida köp. Det ger ett bekvämt sätt för användare att spåra och hantera sina önskade objekt.
  6. Beställningsmottagningstjänst : Accepterar och behandlar beställningar från kunder. Den validerar beställningar, kontrollerar produkttillgänglighet och initierar beställningsprocessen.
  7. Orderhanteringstjänst: Hanterar bearbetning och fullgörande av beställningar. Den samordnar med inventering, frakt och betalningstjänster för att säkerställa snabb och korrekt orderleverans.
  8. Betaltjänst : Hanterar betalningshantering för beställningar. Den behandlar säkert betalningstransaktioner, integrerar med betalningsgateways och hanterar betalningsrelaterad data.
  9. Logistiktjänst : Koordinerar logistiken för orderleverans. Den beräknar fraktkostnader, tilldelar transportörer, spårar försändelser och hanterar leveransrutter.
  10. Lagerservice: Hanterar lager över lager. Den spårar lagernivåer, uppdaterar lagertillgänglighet och koordinerar lagerpåfyllning.
  11. Aviseringstjänst : Skickar meddelanden till användare om deras beställningar, kampanjer och annan relevant information. Det håller användarna informerade om statusen för deras interaktioner med plattformen.
  12. Rekommendationstjänst : Ger personliga produktrekommendationer till användare. Den analyserar användarnas beteende och preferenser för att föreslå relevanta produkter, vilket förbättrar användarupplevelsen och driver försäljning.

7. Mikrotjänster vs. monolitisk arkitektur?

Nedan är en tabelljämförelse mellan mikrotjänster och monolitisk arkitektur över olika aspekter:

Aspekt

Mikrotjänster arkitektur

Monolitisk arkitektur

Arkitektur stil

Delas upp i små, oberoende tjänster.

Enkel, tätt integrerad kodbas.

Utvecklingsteamets struktur

Små, tvärfunktionella team för varje mikrotjänst.

Större, centraliserat utvecklingsteam.

Skalbarhet

Oberoende skalning av enskilda tjänster.

Skalning innebär att hela applikationen replikeras.

Spridning

Oberoende distribution av tjänster.

Hela applikationen distribueras som en enda enhet.

Resursanvändning

Effektiv användning av resurser som tjänster kan skalas oberoende.

Resurser tilldelas baserat på den övergripande applikationens behov.

Utvecklingshastighet

Snabbare utvecklings- och distributionscykler.

Långsammare utveckling och driftsättning på grund av hela kodbasen.

Flexibilitet

Lättare att använda ny teknik för specifika tjänster.

Begränsad flexibilitet på grund av en gemensam teknikstack.

Underhåll

Enklare underhåll av mindre, fokuserade kodbaser.

Underhåll kan vara komplext för en stor, monolitisk kodbas.

Testning

Oberoende testning av varje mikrotjänst.

Omfattande testning av hela applikationen.

Infrastrukturberoende

Mindre beroende av specifika infrastrukturval.

Kopplad till specifik infrastruktur på grund av en delad kodbas.

8. Hur går man från Monolithic till Microservices?

Monolitiska till mikrotjänster

Nedan är de viktigaste stegen för att gå från en monolitisk till mikroservicearkitektur:

  • Utvärdera Monolith: Förstå den befintliga monolitiska applikationen, identifiera komponenter för migrering.
  • Definiera mikrotjänster: Bryt ner monoliten i distinkta affärsmöjligheter för mikrotjänster.
  • Strangler mönster: Byt gradvis ut monolitiska delar med mikrotjänster, med en gradvis migreringsmetod.
  • API-definition: Definiera tydligt API:er och kontrakt för sömlös mikrotjänstkommunikation.
  • CI/CD-implementering: Konfigurera kontinuerlig integration/kontinuerlig distribution (CI/CD) för automatiserad testning och driftsättning.
  • Decentralisera data: Övergång till en databas-per-tjänst-metod, vilket minskar beroendet av en central databas.
  • Service Discovery: Introducera tjänsteupptäcktsmekanismer för dynamisk kommunikation mellan mikrotjänster.
  • Loggning och övervakning: Implementera centraliserad loggning och övervakning för insyn i mikrotjänsters prestanda.
  • Övergripande bekymmer: Hantera övergripande problem som säkerhet och autentisering konsekvent över mikrotjänster.
  • Iterativ förbättring: Omfamna ett iterativt tillvägagångssätt, ständigt förfina och utöka mikrotjänster baserat på feedback och förändrade behov.

9. Service-Oriented Architecture (SOA) vs Microservices Architecture

Nedan är en tabelljämförelse mellan Service-Oriented Architecture (SOA) och Microservices över olika aspekter:

Aspekt

Serviceorienterad arkitektur (SOA)

Mikrotjänster arkitektur

Omfattning

Innehåller en bred uppsättning arkitektoniska principer.

Fokuserar på att bygga små, oberoende tjänster.

Storlek på tjänster

Tjänsterna tenderar att vara större och mer omfattande.

Tjänsterna är små, fokuserade och har ett enda syfte.

Datahantering

Gemensam datamodell och delade databaser är vanliga.

Varje tjänst har sin egen databas eller datalager.

Kommunikation

Förlitar sig vanligtvis på standardiserade protokoll som SOAP.

Använder lätta protokoll som REST eller meddelanden.

Teknikens mångfald

Kan ha olika teknologier, men ofta standardiserad mellanprogram.

Uppmuntrar olika tekniker för varje tjänst.

Spridning

Tjänsterna distribueras ofta självständigt.

Främjar oberoende distribution av mikrotjänster.

Skalbarhet

Horisontell skalning av hela tjänster är vanligt.

Möjliggör oberoende skalning av enskilda tjänster.

Utvecklingshastighet

Långsammare utvecklingscykler på grund av större tjänster.

Snabbare utvecklingscykler med mindre tjänster.

Flexibilitet

Kan vara flexibel, men ändringar kan påverka flera tjänster.

Ger flexibilitet tack vare oberoende tjänster.

Resursanvändning

Resurser kan vara underutnyttjade vid låg efterfrågan.

Effektiv användning av resurser, eftersom tjänster kan skalas oberoende.

Beroendehantering

Förlitar sig på delade komponenter och centraliserad styrning.

Varje mikrotjänst hanterar sina beroenden oberoende.

Adoptionssvårigheter

Kräver generellt mer planering och organisatorisk förändring.

Lättare att adoptera stegvis och lämplig för agil utveckling.

10. Molnbaserade mikrotjänster

Mikrotjänster och moln varandra genom att tillhandahålla en flexibel, effektiv och samarbetsmiljö för att bygga och köra mjukvaruapplikationer

  • Förenklade operationer Molnleverantörer hanterar infrastrukturunderhåll och säkerhet, vilket gör det enklare för mikrotjänstteamen. De kan fokusera på sina specifika uppgifter utan att oroa sig för bakgrundstekniken.
  • Kostnadseffektivitet Att kombinera mikrotjänster med molnresurser är som att betala för exakt de verktyg och arbetsyta du använder. Det är kostnadseffektivt eftersom du inte har fastnat med onödig utrustning eller utrymme.
  • Flexibilitet Behöver du fler team eller vill ändra din produktionsprocess? Molnet låter dig anpassa dig snabbt, som att omorganisera arbetsstationer i en flexibel arbetsyta.

11. Mikrotjänsters roll i DevOps

DevOps och mikrotjänster är nära sammankopplade och går ofta hand i hand för att förbättra utvecklingen, driftsättningen och operativa aspekterna av moderna mjukvarusystem. Här är en kort översikt över hur DevOps och mikrotjänster fungerar tillsammans:

  1. Kontinuerlig integration/kontinuerlig distribution (CI/CD):
    • I en mikroservicearkitektur kan varje tjänst utvecklas, testas och distribueras oberoende. CI/CD-pipelines är avgörande för att effektivt hantera de ständiga uppdateringarna och utgåvorna i samband med mikrotjänster.
    • DevOps-praxis betonar CI/CD-pipelines, som involverar automatisering av konstruktion, testning och distribution av programvara.
  2. Agil utveckling:
    • Mikrotjänster stöder i sig agil utveckling genom att tillåta team att arbeta oberoende på specifika tjänster, vilket underlättar snabb iteration och implementering av nya funktioner.
    • DevOps främjar samarbete mellan utvecklings- och driftsteam och främjar agila utvecklingsmetoder.
  3. Kontinuerlig övervakning och loggning
    • Mikrotjänsters arkitektur kräver robust övervakning för att spåra hälsan och interaktionerna mellan olika tjänster, vilket hjälper till att upptäcka och lösa problem tidigt. DevOps betonar kontinuerlig övervakning och loggning för realtidsinsikter om applikationsprestanda.

12. Fördelar med att använda Microservices Architecture

  1. Modularitet och frånkoppling:
    • Oberoende utveckling: Mikrotjänster utvecklas och distribueras oberoende, vilket gör att olika team kan arbeta på olika tjänster samtidigt.
    • Isolering av misslyckanden: Fel i en mikrotjänst påverkar inte nödvändigtvis andra, vilket ger ökad felisolering.
  2. Skalbarhet:
    • Granulär skalning: Varje mikrotjänst kan skalas oberoende baserat på dess specifika resursbehov, vilket möjliggör ett effektivt resursutnyttjande.
    • Elasticitet: Microservices-arkitekturer kan enkelt anpassas till varierande arbetsbelastningar genom att dynamiskt skala enskilda tjänster.
  3. Teknikens mångfald:
    • Teknikens frihet: Varje mikrotjänst kan implementeras med den mest lämpliga teknologistacken för dess specifika krav, vilket främjar teknisk mångfald.
  4. Autonoma lag:
    • Team Empowerment: Mikrotjänster gör det ofta möjligt för små, tvärfunktionella team att arbeta självständigt med specifika tjänster, vilket främjar autonomi och snabbare beslutsfattande.
    • Minskad koordinationskostnader: Team kan släppa och uppdatera sina tjänster utan att kräva omfattande samordning med andra team.
  5. Snabb implementering och kontinuerlig leverans:
    • Snabbare släppcykler: Mikrotjänster kan utvecklas, testas och distribueras oberoende, vilket underlättar snabbare utgivningscykler.
    • Kontinuerlig integration och distribution (CI/CD): Automationsverktyg stöder kontinuerlig integration och driftsättning, vilket ökar utvecklingshastigheten och tillförlitligheten.
  6. Enkelt underhåll:
    • Isolerade kodbaser: Mindre, fokuserade kodbaser är lättare att förstå, underhålla och felsöka.
    • Rullande uppdateringar: Enskilda mikrotjänster kan uppdateras eller återställas utan att hela applikationen påverkas.

13. Utmaningar med att använda Microservices Architecture

  1. Komplexiteten hos distribuerade system: Mikrotjänster introducerar komplexiteten hos distribuerade system. Att hantera kommunikation mellan tjänster, hantera nätverkslatens och säkerställa datakonsistens över tjänster kan vara utmanande.
  2. Ökad utveckling och driftskostnader: Nedbrytningen av en applikation till mikrotjänster kräver ytterligare ansträngning när det gäller utveckling, testning, driftsättning och övervakning. Team måste hantera ett större antal tjänster, var och en med sin egen kodbas, beroenden och distributionsprocess.
  3. Kommunikationsoverhead mellan tjänsten: Mikrotjänster måste kommunicera med varandra över nätverket. Detta kan resultera i ökad latens och ytterligare komplexitet vid hantering av kommunikationsprotokoll, felhantering och dataöverföring.
  4. Datakonsistens och transaktionshantering: Att upprätthålla datakonsistens över mikrotjänster kan vara utmanande. Att implementera distribuerade transaktioner och säkerställa dataintegritet blir komplext, och traditionella ACID-transaktioner kanske inte är lätta att uppnå.
  5. Implementeringsutmaningar: Att samordna distributionen av flera mikrotjänster, särskilt när det finns beroenden mellan dem, kan vara komplicerat. Att säkerställa konsistens och undvika driftstopp under uppdateringar kräver noggrann planering.
  6. Övervaknings- och felsökningskomplexitet: Övervakning och felsökning blir mer komplex i en mikrotjänstmiljö. Att identifiera grundorsaken till problem kan involvera spårning av förfrågningar över flera tjänster, och centraliserad loggning blir avgörande för effektiv felsökning.

14. Verkliga exempel på företag som använder Microservices Architecture

Organisationer upplevde en enorm förändring när de använde mikrotjänst i sin applikation, och det var där övergången från monolitisk till mikrotjänst kom. Du kan gå igenom några av de verkliga exemplen i applikationer som använder microservice är:

  • Amazon: Från början var Amazon en monolitisk applikation men när mikrotjänsten kom till var Amazon den första plattformen som delade upp sin applikation i små komponenter och anpassade därigenom mikrotjänsten. På grund av dess förmåga att ändra individuella funktioner och resurser förbättrades webbplatsens funktionalitet avsevärt.
  • Netflix: Netflix är ett sådant företag som använder mikrotjänster med API:er . 2007, när Netflix började sin övergång till filmstreamingtjänst, drabbades den av enorma tjänsteavbrott och utmaningar, sedan kom mikrotjänstarkitekturen som var en välsignelse för plattformen.
  • Uber: När Uber bytte från monolitisk natur till en mikrotjänst upplevde det ett smidigt sätt. Med hjälp av mikrotjänstarkitektur ökade webbsidans visningar och sökningar i större utsträckning.

15. Teknik som möjliggör mikrotjänsters arkitektur

  • Hamnarbetare:
    • Docker är en containeriseringsplattform som tillåter utvecklare att paketera applikationer och deras beroenden i lätta, bärbara containrar. Dessa behållare kapslar in allt som behövs för att köra applikationen, inklusive kod, runtime, bibliotek och systemverktyg, vilket säkerställer konsistens i olika miljöer.
  • Kubernetes:
    • Kubernetes är en containerorkestreringsplattform med öppen källkod som ursprungligen utvecklades av Google. Den automatiserar distributionen, skalningen och hanteringen av containeriserade applikationer, ger funktioner för containerschemaläggning, tjänsteupptäckt, lastbalansering och mer.
  • Servicenät:
    • Service mesh-tekniker som Istio och Linkerd tillhandahåller ett dedikerat infrastrukturlager för hantering av tjänst-till-tjänst-kommunikation, trafikhantering och observerbarhet i mikrotjänsters arkitekturer. De erbjuder funktioner som lastbalansering, tjänsteupptäckt, kretsbrott och insamling av mätvärden.
  • API-gateways :
    • API-gateways som Kong och Tyk fungerar som ingångspunkter för externa klienter för att komma åt mikrotjänstbaserade applikationer. De tillhandahåller funktioner som routing, autentisering, hastighetsbegränsning och transformationer av begäran/svar.
  • Händelsedriven arkitektur :
    • Händelsedrivna arkitekturer underlättar kommunikationen mellan mikrotjänster genom att de kan producera och konsumera händelser asynkront. Teknologier som Apache Kafka, RabbitMQ och Amazon SNS/SQS tillhandahåller skalbara, pålitliga meddelandesystem för att bygga händelsedrivna mikrotjänster.
  • Serverlös datoranvändning:
    • Även om de inte är exklusiva för mikrotjänster, kan serverlösa plattformar som AWS Lambda, Azure Functions och Google Cloud Functions användas för att distribuera individuella mikrotjänster utan att hantera den underliggande infrastrukturen, ytterligare avkoppling och skalningstjänster.

16. Slutsats

Nu när du vet Vad är mikrotjänster , det är mycket viktigt att ha en praktisk uppfattning om dem genom att arbeta praktiskt med dem. Den här artikeln svarar helt och hållet på alla dina tvivel om mikrotjänster, deras arkitektur, funktion, funktioner, verkliga applikationer, etc. Mikrotjänster är en måste-känd term i fallet när du bygger en applikation. Därför är det mycket viktigt att ha goda kunskaper i det.