Dela via


Designmönster för molnet

Arkitekter utformar arbetsbelastningar genom att integrera plattformstjänster, funktioner och kod för att uppfylla både funktionella och icke-funktionella krav. För att kunna utforma effektiva arbetsbelastningar måste du förstå dessa krav och välja topologier och metoder som hanterar utmaningarna med arbetsbelastningens begränsningar. Molndesignmönster ger lösningar på många vanliga utmaningar.

Systemdesignen är starkt beroende av etablerade designmönster. Du kan utforma infrastruktur, kod och distribuerade system med hjälp av en kombination av dessa mönster. Dessa mönster är avgörande för att skapa tillförlitliga, mycket säkra, kostnadsoptimerade, drifteffektiva och högpresterande program i molnet.

Följande molndesignmönster är teknikagnostiska, vilket gör dem lämpliga för alla distribuerade system. Du kan använda dessa mönster i Azure, andra molnplattformar, lokala installationer och hybridmiljöer.

Hur molndesignmönster förbättrar designprocessen

Molnarbetsbelastningar är sårbara för felaktigheter i distribuerad databehandling, vilket är vanliga men felaktiga antaganden om hur distribuerade system fungerar. Exempel på dessa felaktigheter är:

  • Nätverket är tillförlitligt.
  • Svarstiden är noll.
  • Bandbredden är oändlig.
  • Nätverket är säkert.
  • Topologin ändras inte.
  • Det finns en administratör.
  • Versionshantering av komponenter är enkelt.
  • Implementeringen av observerbarhet kan fördröjas.

Dessa missuppfattningar kan resultera i bristfälliga arbetsbelastningsdesigner. Designmönster eliminerar inte dessa missuppfattningar utan bidrar till att öka medvetenheten, tillhandahålla kompensationsstrategier och tillhandahålla åtgärder. Varje mönster för molndesign har kompromisser. Fokusera på varför du bör välja ett specifikt mönster i stället för hur du implementerar det.

Fundera på hur du använder dessa designmönster av branschstandard som grundläggande byggstenar för en välkonstruerad arbetsbelastningsdesign. Varje designmönster i Azure Well-Architected Framework representerar en eller flera av dess grundpelare. Vissa mönster kan medföra kompromisser som påverkar målen för andra pelare.

Mönsterkatalog

Varje mönster i den här katalogen beskriver det problem som det tar itu med, överväganden för att tillämpa mönstret och ett exempel baserat på Microsoft Azure-tjänster och -verktyg. Vissa mönster innehåller kodexempel eller kodfragment som visar hur du implementerar mönstret i Azure.

Mönster Sammanfattning Well-Architected Ramverkets grundpelare
Ambassadör Skapa hjälpkomponenttjänster som skickar nätverksförfrågningar åt en konsumenttjänst eller ett konsumentprogram. -Tillförlitlighet

-Säkerhet
Antikorruptionslager Implementera en fasad eller adapterlager mellan ett modernt program och ett äldre system. - Operational Excellence
Asynkron förfrågan-svar Frikoppla serverdelens bearbetning från en front-end värd. Det här mönstret är användbart när serverdelsbearbetningen måste vara asynkron, men klientdelen kräver ett tydligt och snabbt svar. – Prestandaeffektivitet
Backend för frontend Skapa separata serverdelstjänster för specifika klientdelsprogram eller gränssnitt. -Tillförlitlighet

-Säkerhet

– Prestandaeffektivitet
Skiljevägg Isolera element i ett program i pooler så att de andra fortsätter att fungera om det ena misslyckas. -Tillförlitlighet

-Säkerhet

– Prestandaeffektivitet
Cache-Aside Läs in data på begäran till en cache från ett datalager. -Tillförlitlighet

– Prestandaeffektivitet
Koreografi Låt enskilda tjänster bestämma när och hur en affärsåtgärd bearbetas, i stället för beroende på en central orkestrator. - Operational Excellence

– Prestandaeffektivitet
Kretsbrytare Hantera fel som kan ta en varierande tid att åtgärda när ett program ansluter till en fjärrtjänst eller resurs. -Tillförlitlighet

– Prestandaeffektivitet
Kvittokontroll Dela upp ett stort meddelande till en anspråkskontroll och en nyttolast för att undvika att överbelasta en meddelandebuss. -Tillförlitlighet

-Säkerhet

– Kostnadsoptimering

– Prestandaeffektivitet
Kompenserande transaktion Ångra det arbete som utförs av en sekvens med steg som tillsammans bildar en slutligen konsekvent operation. -Tillförlitlighet
Konkurrerande konsumenter Gör det möjligt för flera samtidiga konsumenter att bearbeta meddelanden som de tar emot på samma meddelandekanal. -Tillförlitlighet

– Kostnadsoptimering

– Prestandaeffektivitet
Konsolidering av beräkningsresurser Konsolidera flera uppgifter eller åtgärder till en enda beräkningsenhet. – Kostnadsoptimering

- Operativ spetskompetens

– Prestandaeffektivitet
CQRS Separera åtgärder som läser data från dem som uppdaterar data med hjälp av distinkta gränssnitt. – Prestandaeffektivitet
Distributionsstämplar Distribuera flera oberoende kopior av programkomponenter, inklusive datalager. - Operational Excellence

– Prestandaeffektivitet
Händelsekällor Använd ett tilläggslager för att registrera en fullständig serie händelser som beskriver åtgärder som vidtas på data i en domän. -Tillförlitlighet

– Prestandaeffektivitet
Externt konfigurationslager Flytta konfigurationsinformation från ett programdistributionspaket till en central plats. - Operational Excellence
Federerade identiteter Delegera autentiseringen till en extern identitetsleverantör. -Tillförlitlighet

-Säkerhet

– Prestandaeffektivitet
Gateway-aggregering Använd en gateway för att slå samman flera enskilda förfrågningar till en enda begäran. -Tillförlitlighet

-Säkerhet

- Operativ Förträfflighet

– Prestandaeffektivitet
Gateway-avlastning Avlasta delade eller specialiserade tjänstfunktioner till en gateway-proxy. -Tillförlitlighet

-Säkerhet

– Kostnadsoptimering

- Operational Excellence

– Prestandaeffektivitet
Gateway-routning Dirigera begäranden till flera tjänster med hjälp av en enda slutpunkt. -Tillförlitlighet

- Operational Excellence

– Prestandaeffektivitet
Geode Distribuera serverdelstjänster över geografiskt distribuerade noder. Varje nod kan hantera klientbegäranden från valfri region. -Tillförlitlighet

– Prestandaeffektivitet
Övervakning av slutpunktshälsa Implementera funktionskontroller i ett program som externa verktyg kan komma åt via exponerade slutpunkter med jämna mellanrum. -Tillförlitlighet

- Operational Excellence

– Prestandaeffektivitet
Indextabell Skapa index över fälten i datalager som ofta efterfrågas. -Tillförlitlighet

– Prestandaeffektivitet
Val av ledare Samordna åtgärder i ett distribuerat program genom att välja en instans som ledare. Ledaren hanterar en samling samarbetande uppgiftsinstanser. -Tillförlitlighet
Materialiserad vy Generera förifyllda vyer över data i ett eller flera datalager när data är dåligt formaterade för nödvändiga frågeåtgärder. – Prestandaeffektivitet
Meddelandebrygga Skapa en mellanhand för att möjliggöra kommunikation mellan meddelandesystem som annars är inkompatibla. – Kostnadsoptimering

- Operational Excellence
Rör och filter Dela upp en aktivitet som utför komplex bearbetningen i ett antal olika element som kan återanvändas. -Tillförlitlighet
Prioritetskö Prioritera begäranden som skickas till tjänster så att begäranden med högre prioritet bearbetas snabbare. -Tillförlitlighet

– Prestandaeffektivitet
Utgivare/prenumerant Aktivera ett program för att meddela händelser till flera konsumenter asynkront, utan att koppla avsändare till mottagare. -Tillförlitlighet

-Säkerhet

– Kostnadsoptimering

- Operational Excellence

– Prestandaeffektivitet
karantän Se till att externa tillgångar uppfyller en teamavtalad kvalitetsnivå innan arbetsbelastningen förbrukar dem. -Säkerhet

- Operational Excellence
Köbaserad belastningsutjämning Använd en kö som skapar en buffert mellan en uppgift och en tjänst för att jämna ut tillfälliga tunga belastningar. -Tillförlitlighet

– Kostnadsoptimering

– Prestandaeffektivitet
Hastighetsbegränsning Undvik eller minimera begränsningsproblem genom att kontrollera förbrukningen av resurser. -Tillförlitlighet
Försök igen Gör det möjligt för program att hantera förväntade tillfälliga fel genom att försöka utföra misslyckade åtgärder igen. -Tillförlitlighet
Saga Hantera datakonsekvens mellan mikrotjänster i distribuerade transaktionsscenarier. -Tillförlitlighet
Scheduler-agentövervakare Samordna en uppsättning åtgärder mellan distribuerade tjänster och resurser. -Tillförlitlighet

– Prestandaeffektivitet
Sekventiell konvoj Bearbeta en uppsättning relaterade meddelanden i en definierad ordning utan att blockera andra meddelandegrupper. -Tillförlitlighet
Horisontell partitionering Dela upp ett datalager i en uppsättning horisontella partitioner eller delar. -Tillförlitlighet

– Kostnadsoptimering
Sidovagn Distribuera komponenter till en separat process eller container för att tillhandahålla isolering och inkapsling. -Säkerhet

- Operational Excellence
Hosting av statiskt innehåll Distribuera statiskt innehåll till en molnbaserad lagringstjänst för direkt klientleverans. – Kostnadsoptimering
Strangler-figur Migrera ett äldre system stegvis genom att gradvis ersätta funktioner med nya program och tjänster. -Tillförlitlighet

– Kostnadsoptimering

- Operativ Förträfflighet
Begränsning Kontrollera förbrukningen av resurser från program, klientorganisationer eller tjänster. -Tillförlitlighet

-Säkerhet

– Kostnadsoptimering

– Prestandaeffektivitet
Valet-nyckel Använd en token eller nyckel för att ge klienter begränsad, direkt åtkomst till en specifik resurs eller tjänst. -Säkerhet

– Kostnadsoptimering

– Prestandaeffektivitet

AI-agentorkestreringsmönster

De föregående molndesignmönstren hanterar vanliga utmaningar i distribuerade system, men AI-arbetsbelastningar som använder flera autonoma agenter kräver specialiserade samordningsmetoder. Traditionella mönster som Scheduler Agent Supervisor eller Choreography ger grundläggande begrepp. AI-agenter introducerar dock unika utmaningar som icke-terministiska utdata, dynamiska resonemangsfunktioner och behovet av intelligenta överlämningar mellan specialiserade komponenter.

Information om AI-arbetsbelastningar som innehåller flera autonoma agenter finns i AI-agentorkestreringsmönster. Dessa mönster kompletterar molndesignmönstren i den här katalogen genom att uppfylla de specifika samordningskraven för intelligenta, autonoma komponenter som arbetar tillsammans för att uppnå komplexa resultat.

Nästa steg

Granska designmönstren utifrån den Well-Architected Framework-pelare som mönstret syftar till att optimera.