Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Architecten ontwerpen workloads door platformservices, functionaliteit en code te integreren om te voldoen aan zowel functionele als niet-functionele vereisten. Als u effectieve workloads wilt ontwerpen, moet u deze vereisten begrijpen en topologieën en methodologieën selecteren die de uitdagingen van de beperkingen van uw workload aanpakken. Cloudontwerppatronen bieden oplossingen voor veel veelvoorkomende uitdagingen.
Systeemontwerp is sterk afhankelijk van vastgestelde ontwerppatronen. U kunt infrastructuur-, code- en gedistribueerde systemen ontwerpen met behulp van een combinatie van deze patronen. Deze patronen zijn essentieel voor het bouwen van betrouwbare, uiterst veilige, kostengeoptimeerde, operationeel efficiënte en hoogwaardige toepassingen in de cloud.
De volgende cloudontwerppatronen zijn technologieneutraal, waardoor ze geschikt zijn voor elk gedistribueerd systeem. U kunt deze patronen toepassen op Azure, andere cloudplatforms, on-premises instellingen en hybride omgevingen.
Hoe cloudontwerppatronen het ontwerpproces verbeteren
Cloudworkloads zijn kwetsbaar voor de fallacties van gedistribueerde computing. Dit zijn veelvoorkomende maar onjuiste veronderstellingen over hoe gedistribueerde systemen werken. Voorbeelden van deze fallacies 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.
Deze misvattingen kunnen leiden tot gebrekkige werkbelastingontwerpen. Ontwerppatronen elimineren deze misconcepten niet, maar ze helpen bewustzijn te vergroten, compensatiestrategieën te bieden en oplossingen aan te bieden. Elk ontwerppatroon voor de cloud heeft compromissen. Richt u op waarom u een specifiek patroon moet kiezen in plaats van hoe u dit moet implementeren.
Overweeg hoe u deze industriestandaard ontwerppatronen kunt gebruiken als de belangrijkste bouwstenen voor een goed ontworpen workloadontwerp. Elk ontwerppatroon in het Azure Well-Architected Framework vertegenwoordigt een of meer van de pijlers. Sommige patronen kunnen compromissen veroorzaken die van invloed zijn op de doelen van andere pijlers.
Een patroon selecteren
Kies een patroon op basis van het probleem dat u moet oplossen, niet de technologie die u wilt gebruiken. Begin met een specifieke beperking of risico in uw werkbelasting, zoals een service die onder belasting uitvalt, een gegevensopslag die de leesquery's niet kan bijhouden, of een afhankelijkheid waarop u niet volledig kunt vertrouwen. Een patroon is geschikt wanneer de probleemverklaring overeenkomt met de uitdaging die u ondervindt en wanneer de afwegingen die u introduceert, zijn die u in uw workload kunt accepteren.
Patrooncatalogus
Elk patroon in deze catalogus beschrijft het probleem dat hiermee wordt opgelost, overwegingen voor het toepassen van het patroon en een voorbeeld op basis van Microsoft Azure services en hulpprogramma's. Sommige patronen bevatten codevoorbeelden of codefragmenten die laten zien hoe het patroon op Azure kan worden geïmplementeerd.
| Patroon | Samenvatting | 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 |
| Asynchrone aanvraag-antwoord | Koppel back-endprocessen los van een front-endhost. Dit patroon is handig wanneer back-endverwerking asynchroon moet zijn, maar de front-end vereist een duidelijk en tijdig antwoord. | - Prestatie-efficiëntie |
| Back-ends voor front-ends | Maak afzonderlijke back-endservices voor 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 afzonderlijke services bepalen wanneer en hoe een bedrijfsbewerking wordt verwerkt, in plaats van afhankelijk van een centrale orchestrator. | - Operationele uitmuntendheid - Prestatie-efficiëntie |
| Circuitonderbreker | Omgaan met fouten die mogelijk een variabele tijd in beslag nemen om op te lossen wanneer een toepassing verbinding maakt met een externe service of resource. | -Betrouwbaarheid - Prestatie-efficiëntie |
| Claimbewijs | Een groot bericht opsplitsen in een claim check en een payload om te voorkomen dat een message bus wordt overbelast. | -Betrouwbaarheid -Veiligheid - Kostenoptimalisatie - Prestatie-efficiëntie |
| Compenserende transactie | Maak het werk ongedaan dat wordt uitgevoerd door een reeks stappen die gezamenlijk een uiteindelijk consistente bewerking vormen. | -Betrouwbaarheid |
| Concurrerende consumenten | Meerdere gelijktijdige gebruikers in staat stellen berichten te verwerken die ze ontvangen op hetzelfde berichtenkanaal. | -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 | Scheid bewerkingen die gegevens lezen van gegevens 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 |
| Event Sourcing | Gebruik een alleen-toevoegen opslag om een volledige reeks gebeurtenissen vast te leggen die acties op gegevens binnen een domein beschrijven. | -Betrouwbaarheid - Prestatie-efficiëntie |
| Externe configuratieopslag | Verplaats configuratiegegevens uit een toepassingsimplementatiepakket naar een centrale locatie. | - Operationele uitmuntendheid |
| Federatieve identiteit | Verificatie delegeren aan een externe id-provider. | -Betrouwbaarheid -Veiligheid - Prestatie-efficiëntie |
| Portier | Beveilig toepassingen en services door een toegewezen hostinstantie te gebruiken om aanvragen te valideren en op te schonen voordat ze worden doorgestuurd naar privébackends. | -Veiligheid - Prestatie-efficiëntie |
| Gatewayaggregatie | Een gateway gebruiken om verschillende afzonderlijke aanvragen samen te voegen in één aanvraag. | -Betrouwbaarheid -Veiligheid - Operationele uitmuntendheid - Prestatie-efficiëntie |
| Gateway-offloading | Gedeelde of gespecialiseerde servicefunctionaliteit offloaden naar een gatewayproxy. | -Betrouwbaarheid -Veiligheid - Kostenoptimalisatie - Operationele uitmuntendheid - Prestatie-efficiëntie |
| Gateway-routering | Routeer aanvragen naar meerdere services met behulp van één eindpunt. | -Betrouwbaarheid - Operationele uitmuntendheid - Prestatie-efficiëntie |
| Geode | Implementeer back-endservices op geografisch gedistribueerde knooppunten. Elk knooppunt kan clientaanvragen vanuit elke regio verwerken. | -Betrouwbaarheid - Prestatie-efficiëntie |
| Gezondheidsbewaking van Eindpunt | 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 voor de velden in gegevensarchieven waarnaar vaak wordt verwezen door query's. | -Betrouwbaarheid - Prestatie-efficiëntie |
| Leider verkiezing | Coördineer acties in een gedistribueerde toepassing door één exemplaar als leider te selecteren. De leider beheert een verzameling samenwerkende taakinstanties. | -Betrouwbaarheid |
| Gerealiseerde weergave | Genereer vooraf ingevulde weergaven over de gegevens in een of meer gegevensarchieven wanneer de gegevens slecht zijn opgemaakt voor vereiste querybewerkingen. | - Prestatie-efficiëntie |
| Berichtenbrug | Bouw een intermediair om communicatie mogelijk te maken tussen berichtensystemen die anders niet compatibel zijn. | - 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 |
| Prioriteitswachtrij | Prioriteit geven aan aanvragen die naar services worden verzonden, zodat aanvragen met een hogere prioriteit sneller worden verwerkt. | -Betrouwbaarheid - Prestatie-efficiëntie |
| Uitgever-abonnee | Schakel een toepassing in om gebeurtenissen asynchroon aan te kondigen aan meerdere consumenten, zonder afzenders aan ontvangers te koppelen. | -Betrouwbaarheid -Veiligheid - Kostenoptimalisatie - Operationele uitmuntendheid - Prestatie-efficiëntie |
| Quarantaine | Zorg ervoor dat externe assets voldoen aan een door het team overeengekomen kwaliteitsniveau voordat de workload deze verbruikt. | -Veiligheid - Operationele uitmuntendheid |
| Wachtrijgebaseerde Load Leveling | Gebruik een wachtrij die een buffer tussen een taak en een service maakt om onregelmatige zware belastingen te vlakken. | -Betrouwbaarheid - Kostenoptimalisatie - Prestatie-efficiëntie |
| Snelheidsbeperking | Door het beheer van het verbruik van middelen, kunt u beperkingsfouten vermijden of minimaliseren. | -Betrouwbaarheid |
| Opnieuw proberen | Schakel toepassingen in om verwachte tijdelijke fouten af te handelen door mislukte bewerkingen opnieuw uit te voeren. | -Betrouwbaarheid |
| Saga | Beheer gegevensconsistentie tussen microservices in gedistribueerde transactiescenario's. | -Betrouwbaarheid |
| Scheduler Agent Supervisor | Coördineer een set acties voor gedistribueerde services en resources. | -Betrouwbaarheid - Prestatie-efficiëntie |
| Sequentieel konvooi | Een set gerelateerde berichten in een gedefinieerde volgorde verwerken zonder dat andere berichtgroepen worden geblokkeerd. | -Betrouwbaarheid |
| Sharding | Een gegevensopslag onderverdelen in een set met horizontale partities of shards. | -Betrouwbaarheid - Kostenoptimalisatie |
| Sidecar | Implementeer onderdelen in een afzonderlijk proces of een afzonderlijke container om isolatie en inkapseling te bieden. | -Veiligheid - Operationele uitmuntendheid |
| Hosting van statische inhoud | Implementeer statische inhoud in een cloudopslagservice voor directe levering van clients. | - Kostenoptimalisatie |
| Strangler Fig | Migreer incrementeel een verouderd systeem door geleidelijk onderdelen van functionaliteit te vervangen door nieuwe toepassingen en services. | -Betrouwbaarheid - Kostenoptimalisatie - Operationele uitmuntendheid |
| Snelheidsbeperking | Beheer het verbruik van middelen van toepassingen, tenants of services. | -Betrouwbaarheid -Veiligheid - Kostenoptimalisatie - Prestatie-efficiëntie |
| Valetsleutel | Gebruik een token of sleutel om clients beperkte, directe toegang te bieden tot een specifieke resource of service. | -Veiligheid - Kostenoptimalisatie - Prestatie-efficiëntie |
Patronen combineren
Patronen zijn samenstelbaar. Met één patroon wordt één probleem opgelost, maar een workload heeft meestal meerdere problemen tegelijk, dus u past vaak meerdere patronen samen toe. Sommige patronen bouwen ook voort op anderen of koppelen op een natuurlijke manier om een gat te bedekken dat één patroon open laat. Bekijk deze voorbeelden:
- Koppel Opnieuw proberen met circuitonderbreker , zodat een toepassing tijdelijke fouten opnieuw probeert, maar stopt met opnieuw proberen wanneer een fout zich blijft voordoen.
- Combineer Queue-Based Load Leveling met Competing Consumers om de belasting te bufferen en daarna de verwerking van die belasting op te schalen.
- Laag de patronen voor gatewayroutering, gatewayaggregatie en gateway-offloading achter één gateway-eindpunt.
- Bouw Saga op compenserende transactie om gegevensconsistentie tussen services te behouden wanneer een gedistribueerde bewerking halverwege mislukt.
Antipatronen
In een ontwerppatroon wordt een procedure beschreven die moet worden toegepast. Een antipatroon beschrijft een praktijk om te voorkomen. Antipatronen beginnen vaak als redelijke ontwerpen die werken bij het testen of op lage schaal, maar ze verminderen de betrouwbaarheid of prestaties naarmate de belasting toeneemt. Door een antipatroon te herkennen, kunt u een probleem in een bestaand ontwerp herkennen en een patroon kiezen waarmee dit wordt opgelost. Zie Antipatroonnen voor cloudtoepassingen voor de volledige lijst.
Orkestratiepatronen voor AI-agents
De voorgaande cloudontwerppatronen hebben betrekking op veelvoorkomende uitdagingen in gedistribueerde systemen, maar AI-workloads die gebruikmaken van meerdere autonome agents, vereisen gespecialiseerde coördinatiemethoden. Traditionele patronen zoals Scheduler Agent Supervisor of Choreografie bieden basisconcepten. AI-agents introduceren echter unieke uitdagingen, zoals niet-deterministische uitvoer, dynamische redeneringsmogelijkheden en de behoefte aan intelligente handoffs tussen gespecialiseerde onderdelen.
Zie orchestratiepatronen voor AI-agents voor AI-werkbelastingen met meerdere autonome agents. Deze patronen vormen een aanvulling op de cloudontwerppatronen in deze catalogus door te voldoen aan de specifieke coördinatievereisten van intelligente, autonome onderdelen die samenwerken om complexe resultaten te bereiken.
Volgende stappen
Bekijk de ontwerppatronen vanuit het perspectief van de Well-Architected Framework-pijler die het patroon wil optimaliseren.
- Ontwerppatronen ter ondersteuning van de pijler Betrouwbaarheid
- Ontwerppatronen ter ondersteuning van de beveiligingspijler
- Ontwerppatronen ter ondersteuning van de pijler Kostenoptimalisatie
- Ontwerppatronen ter ondersteuning van de pijler Operational Excellence
- Ontwerppatronen ter ondersteuning van de pijler Prestatie-efficiëntie