Delen via


Cloudontwerppatronen

Architecten ontwerpen workloads door platformservices, functionaliteit en code te combineren om te voldoen aan functionele en niet-functionele vereisten in workloads. Het ontwerpen van workloads vereist inzicht in de vereisten van die workloads en vervolgens het kiezen van topologieën en benaderingen die de uitdagingen oplossen, zoals gepresenteerd door de beperkingen van de workload. Cloudontwerppatronen die veel veelvoorkomende uitdagingen aanpakken.

Systemenontwerp is sterk doordrenkt met ontwerppatronen. Infrastructuur-, code- en gedistribueerde systemen zijn allemaal ontworpen rond een combinatie van ontwerppatronen. Deze ontwerppatronen zijn handig voor het bouwen van betrouwbare, veilige, kosten-geoptimaliseerde, operationeel solide en presterende toepassingen in de cloud.

Deze ontwerppatronen zijn niet specifiek voor technologie en zijn relevant voor elk gedistribueerd systeem, ongeacht of ze worden gehost op Azure, andere cloudplatforms en sommige kunnen zelfs worden uitgebreid naar on-premises of hybride workloads.

Cloudontwerppatronen helpen bij het ontwerpproces

Cloudworkloads zijn gevoelig voor de fallacies van gedistribueerde computing. Enkele voorbeelden van cloudontwerpfouten zijn:

  • Het netwerk is betrouwbaar
  • Latentie is nul
  • Bandbreedte is oneindig
  • Het netwerk is beveiligd
  • Topologie verandert niet
  • Er is één beheerder
  • Versiebeheer van onderdelen is eenvoudig
  • De implementatie van waarneembaarheid kan worden vertraagd

Ontwerppatronen elimineren geen concepten zoals deze, maar kunnen helpen bij het brengen van bewustzijn, compensaties en oplossingen. Elk cloudpatroon heeft zijn eigen compromissen. U moet meer aandacht besteden aan de reden waarom u een bepaald patroon kiest dan hoe u dit implementeert.

Een goed gestructureerde werkbelasting beschouwt hoe deze branche-brede ontwerppatronen moeten worden gebruikt. Ze dienen als de hoofdbouwstenen voor het ontwerpen van werkbelastingen. Elke Azure Well-Architected pijler wordt weergegeven in deze ontwerppatronen, vaak met het ontwerppatroon dat compromissen introduceert met de doelstellingen van andere pijlers.

Catalogus van patronen

Elk patroon in deze catalogus beschrijft het probleem waarmee het patroon wordt opgelost, overwegingen voor het toepassen van het patroon en een voorbeeld op basis van Microsoft Azure. Sommige patronen bevatten codevoorbeelden of codefragmenten die laten zien hoe het patroon in Azure kan worden geïmplementeerd.

Patroon Samenvatting Azure Well-Architected Framework-pijlers
Ambassadeur Helper-services maken die netwerkaanvragen verzenden namens een consumentservice of toepassing.
  • Betrouwbaarheid
  • Veiligheid
Anti-corruptielaag Een toegangspunt of een adapterlaag implementeren tussen een moderne toepassing en een oud systeem.
  • Operationele uitmuntendheid
Asynchroon aanvraag-antwoord Ontkoppel de back-endverwerking van een front-endhost waar de back-endverwerking asynchroon moet zijn, maar de front-end nog steeds een duidelijke respons nodig heeft.
  • Prestatie-efficiëntie
Back-ends voor front-ends Maak afzonderlijke back-endservices die moeten worden gebruikt door specifieke front-endtoepassingen of -interfaces.
  • Betrouwbaarheid
  • Veiligheid
  • Prestatie-efficiëntie
Bulkhead Elementen van een toepassing isoleren in pools, zodat de andere blijven functioneren als de ene toepassing mislukt.
  • Betrouwbaarheid
  • Veiligheid
  • Prestatie-efficiëntie
Cache-Aside Laad gegevens op aanvraag in een cache vanuit een gegevensarchief.
  • Betrouwbaarheid
  • Prestatie-efficiëntie
Choreografie Laat elke service bepalen wanneer en hoe een bedrijfsbewerking wordt verwerkt, in plaats van afhankelijk te zijn van een centrale orchestrator.
  • Operationele uitmuntendheid
  • Prestatie-efficiëntie
Circuitonderbreker Fouten afhandelen waarvoor een wisselende hoeveelheid tijd nodig is om ze op te lossen bij het verbinden met een externe service of resource.
  • Betrouwbaarheid
  • Prestatie-efficiëntie
Claimcontrole Een groot bericht opsplitsen in een claimcontrole en een nettolading om te voorkomen dat een berichtenbus wordt overbelast.
  • Betrouwbaarheid
  • Veiligheid
  • Kostenoptimalisatie
  • Prestatie-efficiëntie
Compenserende transactie Werk ongedaan maken dat is uitgevoerd door een reeks stappen, die samen een uiteindelijk consistent bewerking definiëren.
  • Betrouwbaarheid
Concurrerende consumenten Meerdere gelijktijdige consumenten inschakelen voor het verwerken van berichten die op hetzelfde kanaal worden ontvangen.
  • Betrouwbaarheid
  • Kostenoptimalisatie
  • Prestatie-efficiëntie
Consolidatie van berekenbronnen Voeg meerdere taken of bewerkingen samen in één rekenkundige eenheid.
  • Kostenoptimalisatie
  • Operationele uitmuntendheid
  • Prestatie-efficiëntie
CQRS Bewerkingen die gegevens lezen scheiden van bewerkingen die gegevens bijwerken met behulp van afzonderlijke interfaces.
  • Prestatie-efficiëntie
Implementatiestempels Implementeer meerdere onafhankelijke kopieën van toepassingsonderdelen, waaronder gegevensarchieven.
  • Operationele uitmuntendheid
  • Prestatie-efficiëntie
Configuratie van Edge-werkbelasting Centraliseer de configuratie om de uitdaging van het configureren van meerdere systemen en apparaten op de winkelvloer aan te pakken.
Gebeurtenisbronnen Een archief gebruiken waaraan alleen gegevens kunnen worden toegevoegd om de volledige reeks gebeurtenissen vast te leggen die de acties beschrijven die op gegevens in een domein worden uitgevoerd.
  • Betrouwbaarheid
  • Prestatie-efficiëntie
Extern configuratiearchief Configuratiegegevens vanuit het implementatiepakket voor de toepassing verplaatsen naar een centrale locatie.
  • Operationele uitmuntendheid
Federatieve identiteit Verificatie delegeren aan een externe id-provider.
  • Betrouwbaarheid
  • Veiligheid
  • Prestatie-efficiëntie
Gatekeeper Toepassingen en services beveiligen met behulp van een toegewezen instantie van de host die fungeert als een broker tussen clients en de toepassing of service, die aanvragen valideert en opschoont, en die aanvragen en gegevens tussen deze twee componenten doorgeeft.
  • Veiligheid
  • Prestatie-efficiëntie
Aggregatie van gateway Een gateway gebruiken om verschillende afzonderlijke aanvragen samen te voegen in één aanvraag.
  • Betrouwbaarheid
  • Veiligheid
  • Operationele uitmuntendheid
  • Prestatie-efficiëntie
Offloading van gateway Gedeelde of gespecialiseerde servicefunctionaliteit offloaden naar een gatewayproxy.
  • Betrouwbaarheid
  • Veiligheid
  • Kostenoptimalisatie
  • Operationele uitmuntendheid
  • Prestatie-efficiëntie
Routering van gateway Aanvragen naar meerdere services routeren met behulp van één eindpunt.
  • Betrouwbaarheid
  • Operationele uitmuntendheid
  • Prestatie-efficiëntie
Geode Back-endservices implementeren in een set geografische knooppunten, die elk clientaanvragen in elke regio kunnen afhandelen.
  • Betrouwbaarheid
  • Prestatie-efficiëntie
Eindpuntstatusbewaking Functionele controles implementeren in een toepassing die externe hulpprogramma's met regelmatige intervallen kunnen benaderen via beschikbaar gestelde eindpunten.
  • Betrouwbaarheid
  • Operationele uitmuntendheid
  • Prestatie-efficiëntie
Indextabel Indexen maken van de velden in gegevensarchieven waarnaar vaak wordt verwezen door query's.
  • Betrouwbaarheid
  • Prestatie-efficiëntie
Selectie van leider De acties coördineren die worden uitgevoerd door een reeks samenwerkende taakexemplaren in een gedistribueerde toepassing door één exemplaar te selecteren als de leider, die vervolgens de verantwoordelijkheid krijgt voor het beheren van de andere exemplaren.
  • Betrouwbaarheid
Gerealiseerde weergave Vooraf ingevulde weergaven met de gegevens uit een of meer gegevensarchieven genereren wanneer de gegevens niet perfect zijn opgemaakt voor vereiste querybewerkingen.
  • Prestatie-efficiëntie
Berichtengeleider Bouw een intermediair om communicatie mogelijk te maken tussen berichtensystemen die anders niet compatibel zijn vanwege protocol of indeling.
  • Kostenoptimalisatie
  • Operationele uitmuntendheid
Pijpen en filters Een taak waarmee een complexe verwerking wordt uitgevoerd, opsplitsen in een reeks afzonderlijke elementen die kunnen worden hergebruikt.
  • Betrouwbaarheid
Wachtrij met prioriteit Prioriteit geven aan aanvragen die worden verzonden naar services, zodat aanvragen met een hogere prioriteit sneller worden ontvangen en verwerkt dan aanvragen met een lagere prioriteit.
  • Betrouwbaarheid
  • Prestatie-efficiëntie
Uitgever/abonnee Een toepassing in staat stellen om asynchroon meerdere geïnteresseerde consumenten op de hoogte te brengen van gebeurtenissen, zonder dat de afzenders aan de ontvangers worden gekoppeld.
  • Betrouwbaarheid
  • Veiligheid
  • Kostenoptimalisatie
  • Operationele uitmuntendheid
  • Prestatie-efficiëntie
Quarantaine Zorg ervoor dat externe assets voldoen aan een door het team overeengekomen kwaliteitsniveau voordat ze in de workload kunnen worden gebruikt.
  • Veiligheid
  • Operationele uitmuntendheid
Load Leveling op basis van wachtrij Een wachtrij gebruiken die fungeert als een buffer tussen een taak en een service die wordt aangeroepen om onregelmatige zware belastingen soepel te verwerken.
  • Betrouwbaarheid
  • Kostenoptimalisatie
  • Prestatie-efficiëntie
Frequentielimietpatroon Beperkingspatroon om beperkingsfouten met betrekking tot deze beperkingslimieten te voorkomen of te minimaliseren en om u te helpen de doorvoer nauwkeuriger te voorspellen.
  • Betrouwbaarheid
Opnieuw proberen Een toepassing de mogelijkheid bieden voor het afhandelen van verwachte, tijdelijke fouten als er wordt geprobeerd om verbinding te maken met een service of netwerkresource door een bewerking die eerder is mislukt, transparant opnieuw te proberen.
  • Betrouwbaarheid
Sage Beheer gegevensconsistentie tussen microservices in gedistribueerde transactiescenario's. Een saga is een reeks transacties waarmee elke service wordt bijgewerkt en een bericht of gebeurtenis wordt gepubliceerd om de volgende transactiestap te activeren.
  • Betrouwbaarheid
Scheduler Agent Supervisor Een set acties coördineren binnen een gedistribueerde set services en andere externe resources.
  • Betrouwbaarheid
  • Prestatie-efficiëntie
Sequentiële verwerking Een reeks gerelateerde berichten in een gedefinieerde volgorde verwerken zonder de verwerking van andere groepen berichten te blokkeren.
  • Betrouwbaarheid
Sharding Een gegevensarchief onderverdelen in een set met horizontale partities of shards.
  • Betrouwbaarheid
  • Kostenoptimalisatie
Sidecar Onderdelen van een toepassing implementeren in een afzonderlijk proces of container om isolatie en inkapseling mogelijk te maken.
  • Veiligheid
  • Operationele uitmuntendheid
Hosting van statische inhoud Statische inhoud implementeren naar een opslagservice in de cloud die de inhoud rechtstreeks aan de client kan leveren.
  • Kostenoptimalisatie
Strangler Fig Een verouderd systeem incrementeel migreren door specifieke functionaliteit geleidelijk te vervangen door nieuwe toepassingen en services.
  • Betrouwbaarheid
  • Kostenoptimalisatie
  • Operationele uitmuntendheid
Beperking Het verbruik beheren van resources die worden gebruikt door een exemplaar van een toepassing, een afzonderlijke tenant of een hele service.
  • Betrouwbaarheid
  • Veiligheid
  • Kostenoptimalisatie
  • Prestatie-efficiëntie
Valetsleutel Een token of sleutel gebruiken die clients beperkte, directe toegang biedt tot een specifieke resource of service.
  • Veiligheid
  • Kostenoptimalisatie
  • Prestatie-efficiëntie

Volgende stap

Bekijk de ontwerppatronen vanuit het perspectief van de Azure Well-Architected Pillar die het patroon probeert te optimaliseren.