Välj en Azure-beräkningstjänst för ditt program

Azure erbjuder ett antal olika sätt att vara värd för din programkod. Termen beräkning är värdmodellen för de beräkningsresurser som ditt program körs på. Följande flödesschema hjälper dig att välja en beräkningstjänst för ditt program.

Om ditt program består av flera arbetsbelastningar ska du utvärdera varje arbetsbelastning separat. En fullständig lösning kan innehålla två eller flera beräkningstjänster.

Välj en kandidattjänst

Använd följande flödesschema för att välja en kandidatbearbetningstjänst.

Beslutsträd för Azure-beräkningstjänster

Definitioner:

  • "Lift and shift" är en strategi för att migrera en arbetsbelastning till molnet utan att göra om programmet eller göra kodändringar. Kallas även värd för. Mer information finns i Azures migrerings- och moderniseringscenter.
  • Molnoptimerad är en strategi för att migrera till molnet genom att omstrukturera ett program för att dra nytta av molnbaserade funktioner.

Utdata från det här flödesschemat är en startpunkt att överväga. Utför sedan en mer detaljerad utvärdering av tjänsten för att se om den uppfyller dina behov.

Den här artikeln innehåller flera tabeller som kan hjälpa dig att fatta dessa kompromissbeslut. Baserat på den här analysen kanske du upptäcker att den första kandidaten inte är lämplig för just ditt program eller din arbetsbelastning. I så fall expanderar du analysen så att den innehåller andra beräkningstjänster.

Anteckning

Läs mer om att granska dina beräkningskrav för molnanpassning i Microsoft Cloud Adoption Framework för Azure.

Förstå de grundläggande funktionerna

Om du inte är bekant med den Azure-tjänst som valdes i föregående steg kan du läsa översiktsdokumentationen för att förstå grunderna i tjänsten.

  • App Service. En hanterad tjänst som fungerar som värd för webbappar, serverdel för mobilappar, RESTful-API:er eller automatiserade affärsprocesser.
  • Azure Spring Cloud. En hanterad tjänst som utformats och optimerats för Spring Boot appar.
  • Azure Kubernetes Service (AKS). En hanterad Kubernetes-tjänst för att köra program i containrar.
  • Batch. En hanterad tjänst för att köra storskaliga parallella program och HPC-program (databehandling med höga prestanda)
  • Container Instances. Det snabbaste och enklaste sättet att köra en container i Azure, utan att behöva etablera några virtuella datorer och utan att behöva använda en tjänst på högre nivå.
  • Functions. En hanterad FaaS-tjänst.
  • Service Fabric. En distribuerad systemplattform som kan köras i många miljöer, inklusive Azure eller lokalt.
  • Virtuella datorer. Distribuera och hantera virtuella datorer i ett virtuellt Azure-nätverk.

Förstå värdmodellerna

Molntjänster, inklusive Azure-tjänster, är vanligtvis indela i tre kategorier: IaaS, PaaS eller FaaS. (Det finns även SaaS, programvara som en tjänst, som inte omfattas av den här artikeln.) Det är bra att förstå skillnaderna.

Med infrastruktur som en tjänst (IaaS) kan du etablera enskilda virtuella datorer tillsammans med de associerade nätverks- och lagringskomponenterna. Sedan distribuerar du vilken programvara och vilka appar du vill på de virtuella datorerna. Den här modellen är närmast en traditionell lokal miljö, förutom att Microsoft hanterar infrastrukturen. Du kan fortfarande hantera enskilda virtuella datorer.

Med Platform-as-a-Service (PaaS) får du åtkomst till en hanterad värdmiljö där du kan distribuera programmet utan att behöva hantera virtuella datorer eller nätverksresurser. Azure App Service är en PaaS-tjänst.

Functions-as-a-Service (FaaS) tar det hela ett steg längre, så att du inte behöver oroa dig för värdmiljön. I en FaaS-modell distribuerar du helt enkelt koden så kör tjänsten den automatiskt. Azure Functions är en FaaS-tjänst.

Anteckning

Azure Functions är ett serverlöst beräkningserbjudande i Azure. Du kan läsa Välja rätt integrerings- och automatiseringstjänster i Azure för att veta hur den här tjänsten kan jämföras med andra serverlösa Azure-erbjudanden, till exempel Logic Apps som tillhandahåller serverlösa arbetsflöden.

Det finns ett spektrum från IaaS till ren PaaS. Virtuella Azure-datorer kan till exempel autoskala med hjälp av VM-skalningsuppsättningar. Den här funktionen för automatisk skalning är inte strikt PaaS, men det är den typ av hanteringsfunktion som finns i PaaS-tjänster.

I allmänhet finns det en kompromiss mellan kontroll och enkel hantering. IaaS ger mest kontroll, flexibilitet och portabilitet, men du måste etablera, konfigurera och hantera de virtuella datorer och nätverkskomponenter som du skapar. FaaS-tjänster hanterar automatiskt nästan alla aspekter av att köra ett program. PaaS-tjänster ligger någonstans mittemellan.

Kriterie Virtual Machines App Service Azure Spring Cloud Service Fabric Azure Functions Azure Kubernetes Service Container Instances Azure Batch
Programmets sammansättning Oberoende Program, containrar Program, mikrotjänster Tjänster, körbara gästfiler, containrar Functions Containers Containers Schemalagda jobb
Densitet Oberoende Flera appar per instans via App Service-planer Flera appar per tjänstinstans Flera tjänster per virtuell dator Serverlös 1 Flera containrar per nod Inga dedikerade instanser Flera appar per virtuell dator
Minsta antalet noder 1 2 1 2 5 3 Serverlös 1 3 3 Inga dedikerade noder 1 4
Tillståndshantering Tillståndslös eller tillståndskänslig Tillståndslös Tillståndslös Tillståndslös eller tillståndskänslig Tillståndslös Tillståndslös eller tillståndskänslig Tillståndslös Tillståndslös
Webbvärd Oberoende Inbyggd Inbyggd Oberoende Inte tillämpligt Oberoende Oberoende No
Kan distribueras till dedikerade virtuella nätverk? Stöds Stöds5 Stöds Stöds Stöds 5 Stöds Stöds Stöds
Hybridanslutning Stöds Stöds 6 Stöds Stöds Stöds 7 Stöds Stöds inte Stöds

Kommentarer

  1. Om du använder Förbrukningsplan. Kör funktioner på virtuella datorer som har allokerats för din App Service-plan, om du använder App Service-plan. Se Välja rätt tjänstplan för Azure Functions.
  2. Högre SLA med två eller flera instanser.
  3. Rekommenderas för produktionsmiljöer.
  4. Kan skala ned till noll efter att jobbet har slutförts.
  5. Kräver App Service Environment (ASE).
  6. Använd Azure App Service hybridanslutningar.
  7. Kräver App Service plan eller Azure Functions Premium plan.

DevOps

Kriterie Virtual Machines App Service Azure Spring Cloud Service Fabric Azure Functions Azure Kubernetes Service Container Instances Azure Batch
Lokal felsökning Oberoende IIS Express, andra 1 Visual Studio Code, Intellij, Eclipse Lokalt nodkluster Visual Studio eller Azure Functions CLI Minikube, andra Körmiljö för lokal container Stöds inte
Programmeringsmodell Oberoende Webb- och API-program, WebJobs för bakgrundsaktiviteter Spring Boot, Steeltoe Körbara gästfiler, tjänstemodell, aktörmodell, containrar Funktioner med utlösare Oberoende Oberoende Kommandoradsprogram
Programuppdatering Inget inbyggt stöd Distributionsfack Löpande uppgradering, blågrön distribution Löpande uppgradering (per tjänst) Distributionsfack Löpande uppdatering Inte tillämpligt

Kommentarer

  1. Alternativ inkluderar IIS Express för ASP.NET eller node.js (iisnode) PHP-webbserver: Azure-verktyg för IntelliJ, Azure-verktyg för Eclipse. App Service har också stöd för fjärrfelsökning av distribuerad webbapp.
  2. Se Resource Manager, regioner, API-versioner och scheman.

Skalbarhet

Kriterie Virtual Machines App Service Azure Spring Cloud Service Fabric Azure Functions Azure Kubernetes Service Container Instances Azure Batch
Automatisk skalning Skalningsuppsättningar för virtuella datorer Inbyggd tjänst Inbyggd tjänst Skalningsuppsättningar för virtuella datorer Inbyggd tjänst Automatisk poddskalning 1, automatisk klusterskalning 2 Stöds inte Ej tillämpligt
Lastbalanserare Azure Load Balancer Integrerat Integrerat Azure Load Balancer Integrerat Azure Load Balancer eller Application Gateway Inget inbyggt stöd Azure Load Balancer
Skalningsgräns3 Plattformsavbildning: 1 000 noder per skalningsuppsättning, anpassad avbildning: 600 noder per skalningsuppsättning 30 instanser, 100 med App Service-miljön 500 appinstanser i Standard 100 noder per skalningsuppsättning 200 instanser per funktionsapp 100 noder per kluster (standardgräns) 20 containergrupper per prenumeration (standardgräns). 20 kärngräns (standardgräns).

Kommentarer

  1. Se Autoskala poddar.
  2. Se Skala ett kluster automatiskt för att uppfylla programkrav på Azure Kubernetes Service (AKS).
  3. Se Azure-prenumeration och tjänstbegränsningar, kvoter och begränsningar.

Tillgänglighet

Kriterie Virtual Machines App Service Azure Spring Cloud Service Fabric Azure Functions Azure Kubernetes Service Container Instances Azure Batch
SLA SLA för Virtual Machines SLA för App Service SLA för Azure Spring Cloud SLA för Service Fabric SLA för Functions SLA för AKS Serviceavtal för Container Instances SLA för Azure Batch
Redundans i flera regioner Traffic Manager Traffic Manager Traffic Manager, kluster för flera regioner Azure Front Door Traffic Manager Stöds inte Stöds inte

Guidad utbildning om tjänstgarantier finns i Core Cloud Services – Azure-arkitektur och tjänstgarantier.

Säkerhet

Granska och förstå tillgängliga säkerhetskontroller och synlighet för varje tjänst

Andra kriterier

Kriterie Virtual Machines App Service App-Spring Cloud Service Fabric Azure Functions Azure Kubernetes Service Container Instances Azure Batch
SSL Konfigurerad i virtuell dator Stöds Stöds Stöds Stöds Ingress-kontrollant Använda sidovagnscontainer Stöds
Cost Windows, Linux App Service -priser Azure Spring Cloud prissättning Prissättning för Service Fabric Prissättning för Azure Functions AKS-priser Container Instances prissättning Prissättning för Azure Batch
Lämpliga arkitekturstilar N-nivå, Big Compute (HPC) Web-Queue-Worker, N-tier Spring Boot, Mikrotjänster Mikrotjänster, händelsedriven arkitektur Mikrotjänster, händelsedriven arkitektur Mikrotjänster, händelsedriven arkitektur Mikrotjänster,aktivitetsautomatisering, batchjobb Big Compute (HPC)

Utdata från det här flödesschemat är en startpunkt att överväga. Utför sedan en mer detaljerad utvärdering av tjänsten för att se om den uppfyller dina behov.

Ta hänsyn till gränser och kostnader

Utför en mer detaljerad utvärdering och titta på följande aspekter av tjänsten:

Nästa steg