Designmönster för mikrotjänster

Målet med mikrotjänster är att öka hastigheten för programutgåve genom att dekomprimera programmet i små autonoma tjänster som kan distribueras oberoende av varandra. En arkitektur för mikrotjänster medför också vissa utmaningar. Designmönstren som visas här kan hjälpa dig att lösa dessa utmaningar.

Designmönster för mikrotjänster

Ambassadör kan användas för att avlasta vanliga klientanslutningsuppgifter som övervakning, loggning, routning och säkerhet (till exempel TLS) på ett språkoberoende sätt. Ambassadörstjänster distribueras ofta som sidovagn (se nedan).

Skyddande lager implementerar en fasad mellan nya och äldre program för att säkerställa att utformningen av ett nytt program inte begränsas av beroenden på äldre system.

Backends for Frontends skapar separata backend-tjänster för olika typer av klienter, till exempel stationära datorer och mobila enheter. På så sätt behöver inte en enda backend-tjänst hantera motstridiga krav för olika klienttyper. Det här mönstret kan hjälpa dig att hålla varje mikrotjänst enkel genom att separera klientspecifika problem.

Bulkhead isolerar kritiska resurser, till exempel anslutningspool, minne och CPU, för varje arbetsbelastning eller tjänst. Genom att använda bulkheads kan en enskild arbetsbelastning (eller tjänst) inte förbruka alla resurser och utsvultna andra. Det här mönstret ökar systemets återhämtningsförmåga genom att förhindra sammanhängande fel som orsakas av en tjänst.

Gateway-aggregering aggregerar begäranden till flera enskilda mikrotjänster i en enda begäran, vilket minskar trafik mellan konsumenter och tjänster.

Gateway-avlastning gör att varje mikrotjänst kan avlasta delade tjänstfunktioner, till exempel användning av SSL-certifikat, till en API-gateway.

Gateway-routning dirigerar begäranden till flera mikrotjänster med en enda slutpunkt, så att konsumenterna inte behöver hantera många separata slutpunkter.

Sidovagnen distribuerar hjälpkomponenter i ett program som en separat container eller process för att tillhandahålla isolering och inkapsling.

Strangler Fig stöder inkrementell refaktorering av ett program genom att gradvis ersätta specifika funktioner med nya tjänster.

En fullständig katalog över molndesignmönster på Azure Architecture Center finns i Designmönster för moln.