Molnutveckling i Azure
Du är Python-utvecklare och är redo att utveckla molnprogram för Microsoft Azure. För att hjälpa dig att förbereda dig för en lång och produktiv karriär, går den här serien med tre artiklar in i det grundläggande molnets utveckling i Azure.
Vad är Azure? Datacenter, tjänster och resurser
Microsofts VD Satya Nadella kallar ofta Azure för "världens dator". En dator är, som du vet, en samling maskinvara som hanteras av ett operativsystem, som tillhandahåller en plattform där du kan skapa programvara som hjälper människor att tillämpa systemets beräkningskraft på ett stort antal uppgifter. (Det är därför vi använder ordet "program" för att beskriva sådan programvara.)
När det gäller Azure är datorns maskinvara inte en enskild dator, utan en enorm pool med virtualiserade serverdatorer som finns i dussintals enorma datacenter runtom i världen. Azures "operativsystem" består sedan av tjänster som dynamiskt allokerar och av allokerar olika delar av resurspoolen när program behöver dem. Dessa dynamiska allokeringar gör det möjligt för program att snabbt svara på ett antal föränderliga villkor, till exempel kundernas efterfrågan.
Varje allokering kallas en resursoch varje resurs tilldelas både en unik objektidentifierare (ett GUID) och en unik URL. Typer av resurser är virtuella datorer (PROCESSORkärnor och minne), lagring, databaser, virtuella nätverk, containerregister, containerorkestrerare, webbvärdar, AI- och analysmotorer och så vidare.

Resurser är byggstenarna i ett molnprogram. Molnutvecklingsprocessen börjar därför med att skapa en lämplig miljö där du kan distribuera de olika delarna av programmet. Enkelt uttryckt kan du inte distribuera kod eller data till Azure förrän du har allokerat och konfigurerat – som har etablerats– lämpliga målresurser.
Processen för att skapa miljön för ditt program innebär sedan att identifiera relevanta tjänster och resurstyper som ingår och sedan etablera dessa resurser. Etableringsprocessen är i princip hur du skapar det databehandlingssystem som du distribuerar ditt program till. Etablering är också den punkt då du börjar hyra dessa resurser från Azure.
Det finns hundratals olika typer av resurser som du har tillgång till, från grundläggande "infrastrukturresurser" som virtuella datorer, där du behåller fullständig kontroll och ansvar för programvaran du distribuerar till plattformstjänster på högre nivå som tillhandahåller en mer hanterad miljö där du bara behöver använda data och programkod.
Det kan vara svårt att hitta rätt tjänster för ditt program och balansera deras relativa kostnader, men det är också en del av det kreativa roliga med molnutveckling. Om du vill förstå de många alternativen kan du läsa utvecklarhandboken för Azure. Här ska vi gå vidare och diskutera hur du faktiskt arbetar med alla dessa tjänster och resurser.
Anteckning
Du har förmodligen sett och kanske har blivit mer van vid termerna IaaS (infrastruktur som en tjänst), PaaS (plattform som en tjänst) och så vidare. Som en tjänst-delen återspeglar verkligheten att du normalt inte har fysisk åtkomst till själva datacentren. I stället använder du verktyg som Azure Portal, Azure CLI eller Azures REST API för att etablera infrastrukturresurser, plattformsresurser och så vidare. Som en tjänstväntar Azure alltid på att ta emot dina begäranden.
I det här utvecklarcentret besparar vi dig jargong med IaaS, PaaS osv. eftersom "som en tjänst" bara är inbyggd i molnet från början!
Anteckning
Ett hybridmoln syftar på en kombination av privata datorer och datacenter med molnresurser som Azure och har egna överväganden utöver vad som tas upp i föregående diskussion. Dessutom förutsätter den här diskussionen ny programutveckling. scenarier som omfattar arkitekturarkitektur och migrering av befintliga lokala program omfattas inte här.
Anteckning
Du kanske hör termerna moln- och molnaktiverade program, som ofta diskuteras som samma sak. Det finns dock skillnader. Ett molnaktiverat program migreras ofta som helhet från ett lokalt datacenter till molnbaserade servrar. Ofta behåller sådana program sin ursprungliga struktur och distribueras helt enkelt till virtuella datorer i molnet (och därmed i geografiska regioner). En sådan migrering gör att programmet kan skalas för att möta global efterfrågan utan att behöva etablera ny maskinvara i ditt eget datacenter. Skalning måste dock göras på nivån för virtuell dator (eller infrastruktur), även om endast en del av programmet behöver bättre prestanda.
Ett molnbyggt program skrivs å andra sidan redan från början för att dra nytta av de många olika, oberoende skalbara tjänster som är tillgängliga i ett moln som Azure. Molnbaserade program är mer löst strukturerade (till exempel med mikrotjänstarkitekturer), vilket gör att du kan konfigurera distribution och skalning mer exakt för varje del. En sådan struktur förenklar underhållet och minskar ofta kostnaderna avsevärt eftersom du bara behöver betala för premiumtjänster när det behövs.
Mer information finns i Skapa molnbaserade program i Azure och Architecting Cloud Native .NET Applications for Azure, där principerna gäller för program som skrivits på alla språk.