Cloudontwikkeling in Azure
U bent een Python-ontwikkelaar en u bent klaar om cloudtoepassingen te ontwikkelen voor Microsoft Azure. Om u voor te bereiden op een lange en productieve carrière, is deze reeks van drie artikelen gericht op het basislandschap van cloudontwikkeling in Azure.
Wat is Azure? Datacenters, services en resources
De CEO van Microsoft, Satya Nadella, verwijst vaak naar Azure als 'de computer van de wereld'. Zoals u weet, is een computer een verzameling hardware die wordt beheerd door een besturingssysteem, dat een platform biedt waarop u software kunt bouwen waarmee mensen de rekenkracht van het systeem kunnen toepassen op een aantal taken. (Daarom gebruiken we het woord 'toepassing' om dergelijke software te beschrijven.)
In het geval van Azure is de hardware van de computer niet één computer, maar een enorme groep gevirtualiseerde servercomputers in tientallen enorme datacenters over de hele wereld. Het 'besturingssysteem' van Azure bestaat vervolgens uit services die de toewijzing van verschillende onderdelen van die resourcegroep dynamisch toewijzen en de toewijzing ervan de hand doen, wanneer toepassingen deze nodig hebben. Met deze dynamische toewijzingen kunnen toepassingen snel reageren op een aantal veranderende omstandigheden, zoals de vraag van klanten.
Elke toewijzing wordt een resource genoemden aan elke resource wordt zowel een unieke object-id (een GUID) als een unieke URL toegewezen. Typen resources zijn onder andere virtuele machines (CPU-kernen en geheugen), opslag, databases, virtuele netwerken, containerregisters, container orchestrators, webhosts, AI- en analyse-engines, en meer.

Resources zijn de bouwstenen van een cloudtoepassing. Het cloudontwikkelingsproces begint dus met het maken van de juiste omgeving waarin u de verschillende onderdelen van de toepassing kunt implementeren. Eenvoudig gezegd, u kunt geen code of gegevens implementeren in Azure totdat u de geschikte doelbronnen hebt toegewezen en geconfigureerd (dat isingericht).
Het proces van het maken van de omgeving voor uw toepassing omvat vervolgens het identificeren van de relevante betrokken services en resourcetypen en vervolgens het inrichten van deze resources. Het inrichtingsproces is in feite de manier waarop u het computersysteem bouwt waarop u uw toepassing implementeert. Inrichten is ook het punt waarop u begint met het huren van deze resources van Azure.
Er zijn honderden verschillende soorten resources tot uw beschikking, van basisresources voor infrastructuur, zoals virtuele machines, waarbij u het volledige beheer en de verantwoordelijkheid behoudt voor de software die u implementeert, tot platformservices op een hoger niveau die een meer beheerde omgeving bieden waar u zich alleen met gegevens en toepassingscode zorgen.
Het vinden van de juiste services voor uw toepassing en het in balans brengen van hun relatieve kosten kan lastig zijn, maar maakt ook deel uit van het creatieve plezier van cloudontwikkeling. Als u meer wilt weten over de vele opties, bekijkt u de Handleiding voor Azure-ontwikkelaars. Hier gaan we bespreken hoe u daadwerkelijk met al deze services en resources werkt.
Notitie
Waarschijnlijk hebt u de termen IaaS (infrastructure-as-a-service), PaaS (platform-as-a-service) en nog veel meer gebruikt. Het as-a-service-gedeelte weerspiegelt de realiteit dat u over het algemeen geen fysieke toegang hebt tot de datacenters zelf. In plaats daarvan gebruikt u hulpprogramma's zoals de Azure Portal, de Azure CLI of de Azure-REST API voor het inrichten van infrastructuurbronnen, platformbronnen, en meer. Als service staatAzure altijd klaar om te wachten op het ontvangen van uw aanvragen.
In dit ontwikkelaarscentrum besparen we u het jargon van IaaS, PaaS, enzovoort, omdat 'as-a-service' om te beginnen inherent is aan de cloud.
Notitie
Een hybride cloud verwijst naar de combinatie van privécomputers en datacenters met cloudbronnen zoals Azure en heeft eigen overwegingen die verder gaan dan wat in de vorige discussie is besproken. Bovendien wordt in deze discussie uitgenomen dat er nieuwe toepassingen worden ontwikkeld; scenario's waarbij bestaande on-premises toepassingen opnieuw moeten worden gearchitect en gemigreerde, worden hier niet behandeld.
Notitie
U hoort misschien de termen cloudeigen en cloudtoepassingen, die vaak als hetzelfde worden besproken. Er zijn echter verschillen. Een cloudtoepassing is vaak een toepassing die als geheel wordt gemigreerd van een on-premises datacenter naar cloudservers. Vaak behouden dergelijke toepassingen hun oorspronkelijke structuur en worden ze eenvoudig geïmplementeerd op virtuele machines in de cloud (en dus in verschillende geografische regio's). Met een dergelijke migratie kan de toepassing worden geschaald om te voldoen aan de wereldwijde vraag zonder dat er nieuwe hardware in uw eigen datacenter moet worden ingericht. Schalen moet echter worden uitgevoerd op het niveau van de virtuele machine (of infrastructuur), zelfs als slechts één deel van de toepassing betere prestaties nodig heeft.
Een cloudeigen toepassing daarentegen wordt van meet af aan geschreven om te profiteren van de vele verschillende, onafhankelijk schaalbare services die beschikbaar zijn in een cloud zoals Azure. Cloudeigen toepassingen zijn losser gestructureerd (bijvoorbeeld met behulp van microservicearchitect architecturen), waarmee u de implementatie en schaalbaarheid voor elk onderdeel preciezer kunt configureren. Een dergelijke structuur vereenvoudigt onderhoud en vermindert vaak aanzienlijk de kosten omdat u alleen voor Premium-services hoeft te betalen wanneer dat nodig is.
Zie Cloudeigen toepassingen bouwen in Azure en Cloud Native .NET-toepassingenontwerpen voor Azure voor meer informatie, waarvan de principes van toepassing zijn op toepassingen die in elke taal zijn geschreven.