Patronen voor microservices ontwerpen

Azure Cloud Services

Het doel van microservices is om de snelheid van toepassingsreleases te verhogen door de toepassing op te vouwen in kleine autonome services die onafhankelijk kunnen worden geïmplementeerd. Een microservicesarchitectuur brengt ook enkele uitdagingen met zich mee. De hier getoonde ontwerppatronen kunnen helpen deze uitdagingen te beperken.

Microservices design patterns

Ambassador kan worden gebruikt voor het offloaden van algemene clientconnectiviteitstaken, zoals bewaking, logboekregistratie, routering en beveiliging (zoals TLS) op een taalonafhankelijke manier. Ambassador-services worden vaak geïmplementeerd als sidecar (zie hieronder).

Anti-corruptielaag implementeert een gevel tussen nieuwe en verouderde toepassingen, om ervoor te zorgen dat het ontwerp van een nieuwe toepassing niet wordt beperkt door afhankelijkheden van verouderde systemen.

Back-ends voor front-ends maken afzonderlijke back-endservices voor verschillende typen clients, zoals desktop en mobiel. Op die manier hoeft één back-endservice de conflicterende vereisten van verschillende clienttypen niet af te handelen. Dit patroon kan helpen om elke microservice eenvoudig te houden door clientspecifieke problemen te scheiden.

Bulkhead isoleert kritieke resources, zoals verbindingsgroep, geheugen en CPU, voor elke workload of service. Door bulkheads te gebruiken, kan één workload (of service) niet alle resources verbruiken, wat anderen verhongert. Dit patroon verhoogt de tolerantie van het systeem door trapsgewijze fouten te voorkomen die worden veroorzaakt door één service.

GatewayAggregatie voegt aanvragen samen voor meerdere afzonderlijke microservices in één aanvraag, waardoor de chattiviteit tussen consumenten en services wordt verminderd.

Met gateway-offloading kan elke microservice gedeelde servicefunctionaliteit, zoals het gebruik van SSL-certificaten, offloaden naar een API-gateway.

Gatewayroutering routeert aanvragen naar meerdere microservices met één eindpunt, zodat consumenten niet veel afzonderlijke eindpunten hoeven te beheren.

Messaging Bridge integreert verschillende systemen die zijn gebouwd met verschillende berichteninfrastructuren.

Sidecar implementeert helperonderdelen van een toepassing als een afzonderlijke container of een afzonderlijk proces om isolatie en inkapseling te bieden.

Strangler Fig ondersteunt incrementele herstructurering van een toepassing door specifieke onderdelen van functionaliteit geleidelijk te vervangen door nieuwe services.

Zie Cloudontwerppatronen voor de volledige catalogus met cloudontwerppatronen in het Azure Architecture Center.

Volgende stappen