Delen via


Een Azure-rekenoptie voor microservices kiezen

De term compute verwijst naar het hostingmodel voor de computing-resources waarmee uw toepassing wordt uitgevoerd. Dit artikel bevat beschrijvende richtlijnen om u te helpen bij het kiezen van een rekenplatform voor microservices. De selectie van uw microservice-rekenplatform kan afhankelijk zijn van meer genuanceerde vereisten.

Voor een microservicesarchitectuur zijn de volgende benaderingen populair:

  • Implementeer microservices op toegewezen rekenplatforms, meestal met behulp van een microservice-orchestrator.
  • Microservices implementeren op een serverloos platform.

Hoewel deze opties niet de enige zijn, zijn ze beide bewezen benaderingen voor het bouwen van microservices. Een toepassing kan beide benaderingen bevatten.

Een diagram met rekenopties voor microservices in Azure.

Een Visio-bestand van deze architectuur downloaden.

Een serverloos platform gebruiken

U kunt serverloze platforms gebruiken om microservices te implementeren in Azure Container Apps of Azure Functions. Zowel Container Apps als Functions bieden serverloze rekenopties die worden gefactureerd op basis van het aantal aanvragen in plaats van rekenverbruik. Beide platforms bieden u ook de mogelijkheid om de workloads op toegewezen capaciteit te hosten.

Microservices op basis van code implementeren

Als u uw microservices wilt implementeren als code in plaats van ze in een container te zetten, kunt u Azure Functions gebruiken. Zie de lijst met programmeer- en scripttalen die worden ondersteund door Functions voor meer informatie. Voor microservices die u in andere talen ontwikkelt, wilt u mogelijk een aangepaste handler implementeren in Functions of overwegen om de toepassing in een container te zetten.

Een GPU-model gebruiken

Als uw microservice bijvoorbeeld GPU-capaciteit nodig heeft om machine learning-taken uit te voeren, kunt u overwegen Om Container Apps of Azure Kubernetes Service (AKS) voor uw platform te kiezen. AKS kan elke GPU-modellen in Azure gebruiken en Container Apps biedt een subset gpu-modellen waaruit u kunt kiezen.

Service-orchestrators gebruiken

Een orchestrator verwerkt taken die betrekking hebben op het implementeren en beheren van een set services. Deze taken omvatten het plaatsen van services op knooppunten, het bewaken van de status van services, het opnieuw starten van beschadigde services, het verdelen van netwerkverkeer tussen service-exemplaren, servicedetectie, het schalen van het aantal exemplaren van een service en het toepassen van configuratie-updates. Populaire orchestrators zijn Kubernetes, Azure Service Fabric, DC/OS en Docker Swarm.

Houd op het Azure-platform rekening met de volgende opties:

  • Azure Kubernetes Service (AKS) is een beheerde Kubernetes-service. AKS richt Kubernetes in en toont de Kubernetes-API-eindpunten, hosts en beheert het Kubernetes-besturingsvlak en voert geautomatiseerde upgrades, geautomatiseerde patches, automatisch schalen en andere beheertaken uit. AKS biedt directe toegang tot Kubernetes-API's.

  • Container Apps is een beheerde service die is gebouwd op Kubernetes waarmee de complexiteit van containerindeling en andere beheertaken wordt geabstraheerd. Container Apps vereenvoudigt de implementatie en het beheer van toepassingen in containers en microservices in een serverloze omgeving en biedt de functies van Kubernetes. Container Apps is ideaal voor scenario's waarbij directe toegang tot Kubernetes-API's niet is vereist.

  • Service Fabric is een platform voor gedistribueerde systemen voor het verpakken, implementeren en beheren van microservices. U kunt microservices implementeren in Service Fabric als containers, als binaire uitvoerbare bestanden of als Reliable Services. Met behulp van het Reliable Services-programmeermodel kunnen services rechtstreeks gebruikmaken van Service Fabric-programmeer-API's om query's uit te voeren op het systeem, de status te rapporteren, meldingen te ontvangen over configuratie- en codewijzigingen en andere services te detecteren.

  • Gebruik Azure Red Hat OpenShift om volledig beheerde OpenShift-clusters te implementeren. Azure Red Hat OpenShift breidt Kubernetes uit. Azure Red Hat OpenShift wordt gezamenlijk ontworpen, beheerd en ondersteund door Red Hat en Microsoft.

  • Andere opties, zoals Docker Enterprise Edition, kunnen worden uitgevoerd in een cloud-computingomgeving in Azure. U vindt implementatiesjablonen in Azure Marketplace.

Kubernetes-API's gebruiken

Toegang tot Kubernetes-API's is vaak een beslissingsfactor wanneer u een rekenoptie kiest. AKS biedt directe toegang tot Kubernetes-API's, maar Container Apps niet. Container Apps verbergt de complexiteit van Kubernetes en vereenvoudigt de implementatie van containers. Als u uw microservice-implementatie ontwerpt om rechtstreeks te communiceren met Kubernetes-API's, is AKS mogelijk de juiste keuze.

Andere beslissingsfactoren

Er zijn mogelijk andere factoren die van invloed zijn op de selectie van uw microservice-rekenplatform. Deze factoren omvatten service-mesh-opties, platformschaalbaarheid en vaardighedensets die u mogelijk binnen de organisatie kunt gebruiken.

Overwegingen

Met deze overwegingen worden de pijlers van het Azure Well-Architected Framework geïmplementeerd. Dit is een set richtlijnen die kunnen worden gebruikt om de kwaliteit van een workload te verbeteren. Zie Microsoft Azure Well-Architected Framework voor meer informatie.

Betrouwbaarheid

Betrouwbaarheid zorgt ervoor dat uw toepassing kan voldoen aan de toezeggingen die u aan uw klanten hebt gedaan. Zie de controlelijst ontwerpbeoordeling voor betrouwbaarheid voor meer informatie.

Een van de belangrijkste pijlers van betrouwbaarheid is tolerantie. Het doel van tolerantie is om de workload te retourneren naar een volledig functionerende status nadat er een fout is opgetreden.

Als u Azure Functions als uw microservicecomputingplatform kiest, kunt u overwegen om het Functions Premium-abonnement of Azure-app Service-plan te implementeren in een zone-redundante configuratie. Zie Betrouwbaarheid in Functions voor meer informatie.

Als u AKS als uw microservicecomputingplatform kiest, kunt u de betrouwbaarheid van microservices verbeteren door een AKS-cluster te implementeren dat gebruikmaakt van beschikbaarheidszones, met behulp van de Standard- of Premium-laag voor Azure Kubernetes-clusters en door het minimale aantal pods en knooppunten te verhogen. Zie best practices voor implementatie en clusterbetrouwbaarheid voor AKS voor meer informatie.

Als u Container Apps als uw microservicecomputingplatform kiest, kunt u de betrouwbaarheid verbeteren met behulp van beschikbaarheidszones. Zie Betrouwbaarheid in Container Apps voor meer informatie.

Beveiliging

Beveiliging biedt garanties tegen opzettelijke aanvallen en misbruik van uw waardevolle gegevens en systemen. Zie de controlelijst ontwerpbeoordeling voor beveiliging voor meer informatie.

Als u Azure Functions als rekenplatform kiest om microservices te implementeren, zijn de principes voor het beveiligen van Azure Functions ook van toepassing op microservices.

Als u AKS als rekenplatform kiest om microservices te implementeren, biedt de AKS-beveiligingsbasislijnarchitectuur richtlijnen voor het beveiligen van het rekenplatform. Zie Geavanceerde AKS-microservicearchitectuur voor best practices voor microservicebeveiliging in AKS.

Als u Container Apps als rekenplatform kiest om microservices te implementeren, raadpleegt u de beveiligingsbasislijn voor Container Apps voor aanbevolen beveiligingsprocedures.

Kostenoptimalisatie

Kostenoptimalisatie gaat over manieren om onnodige uitgaven te verminderen en operationele efficiëntie te verbeteren. Zie de controlelijst ontwerpbeoordeling voor Kostenoptimalisatie voor meer informatie.

Wanneer u een orchestrator gebruikt, betaalt u voor de virtuele machines die in het cluster worden uitgevoerd. Wanneer u een serverloze toepassing gebruikt, betaalt u alleen voor de werkelijke rekenresources die u gebruikt. In beide gevallen moet u rekening houden met de kosten van extra services, zoals opslag, databases en berichtenservices.

Azure Functions, Container Apps en AKS bieden opties voor automatisch schalen. Container Apps en Functions bieden serverloze platforms waarbij de kosten zijn gebaseerd op verbruik en nul kunnen zijn. AKS biedt alleen toegewezen rekenopties.

Als u AKS als rekenplatform kiest om microservices te implementeren, moet u de aanbevolen procedures voor kostenoptimalisatie begrijpen. Zie Kosten optimaliseren in Azure Kubernetes Service voor meer informatie.

Als u Container Apps als uw microservices-rekenplatform kiest, moet u de verschillende factureringsmodellen begrijpen en beslissen over het implementatiemodel voor uw microservices op basis van uw workloadvereisten. Zie Facturering in Container Apps voor meer informatie.

Als u Azure Functions als uw microservices-rekenplatform kiest, moet u de verschillende factureringsmodellen begrijpen en beslissen over het Functions-plan op basis van uw workloadvereisten. Zie De kosten op basis van verbruik en de details van het Azure Functions-abonnement schatten voor meer informatie.

Operationele topprestaties

Operational Excellence behandelt de operationele processen die een toepassing implementeren en deze in productie houden. Zie de controlelijst ontwerpbeoordeling voor Operational Excellence voor meer informatie.

U kunt alle rekenopties voor microservices implementeren die in dit artikel op een geautomatiseerde manier worden beschreven met behulp van Terraform, Bicep en andere scripttalen. U kunt Application Insights, Azure Monitor en andere bewakingsoplossingen gebruiken om deze rekenplatforms en microservices te bewaken.

Houd rekening met de volgende factoren wanneer u kiest tussen een orchestrator-benadering en een serverloze benadering:

  • Flexibiliteit en controle: Een orchestrator biedt u controle over het configureren en beheren van uw services en het cluster. De afweging is complexer. Met een serverloze architectuur geeft u enige mate van controle op, omdat deze details worden geabstraheerd.

  • Draagbaarheid: alle orchestrators die in dit artikel worden vermeld, waaronder Kubernetes, DC/OS, Docker Swarm en Service Fabric, kunnen on-premises of in meerdere openbare clouds worden uitgevoerd.

  • Toepassingsintegratie: het kan lastig zijn om een complexe toepassing te bouwen die gebruikmaakt van een serverloze architectuur, omdat u veel kleine, onafhankelijke functies moet coördineren, implementeren en beheren. Een optie in Azure is het gebruik van Azure Logic Apps om een set Azure-functies te coördineren. Zie Een functie maken die kan worden geïntegreerd met Logic Apps voor een voorbeeld van deze benadering.

Volgende stap