Best practices in cloudtoepassingen
Deze aanbevolen procedures kunnen u helpen bij het bouwen van betrouwbare, schaalbare en veilige toepassingen in de cloud. Ze bieden richtlijnen en tips voor het ontwerpen en implementeren van efficiënte en robuuste systemen, mechanismen en benaderingen. Veel bevatten ook codevoorbeelden die u kunt gebruiken met Azure-services. De procedures zijn van toepassing op elk gedistribueerd systeem, ongeacht of uw host Azure of een ander cloudplatform is.
Catalogus met procedures
Deze tabel bevat verschillende aanbevolen procedures. De kolom Gerelateerde pijlers of patronen bevat de volgende koppelingen:
- Uitdagingen voor cloudontwikkeling die de praktijk en gerelateerde ontwerppatronen aanpakken.
- Pijlers van het Microsoft Azure Well-Architected Framework waarop de praktijk zich richt.
Oefening | Samenvatting | Verwante pijlers of patronen |
---|---|---|
API-ontwerp | Ontwerp web-API's ter ondersteuning van platformonafhankelijkheid met behulp van standaardprotocollen en overeengekomen gegevensindelingen. Bevordert de evolutie van de service zodat clients functionaliteit kunnen detecteren zonder dat ze hoeven te worden gewijzigd. Verbeter de reactietijden en voorkom tijdelijke fouten door gedeeltelijke antwoorden te ondersteunen en manieren te bieden om gegevens te filteren en te pagineren. | Ontwerp en implementatie, Prestatie-efficiëntie, Operationele uitmuntendheid |
API-implementatie | Implementeer web-API's om efficiënt, responsief, schaalbaar en beschikbaar te zijn. Maak acties die idempotent zijn, ondersteuning bieden voor inhoudsonderhandeling en volg de HTTP-specificatie. Omgaan met uitzonderingen en ondersteuning voor de detectie van resources. Bied manieren om grote aanvragen te verwerken en netwerkverkeer te minimaliseren. | Ontwerp en implementatie, Operationele uitmuntendheid |
Automatisch schalen | Ontwerp apps om resources dynamisch toe te wijzen en de toewijzing ervan ongedaan te maken om te voldoen aan de prestatievereisten en de kosten te minimaliseren. Profiteer van automatische schaalaanpassing van Azure Monitor en de ingebouwde automatische schaalaanpassing die veel Azure-onderdelen bieden. | Prestatie-efficiëntie, Kostenoptimalisatie |
Achtergrondtaken | Implementeer batchtaken, verwerkingstaken en werkstromen als achtergrondtaken. Gebruik Azure-platformservices om deze taken te hosten. Activeer taken met gebeurtenissen of planningen en retourneer resultaten naar aanroepende taken. | Ontwerp en implementatie, Operationele uitmuntendheid |
Caching | Verbeter de prestaties door gegevens te kopiëren naar snelle opslag in de buurt van apps. Cachegegevens die u vaak hebt gelezen, maar die zelden worden gewijzigd. Het verlopen en gelijktijdigheid van gegevens beheren. Zie hoe u caches vult en de Azure Cache voor Redis-service gebruikt. | Gegevensbeheer, prestatie-efficiëntie |
Netwerk voor contentlevering | Gebruik CDN's (Content Delivery Networks) om webinhoud efficiënt aan gebruikers te leveren en de belasting van web-apps te verminderen. Implementatie-, versiebeheer-, beveiligings- en tolerantieproblemen overwinnen. | Gegevensbeheer, prestatie-efficiëntie |
Gegevenspartitionering | Partitioneer gegevens om de schaalbaarheid, beschikbaarheid en prestaties te verbeteren en om conflicten en kosten voor gegevensopslag te verminderen. Gebruik horizontale, verticale en functionele partitionering op efficiënte manieren. | Gegevensbeheer, Prestatie-efficiëntie, Kostenoptimalisatie |
Strategieën voor gegevenspartitionering (per service) | Partitioneer gegevens in Azure SQL Database en Azure Storage-services , zoals Azure Table Storage en Azure Blob Storage. Shard uw gegevens om belastingen te distribueren, latentie te verminderen en horizontale schaalaanpassing te ondersteunen. | Gegevensbeheer, Prestatie-efficiëntie, Kostenoptimalisatie |
Behoud van hostnaam | Ontdek waarom het belangrijk is om de oorspronkelijke HTTP-hostnaam tussen een omgekeerde proxy en de back-endwebtoepassing te behouden en hoe u deze aanbeveling implementeert voor de meest voorkomende Azure-services. | Ontwerpen en implementeren, betrouwbaarheid |
Overwegingen voor berichtcodering | Gebruik asynchrone berichten om informatie uit te wisselen tussen systeemonderdelen. Kies de nettoladingstructuur, coderingsindeling en serialisatiebibliotheek die het beste werkt met uw gegevens. | Berichten, beveiliging |
Bewaking en diagnose | Houd de systeemstatus, het gebruik en de prestaties bij met een bewakings- en diagnostische pijplijn. U kunt bewakingsgegevens omzetten in waarschuwingen, rapporten en triggers die in verschillende situaties helpen. Voorbeelden hiervan zijn het detecteren en corrigeren van problemen, het opsporen van mogelijke problemen, het voldoen aan prestatiegaranties en het voldoen aan controlevereisten. | Operationele uitmuntendheid |
Richtlijnen voor opnieuw proberen voor specifieke services | Gebruik, pas deze aan en breid de mechanismen voor opnieuw proberen uit die Azure-services en client-SDK's bieden. Ontwikkel een systematische en robuuste benadering voor het beheren van tijdelijke problemen met verbindingen, bewerkingen en resources. | Ontwerpen en implementeren, betrouwbaarheid |
Afhandeling van tijdelijke fouten | Tijdelijke fouten verwerken die worden veroorzaakt door niet-beschikbare netwerken of resources. Problemen oplossen bij het ontwikkelen van geschikte strategieën voor opnieuw proberen. Vermijd het dupliceren van lagen van code voor opnieuw proberen en andere antipatronen. | Ontwerpen en implementeren, betrouwbaarheid |