Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
En arkitektur för mikrotjänster kan ge många fördelar för dina program, inklusive flexibilitet, skalbarhet och hög tillgänglighet. Den här arkitekturen kan också innebära utmaningar. När du skapar mikrotjänstbaserade program eller omvandlar befintliga program till en mikrotjänstarkitektur måste du analysera och utvärdera din nuvarande situation för att identifiera områden som behöver förbättras.
I den här artikeln beskrivs några saker att tänka på när du går över till en arkitektur för mikrotjänster. Du kan använda den här guiden för att utvärdera mognaden för ditt program, din infrastruktur, DevOps och utvecklingsmodellen.
Förstå affärsprioriteringar
För att utvärdera en arkitektur för mikrotjänster måste du först förstå kärnprioriteterna i din verksamhet. Kärnprioriteringar kan till exempel vara relaterade till flexibilitet, ändringsimplementering eller snabb utveckling. Du måste analysera om din arkitektur passar bra för dina kärnprioriteringar. Tänk på att affärsprioriteringar kan ändras över tid. Innovation är till exempel högsta prioritet för nystartade företag. Men efter några år kan de viktigaste prioriteringarna vara tillförlitlighet och effektivitet.
Överväg följande prioriteringar:
- Innovation, inklusive att främja flexibilitet och experimentering
- Tillförlitlighet, inklusive att säkerställa hög tillgänglighet och feltolerans
- Effektivitet, inklusive optimering av resurser och produktivitet
Dokumentera de servicenivåmål (SLO) som överensstämmer med olika delar av ditt program för att säkerställa ett organisationsåtagande som kan vägleda din utvärdering.
Registrera arkitektoniska beslut
En arkitektur för mikrotjänster hjälper team att bli autonoma. Teams kan fatta egna beslut om tekniker, metoder och infrastrukturkomponenter. Dessa val bör dock respektera de formellt överenskomna principerna som kallas delad styrning. Dessa principer uttrycker överenskommelsen mellan teamen om hur man ska hantera den bredare strategin för mikrotjänster.
Överväg följande faktorer:
Om delad styrning finns på plats för att vägleda arkitekturbeslut mellan team
Om du underhåller beslutsposter för arkitektur (ADR) som innehåller tydliga skäl, kompromisser och status
Oavsett om du underhåller en arkitekturjournal för att samla in designutforskningar och utvecklande kontext
Om ditt team enkelt kan komma åt och söka i dina adrs och arkitekturjournaler
Om du har ett ramverk för teknikutvärdering för att utvärdera nya verktyg och ramverk
Om du har fastställt principer för teknikval och standardisering
Om arkitektoniska beslut granskas och uppdateras regelbundet när affärs- och tekniska krav utvecklas
Utvärdera teamsammansättning
Du måste strukturera ditt team korrekt för att undvika onödig kommunikation mellan team. Små, fokuserade, tvärfunktionella team passar bäst för en arkitektur för mikrotjänster. Dessa justeringar kräver ofta en tankeförändring, som måste föregå omstruktureringen av teamet.
Överväg följande faktorer:
Om dina team delas upp baserat på underdomäner och följer DDD-principer (domändriven design)
Om dina team är korsfunktionella och har tillräckligt med kapacitet för att skapa och driva relaterade mikrotjänster oberoende av varandra
Den tid som ägnas åt oplanerade aktiviteter och aktiviteter som inte är relaterade till projekt
Den tid som ägnas åt samarbete mellan team
Om du har en process för att identifiera och minimera tekniska skulder
Hur teamen lär sig lektioner och hur de kommunicerar den här upplevelsen
Använd metoden Twelve-Factor
Det grundläggande målet med att välja en arkitektur för mikrotjänster är att leverera värde snabbare och anpassa sig till förändringar genom att följa agila metoder. Den Twelve-Factor appmetoden innehåller riktlinjer för hur du skapar underhållsbara och skalbara program. Dessa riktlinjer främjar attribut som oföränderlighet, tillfälliga egenskaper, deklarativ konfiguration och automatisering. Genom att införliva dessa riktlinjer och undvika vanliga fallgropar kan du skapa löst kopplade, fristående mikrotjänster.
Förstå nedbrytningsmetoden
Det tar tid att omvandla ett monolitiskt program till en mikrotjänstarkitektur. Börja med edge-tjänster. Edge-tjänster har färre beroenden för andra tjänster och kan enkelt separeras från systemet som oberoende tjänster. Vi rekommenderar starkt mönster som Strangler Fig och Anti-Corruption Layer för att hålla de monolitiska programmen i ett fungerande tillstånd tills alla tjänster delas upp i separata mikrotjänster. Under segregationen kan principerna för DDD hjälpa team att välja komponenter eller tjänster från det monolitiska programmet baserat på underdomäner.
Ett e-handelssystem kan till exempel ha moduler som kundvagn, produkthantering, orderhantering, prissättning, fakturagenerering och meddelande. Du bestämmer dig för att starta omvandlingen av programmet med meddelandemodulen eftersom den inte har beroenden för andra moduler. Andra moduler kan dock vara beroende av den här modulen för att skicka ut meddelanden. Du kan göra meddelandemodulen till en separat mikrotjänst, men du måste också uppdatera det monolitiska programmet för att anropa den nya meddelandetjänsten. Du bestämmer dig för att transformera fakturagenereringsmodulen härnäst. Den här modulen anropas när en order har genererats. Du kan använda mönster som Strangler Fig och Anti-Corruption Layer för att stödja den här omvandlingen.
Datasynkronisering, flera skrivningar till både monolitiska gränssnitt och mikrotjänstgränssnitt, dataägarskap, schemanedbrytning, sammanslagningar, datavolym och dataintegritet kan göra datauppdelning och migrering svåra. Det finns flera tekniker som du kan använda, till exempel att behålla en delad databas mellan mikrotjänster, skilja databaser från en grupp med tjänster baserat på affärskapacitet eller domän och isolera databaser från tjänsterna. En idealisk lösning är att dela upp varje databas med varje tjänst. Vissa omständigheter kan göra det tillvägagångssättet opraktiskt. I dessa fall kan du använda mönster som mönstret Materialiserad vy och metoder som programmodernisering med hjälp av en API-omslutning för att abstrahera och modernisera åtkomsten till äldre eller delade data.
Utvärdera DevOps-beredskap
När du övergår till en arkitektur för mikrotjänster är det viktigt att utvärdera din DevOps-kompetens. En mikrotjänstarkitektur bör underlätta flexibel utveckling i program för att öka organisationens flexibilitet. DevOps är en av de viktigaste metoderna som du bör implementera för att uppnå den här kompetensen.
När du utvärderar din DevOps-funktion för en mikrotjänstarkitektur bör du tänka på följande:
Om personer i din organisation känner till de grundläggande metoderna och principerna i DevOps
Om teamen förstår verktyg för källkontroll och hur de integreras med CI/CD-pipelines (kontinuerlig integrering och kontinuerlig leverans)
Om du implementerar DevOps-metoder korrekt, inklusive:
Följ agila metoder.
Implementera kontinuerlig integrering.
Implementera kontinuerlig leverans där kodändringar skapas, testas och förbereds automatiskt för lansering till produktion. Den här metoden hjälper till att säkerställa att programvara kan släppas säkert när som helst och med manuellt godkännande.
Implementera kontinuerlig distribution som utökar kontinuerlig leverans genom att automatiskt distribuera kodändringar till produktion efter att alla automatiserade tester har slutförts, utan manuella åtgärder.
Bädda in kontinuerlig övervakning i alla faser i DevOps och IT Ops för att säkerställa kontinuerlig hälsa, prestanda och tillförlitlighet för program och infrastruktur när de övergår från utveckling till produktions- och kundmiljöer.
Om din strategi för bygg- och distributionsautomatisering överensstämmer med teamets leveransmål och driftskrav
Om du använder funktionsflaggor och strategier för distribution av progressiv exponering
Så här hanteras konfigurationen av mellanlagrings- och produktionsmiljöer för programmet
Om verktygskedjan har communitystöd och en supportmodell och tillhandahåller rätt kanaler och dokumentation
Identifiera affärsområden som ändras ofta
En mikrotjänstarkitektur är flexibel och anpassningsbar. Under utvärderingen skapar du en diskussion i din organisation för att fastställa vilka områden dina kollegor förväntar sig att ändra ofta. Genom att skapa mikrotjänster kan team snabbt svara på ändringar som kunderna begär och minimera regressionstestningsarbetet. I ett monolitiskt program kräver en ändring i en modul flera nivåer av regressionstestning och minskar flexibiliteten i nya versioner.
Överväg följande faktorer:
Om tjänsten kan distribueras oberoende
Om tjänsten följer DDD-principer
Om tjänsten följer principerna för enkel ansvarighet, öppet-och-stängt, Liskov-substitution, gränssnittssegregeringsprincipen och beroendeinversion (SOLID)
Om databasen är privat för tjänsten
Om du skapar tjänsten med hjälp av chassiramverket för mikrotjänster som stöds
Utvärdera infrastrukturberedskap
När du övergår till en arkitektur för mikrotjänster är infrastrukturberedskap en viktig punkt att tänka på. Felaktig installation av infrastrukturen eller att inte använda lämpliga tjänster eller komponenter påverkar programmets prestanda, tillgänglighet och skalbarhet. Du kan använda alla föreslagna metoder och procedurer för att skapa ett program. Men om infrastrukturen är otillräcklig kan programmet fungera dåligt och kräva extra underhåll.
Tänk på följande faktorer när du utvärderar infrastrukturens beredskap:
Om infrastrukturen säkerställer skalbarheten för de distribuerade tjänsterna
Om du har containerinfrastruktur redo för distribution av mikrotjänster
Om infrastrukturen stöder etablering via skript som kan automatiseras via CI/CD
Om distributionsinfrastrukturen erbjuder ett serviceavtal (SLA) för tillgänglighet
Om du har en haveriberedskapsplan (DR) och rutintestscheman
Om data replikeras till olika regioner för DR
Om du har en plan för säkerhetskopiering av data
Om distributionsalternativen är dokumenterade
Om distributionsinfrastrukturen övervakas
Om distributionsinfrastrukturen stöder självåterställning av tjänster
Utvärdera lanseringscykler
Mikrotjänster kan anpassas till förändringar och dra nytta av flexibel utveckling för att förkorta lanseringscyklerna och ge kunderna ett värde snabbare. Tänk på följande faktorer när du utvärderar dina lanseringscykler:
Hur ofta du skapar och släpper program.
Hur ofta dina versioner misslyckas efter distributionen.
Hur lång tid det tar att återställa eller åtgärda problem efter ett avbrott.
Om du använder semantisk versionshantering för dina program.
Om du underhåller olika miljöer och distribuerar samma version sekventiellt. Du kan till exempel frigöra till mellanlagring först och sedan till produktion.
Om du använder versionshantering för dina API:er.
Om du följer rätt versionsriktlinjer för API:er.
När du ändrar en API-version.
Vad din metod för att hantera API-versionshantering är, inklusive:
- Versionshantering av URI-sökväg.
- Versionshantering av frågeparametrar.
- Versionshantering av innehållstyp.
- Versionshantering för anpassat sidhuvud.
Om du har en praxis på plats för versionshantering av händelser.
Utvärdera kommunikation mellan tjänster
Mikrotjänster är fristående tjänster som kommunicerar med varandra över processgränser för att hantera affärsscenarier. För att uppnå tillförlitlig och pålitlig kommunikation måste du välja ett lämpligt kommunikationsprotokoll.
Överväg följande faktorer:
Oavsett om du följer en API-första metod, där du utformar och underhåller API:er som primära komponenter i systemarkitekturen.
Oavsett om du utvärderar protokoll med höga prestanda, till exempel gRPC, HTTP/2 eller asynkrona meddelanden som Kafka eller NATS, för effektiv tjänst-till-tjänst-kommunikation.
Oavsett om du har långkedjeåtgärder, där flera tjänster kommunicerar i följd över ett synkront kommunikationsprotokoll.
Om du använder plattformar för händelseströmning för databearbetning i realtid.
Om du planerar att implementera asynkron kommunikation var som helst i systemet.
Om du planerar att utvärdera meddelandebrokerteknologin och dess funktioner.
Om du förstår dataflödet för meddelanden som tjänster tar emot och bearbetar.
Om du använder direkt kommunikation från klient till tjänst.
Om du behöver spara meddelanden på meddelandemäklarnivå.
Om du använder mönstret Materialiserad vy för att hantera mikrotjänsters chattiga beteende.
Oavsett om du planerar att implementera mönster som Återförsök, Circuit Breaker, Exponentiell Backoff eller Jitter för tillförlitlig kommunikation. Ett vanligt sätt att hantera dessa funktioner är att använda mönstret Ambassadör.
Om du har definierat domänhändelser för att underlätta kommunikationen mellan mikrotjänster.
Utvärdera hur tjänster exponeras för klienter
En API-gateway är en av kärnkomponenterna i en mikrotjänstarkitektur. Att direkt exponera tjänster för klienterna skapar problem med hanterbarhet, kontroll och pålitlig kommunikation. En API-gateway fungerar som en proxyserver som fångar upp trafik och dirigerar den till serverdelstjänster. Om du behöver filtrera trafik efter IP-adress, auktorisering eller falska svar kan du filtrera den på API Gateway-nivå utan att göra några ändringar i tjänsterna.
Överväg följande faktorer:
Om klienter använder tjänsterna direkt
Om en API-gateway fungerar som en enhetlig fasad för alla tjänster
Om du implementerar BFF-mönstret (Backends for Frontends) för olika klienttyper
Om API-gatewayen kan konfigurera principer som kvotgränser, falska svar och IP-adressfiltrering
Om du använder flera API-gatewayer för att tillgodose behoven hos olika typer av klienter, till exempel mobilappar, webbappar och partner
Om din API-gateway tillhandahåller en portal där klienter kan identifiera och prenumerera på tjänster, till exempel en utvecklarportal i Azure API Management
Oavsett om din lösning tillhandahåller funktioner för L7-belastningsutjämning eller brandvägg för webbprogram (WAF) tillsammans med API-gatewayen
Utvärdera transaktionshantering
Distribuerade transaktioner hjälper dig att köra flera åtgärder som en enda arbetsenhet. I en arkitektur för mikrotjänster delas systemet upp i flera tjänster. Flera mikrotjänster hanterar ett enskilt affärsanvändningsfall som en del av en enda distribuerad transaktion. I en distribuerad transaktion är ett kommando en åtgärd som startar när en händelse inträffar. Händelsen utlöser en åtgärd i systemet. Om åtgärden lyckas kan det utlösa ett annat kommando, som sedan kan utlösa en annan händelse. Den här processen fortsätter tills alla transaktioner har slutförts eller återställts, beroende på om transaktionen lyckas.
Överväg följande faktorer:
Antalet distribuerade transaktioner i systemet
Hur du hanterar distribuerade transaktioner, inklusive användningen av Saga-mönstret med orkestrering eller koreografi
Om du använder event sourcing för att upprätthålla transaktionshistorik och tillstånd
Om du implementerar CQRS-mönster (Command Query Responsibility Segregation)
Hur många transaktioner sträcker sig över flera tjänster
Oavsett om du följer en transaktionsmodell för atomicitet, konsekvens, isolering och hållbarhet (ACID) eller en i princip tillgänglig, mjuk och så småningom konsekvent transaktionsmodell (BASE) för att uppnå datakonsekvens och integritet
Om du använder kedjeåtgärder för transaktioner som sträcker sig över flera tjänster
Om du implementerar kompensationsmönster utöver Saga för transaktionsåterställning
Utvärdera din tjänstutvecklingsmodell
En av de största fördelarna med mikrotjänstarkitekturer är teknikdiversitet. Mikrotjänstbaserade system gör det möjligt för team att utveckla tjänster med hjälp av de tekniker som de väljer. I traditionell programutveckling kan du återanvända befintlig kod när du skapar nya komponenter eller skapa ett internt utvecklingsramverk för att minska utvecklingsinsatsen. Användning av flera tekniker kan förhindra återanvändning av kod.
Överväg följande faktorer:
Om du använder en standardiserad tjänstmall för att påskynda ny tjänstutveckling och säkerställa konsekvens i arkitektur, distribution och DevOps-metoder
Om du följer Twelve-Factor appmetodik och använder en enda kodbas för mikrotjänster för att isolera beroenden och externalisera konfiguration
Om du behåller känslig konfiguration i nyckelvalv
Om du containeriserar dina tjänster
Om du känner till dina krav på datakonsekvens
Utvärdera distributionsmetoden
Distributionsmetoden är din metod för att släppa versioner av ditt program i olika distributionsmiljöer. Mikrotjänstbaserade system ger flexibiliteten att släppa versioner snabbare än vad du kan för traditionella program.
När du utvärderar distributionsplanen bör du tänka på följande faktorer:
Om du har en strategi för att distribuera dina tjänster
Om du använder moderna verktyg och tekniker för att distribuera dina tjänster
Vilken typ av samarbete som teamen behöver när du distribuerar tjänster
Om du tillhandahåller infrastruktur med hjälp av infrastruktur som kod (IaC)
Om du följer oföränderliga infrastrukturprinciper
Om du använder DevOps-funktioner för att automatisera distributioner
Om du distribuerar samma versioner till flera miljöer, enligt Twelve-Factor app-metodik
Utvärdera din värdplattform
Skalbarhet är en av de viktigaste fördelarna med mikrotjänstarkitekturer. Mikrotjänster mappas till affärsdomäner så att du kan skala varje tjänst separat. Ett monolitiskt program distribueras som en enda enhet på en värdplattform, så du måste skala det holistiskt. Den här metoden resulterar i stilleståndstid, distributionsrisk och underhåll. Ditt monolitiska program kan vara väl utformat och ha komponenter som hanterar enskilda affärsdomäner. Men på grund av brist på processgränser ökar risken för att bryta mot principerna om enskilt ansvar. Insatser för att säkerställa principerna för enskilt ansvar kan resultera i kod som saknar struktur och är svår att underhålla. Eftersom programmet består och distribueras som en enda värdprocess är skalbarhet svårt att uppnå.
Mikrotjänster gör det möjligt för team att välja rätt värdplattform för att stödja deras skalbarhetsbehov. Olika värdplattformar kan hantera dessa utmaningar genom att tillhandahålla funktioner som autoskalning, elastisk etablering, högre tillgänglighet, snabbare distribution och enkel övervakning.
Överväg följande faktorer:
Vilken värdplattform, som virtuella datorer, containrar eller serverlösa plattformar, använder du för att distribuera dina tjänster
Om värdplattformen är skalbar och stöder automatisk skalning
Hur lång tid det tar att skala din värdplattform
Om du förstår de serviceavtal som olika värdplattformar tillhandahåller
Om din värdplattform stöder DR
Utvärdera övervakning av tjänster
Övervakning är en viktig del av ett mikrotjänstbaserat program. Felsökningsfel kan vara skrämmande eftersom programmet är indelat i många tjänster som körs oberoende av varandra. Om du använder rätt semantik för att övervaka dina tjänster kan dina team enkelt övervaka, undersöka och svara på fel.
Överväg följande faktorer:
Om du övervakar dina distribuerade tjänster
Om du har definierat SLO:er
Om du har en loggningsmekanism och vilka verktyg du använder
Om du har en distribuerad spårningsinfrastruktur på plats
Om du registrerar undantag
Om du underhåller affärsfelkoder för att snabbt identifiera problem
Om du använder hälsokontroller för tjänster
Om du använder semantisk loggning och implementerar nyckelmått, tröskelvärden och indikatorer
Om du maskerar känsliga data under loggning
Om du övervakar tjänstberoenden och externa integreringar
Utvärdera tilldelning av korrelationstoken
I en mikrotjänstarkitektur består ett program av olika mikrotjänster som hanteras oberoende av varandra och interagerar med varandra för att hantera olika affärsanvändningsfall. När ett program interagerar med serverdelstjänster för att utföra en åtgärd kan du tilldela ett unikt nummer, som kallas en korrelationstoken, till begäran. Vi rekommenderar att du överväger att använda korrelationstoken eftersom de kan hjälpa dig att felsöka fel. De hjälper dig att fastställa grundorsaken till ett problem, bedöma effekten och bestämma en metod för att åtgärda problemet.
Du kan använda korrelationstoken för att hämta begärandespåret genom att identifiera vilka tjänster som innehåller korrelationstoken och vilka som inte gör det. De tjänster som inte har korrelationstoken för den begäran misslyckades. Om ett fel inträffar kan du försöka utföra transaktionen igen. För att framtvinga idempotens hanterar endast tjänster som inte har korrelationstoken begäran.
Om du till exempel har en lång kedja av åtgärder som innehåller många tjänster, kan det hjälpa att skicka en korrelationstoken till tjänsterna för att enklare undersöka problem om någon av tjänsterna skulle misslyckas under en transaktion. Varje tjänst har vanligtvis en egen databas. Korrelationstoken sparas i databasposten. Om en transaktion spelas upp igen ignorerar tjänster som har den specifika korrelationstoken i sina databaser begäran. Endast tjänster som inte har token hanterar begäran.
Överväg följande faktorer:
I vilket skede du tilldelar korrelationstoken
Vilken komponent tilldelar korrelationstoken
Om du sparar korrelationstoken i tjänstens databas
Formatet för korrelationstoken
Om du loggar korrelationstoken och annan begäransinformation
Utvärdera behovet av ett ramverk för mikrotjänsters infrastruktur
Ett chassiramverk för mikrotjänster är ett basramverk som tillhandahåller funktioner för övergripande problem som loggning, undantagshantering, distribuerad spårning, säkerhet och kommunikation. När du använder ett chassiramverk fokuserar du mer på att implementera tjänstgränsen än på att interagera med infrastrukturfunktioner.
Anta till exempel att du skapar en kundvagnshanteringstjänst. Du vill verifiera den inkommande token, skriva loggar till loggningsdatabasen och kommunicera med en annan tjänst genom att anropa tjänstens slutpunkt. Om du använder ett chassiramverk för mikrotjänster kan du minska utvecklingsinsatserna. Dapr är ett system som tillhandahåller olika byggstenar för att implementera övergripande problem.
Överväg följande faktorer:
Om du använder ett chassiramverk för mikrotjänster.
Om du använder Dapr för att interagera med övergripande problem.
Om ditt chassiramverk är språkagnostiskt.
Om ditt chassiramverk är allmänt så att det kan stödja alla typer av program. Ett chassiramverk får inte innehålla programspecifik logik.
Om ditt chassiramverk tillhandahåller en mekanism för att använda de valda komponenterna eller tjänsterna efter behov.
Utvärdera din metod för programtestning
Du testar vanligtvis programmet när utvecklingen är klar och den är redo att distribueras till användargodkännandetestning (UAT) och produktionsmiljöer. Överväg att testa tidigare i livscykeln för programutveckling. Den här metoden kallas skift-vänster-testning. Det ökar kvaliteten på program eftersom du testar under varje fas i livscykeln för programutveckling, inklusive design-, utvecklings- och efterutvecklingsfaserna.
När du till exempel skapar ett program börjar du med att utforma en arkitektur. När du använder metoden skift-vänster testar du designen för sårbarheter med hjälp av verktyg som Microsoft Threat Modeling. När du börjar utveckla kan du genomsöka källkoden genom att köra verktyg som SAST (Static Application Security Testing) och med hjälp av andra analysverktyg för att upptäcka problem. När du har distribuerat applikationen kan du använda verktyg som dynamisk applikationssäkerhetstestning (DAST) för att testa den medan den är i drift. Funktionell testning, kaostestning, intrångstestning och andra typer av tester sker senare.
Överväg följande faktorer:
Om du skriver testplaner som täcker hela utvecklingslivscykeln
Om du inkluderar testare i kravmöten och i hela livscykeln för programutveckling
Oavsett om du använder testdriven design eller beteendedriven design
Om du testar användarberättelser och inkluderar acceptanskriterier i dina användarberättelser
Om du testar din design med hjälp av verktyg som Microsoft Threat Modeling
Oavsett om du skriver enhetstester
Oavsett om du använder statiska kodanalysverktyg eller andra verktyg för att mäta kodkvaliteten
Om du använder automatiserade verktyg för att testa program
Oavsett om du utför integreringstestning, programtestning från slutpunkt till slutpunkt, belastnings- och prestandatestning, intrångstestning och kaostestning
Utvärdera säkerheten för mikrotjänster
Tjänstskydd, säker åtkomst och säker kommunikation är några av de viktigaste övervägandena för en arkitektur för mikrotjänster. Ett mikrotjänstbaserat system som omfattar flera tjänster och använder tokenverifiering för varje tjänst är till exempel inte en genomförbar lösning. Den här typen av system påverkar det övergripande systemets flexibilitet och kan leda till implementeringsavvikelser mellan tjänster.
API-gatewayen och programbrandväggen hanterar vanligtvis säkerhetsproblem. Gatewayen och brandväggen tar inkommande begäranden, validerar token och tillämpar olika filter och principer, till exempel implementering av OWASP Top 10-principer för att fånga upp trafik. Slutligen skickar de begäran till serverdelsmikrotjänsterna. Den här konfigurationen hjälper utvecklare att fokusera på affärsbehov i stället för att oroa sig för det övergripande säkerhetsproblemet.
Överväg följande faktorer:
Om tjänsten kräver autentisering och auktorisering och om du implementerar zero trust-arkitekturprinciper
Oavsett om du har en omfattande strategi för hantering av hemligheter som omfattar nyckelrotation, livscykelhantering och granskning, utöver att bara lagra hemligheter i ett nyckelvalv
Om du använder en API-gateway för att verifiera token och inkommande begäranden
Oavsett om du använder Secure Sockets Layer (SSL) eller ömsesidig transportnivåsäkerhet (mTLS) för att tillhandahålla säkerhet för tjänstkommunikation
Om du implementerar genomsökning av container- och avbildningssäkerhet
Om du implementerar nätverkssäkerhetsprinciper för att tillåta nödvändig kommunikation mellan tjänster
Oavsett om du använder brandväggar, till exempel L4 eller L7, i förekommande fall för att ge mer säkerhet för intern och extern kommunikation
Om du använder säkerhetsprinciper i API-gatewayer för att styra trafik
Om du har körningssäkerhetsövervakning för att identifiera avvikande beteende
Contributors
Microsoft ansvarar för den här artikeln. Följande deltagare skrev den här artikeln.
Huvudsakliga författare:
- Ovais Mehboob Ahmed Khan | Senior Cloud Solution Architect – Moln- och AI-appar
- Nabil Siddiqui | Lösningstekniker – Moln- och AI-appar
Om du vill se linkedin-profiler som inte är offentliga loggar du in på LinkedIn.
Nästa steg
- Mikrotjänster i Azure
- Bok: Omfamna design av mikrotjänster
- Introduktion till distributionsmönster
- Utforma ett mikrotjänstorienterat program