Dela via


Tjänstorienterad arkitektur

Dricks

Det här innehållet är ett utdrag från eBook, .NET Microservices Architecture for Containerized .NET Applications, tillgängligt på .NET Docs eller som en kostnadsfri nedladdningsbar PDF som kan läsas offline.

.NET Microservices Architecture for Containerized .NET Applications eBook cover thumbnail.

Tjänstorienterad arkitektur (SOA) var en överanvänd term och har inneburit olika saker för olika personer. Men som en vanlig nämnare innebär SOA att du strukturerar ditt program genom att dela upp det i flera tjänster (oftast som HTTP-tjänster) som kan klassificeras som olika typer som undersystem eller nivåer.

Dessa tjänster kan nu distribueras som Docker-containrar, vilket löser distributionsproblem, eftersom alla beroenden ingår i containeravbildningen. Men när du behöver skala upp SOA-program kan du ha skalbarhets- och tillgänglighetsutmaningar om du distribuerar baserat på enskilda Docker-värdar. Det är här Docker-klustringsprogram eller en orkestrerare kan hjälpa dig, enligt beskrivningen i senare avsnitt där distributionsmetoder för mikrotjänster beskrivs.

Docker-containrar är användbara (men krävs inte) för både traditionella tjänstorienterade arkitekturer och de mer avancerade mikrotjänstarkitekturerna.

Mikrotjänster härleds från SOA, men SOA skiljer sig från arkitekturen för mikrotjänster. Funktioner som stora centrala mäklare, centrala orkestratorer på organisationsnivå och Enterprise Service Bus (ESB) är typiska i SOA. Men i de flesta fall är dessa antimönster i mikrotjänstcommunityn. Faktum är att vissa människor hävdar att "Mikrotjänstarkitekturen är SOA gjort rätt."

Den här guiden fokuserar på mikrotjänster eftersom en SOA-metod är mindre normativ än kraven och teknikerna som används i en mikrotjänstarkitektur. Om du vet hur du skapar ett mikrotjänstbaserat program vet du också hur du skapar ett enklare tjänstorienterat program.