Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Aanbeveling
Deze inhoud is een fragment uit het eBook, Cloud Native .NET Applications for Azure ontwerpen, beschikbaar op .NET Docs of als een gratis downloadbare PDF die offline kan worden gelezen.
Kortom, hier volgen belangrijke conclusies uit deze handleiding:
Cloudeigen gaat over het ontwerpen van moderne toepassingen die snel veranderen, grootschalig en tolerantie omarmen, in moderne, dynamische omgevingen zoals openbare, privé- en hybride clouds.
De Cloud Native Computing Foundation (CNCF) is een invloedrijke opensource-consortium van meer dan 300 grote bedrijven. Het is verantwoordelijk voor het stimuleren van de acceptatie van cloudeigen computing in technologie en cloudstacks.
CNCF-richtlijnen raden aan dat cloudeigen toepassingen zes belangrijke pijlers omvatten, zoals wordt weergegeven in afbeelding 11-1:
Afbeelding 11-1. Cloudeigen basispijlers
Deze cloudeigen pijlers zijn onder andere:
- De cloud en het onderliggende servicemodel
- Moderne ontwerpprincipes
- Microservices
- Containerisatie en containerindeling
- Cloudgebaseerde back-upservices, zoals databases en berichtbrokers
- Automatisering, inclusief infrastructuur als code en code-implementatie
Kubernetes is de hostingomgeving van de keuze voor de meeste cloudtoepassingen. Kleinere, eenvoudige services worden soms gehost op serverloze platforms, zoals Azure Functions. Bij veel belangrijke automatiseringsfuncties bieden beide omgevingen automatisch schalen voor het afhandelen van fluctuerende workloadvolumes.
Servicecommunicatie wordt een belangrijke ontwerpbeslissing bij het bouwen van een cloudeigen toepassing. Toepassingen maken doorgaans een API-gateway beschikbaar voor het beheren van front-endclientcommunicatie. Vervolgens streven back-end microservices ernaar om met elkaar te communiceren, indien mogelijk asynchrone communicatiepatronen te implementeren.
gRPC is een modern, high-performance framework dat het verouderde RPC-protocol (Remote Procedure Call) ontwikkelt. Cloudeigen toepassingen omarmen vaak gRPC om berichten tussen back-endservices te stroomlijnen. gRPC maakt gebruik van HTTP/2 voor het transportprotocol. Het kan maximaal 8x sneller zijn dan JSON-serialisatie met berichtgrootten 60-80% kleiner. gRPC is open source en wordt beheerd door de Cloud Native Computing Foundation (CNCF).
Gedistribueerde gegevens zijn een model dat vaak wordt geïmplementeerd door cloudtoepassingen. Toepassingen scheiden bedrijfsfunctionaliteit in kleine, onafhankelijke microservices. Elke microservice bevat zijn eigen afhankelijkheden, gegevens en statussen. Het klassieke gedeelde databasemodel verandert in een van de vele kleinere databases, die elk worden uitgelijnd met een microservice. Wanneer de rook leeg is, komen we uit met een ontwerp dat een
database-per-microservicemodel blootstelt.No-SQL databases verwijzen naar hoogwaardige, niet-relationele gegevensarchieven. Ze excelleren in hun gebruiksgemak, schaalbaarheid, tolerantie en beschikbaarheidskenmerken. Voor services met een hoog volume waarvoor een reactietijd van een sub tweede nodig is, is het gunstig voor NoSQL-gegevensarchieven. De verspreiding van NoSQL-technologieën voor gedistribueerde cloudeigen systemen kan niet worden overdreven.
NewSQL is een opkomende databasetechnologie die de gedistribueerde schaalbaarheid van NoSQL en de ACID-garanties van een relationele database combineert. NewSQL-databases zijn gericht op bedrijfssystemen die grote hoeveelheden gegevens moeten verwerken, in gedistribueerde omgevingen, met volledige transactionele/ACID-naleving. De Cloud Native Computing Foundation (CNCF) bevat verschillende NewSQL-databaseprojecten.
Tolerantie is de mogelijkheid van uw systeem om te reageren op fouten en nog steeds functioneel te blijven. Cloudeigen systemen omarmen gedistribueerde architectuur, waarbij fouten onvermijdelijk zijn. Toepassingen moeten worden samengesteld om elegant te reageren op fouten en snel terug te keren naar een volledig functionerende status.
Service-meshes zijn een configureerbare infrastructuurlaag met ingebouwde mogelijkheden voor het afhandelen van servicecommunicatie en andere overschrijdende uitdagingen. Ze ontkoppelen kruislingse verantwoordelijkheden van uw bedrijfscode. Deze verantwoordelijkheden worden verplaatst naar een serviceproxy. De proxy wordt ook wel de
Sidecar patternproxy genoemd, wordt geïmplementeerd in een afzonderlijk proces om isolatie van uw bedrijfscode te bieden.Waarneembaarheid is een belangrijke ontwerpoverweging voor cloudtoepassingen. Omdat services worden gedistribueerd over een cluster van knooppunten, gecentraliseerde logboekregistratie, bewaking en waarschuwingen, worden ze verplicht. Azure Monitor is een verzameling cloudhulpprogramma's die zijn ontworpen om inzicht te bieden in de status van uw systeem.
Infrastructuur als code is een algemeen geaccepteerde praktijk waarmee platforminrichting wordt geautomatiseerd. Uw infrastructuur en implementaties zijn geautomatiseerd, consistent en herhaalbaar. Met hulpprogramma's zoals Azure Resource Manager, Terraform en de Azure CLI kunt u de cloudinfrastructuur die u nodig hebt declaratief scripten.
Codeautomatisering is een vereiste voor cloudtoepassingen. Moderne CI/CD-systemen helpen dit principe te vervullen. Ze bieden afzonderlijke build- en implementatiestappen die zorgen voor consistente en kwaliteitscode. De buildfase transformeert de code in een binair artefact. De releasefase haalt het binaire artefact op, past de configuratie van de externe omgeving toe en implementeert deze in een opgegeven omgeving. Azure DevOps en GitHub zijn volledige DevOps-omgevingen.