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. - Operativ spetskompetens

– 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 skicklighet

– 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
Event Sourcing 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

- Operativ skicklighet

– 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

- Operativ kompetens

– Prestandaeffektivitet

Nästa steg

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