Wat is Azure Resource Manager?
U hebt enige tijd besteed aan het leren van de voordelen van infrastructuur als code en de verschillende benaderingen die beschikbaar zijn. Uw bedrijf groeit in een snel tempo en uw team weet dat het een aanzienlijk aantal resources in Azure gaat implementeren. Als team hebt u besloten dat declaratieve infrastructuur als code de juiste benadering is voor het inrichten van resources. Het team wil geen scripts onderhouden die elke implementatiestap vermelden. Voordat u begint met het bouwen van uw eerste sjabloon, moet u begrijpen hoe Azure Resource Manager werkt. Als u de typen sjablonen onderzoekt die beschikbaar zijn voor gebruik met Azure, kunt u de volgende stappen in uw strategie voor infrastructuur als code bepalen.
In deze les krijgt u informatie over Resource Manager en de twee typen Resource Manager-sjablonen.
Concepten van Azure Resource Manager
Azure Resource Manager is de service die wordt gebruikt voor het implementeren en beheren van resources in Azure. U kunt Resource Manager gebruiken om resources in uw Azure-abonnement te maken, bij te werken en te verwijderen. U kunt communiceren met Resource Manager met behulp van veel hulpprogramma's, waaronder Azure Portal. Resource Manager biedt ook een reeks andere functies, zoals toegangsbeheer, controle en taggen, om uw resources na de implementatie te beheren.
Terminologie
Wanneer u met Resource Manager begint met uw cloudtraject, is het belangrijk om enkele termen en concepten te begrijpen:
Resource: Een beheerbaar item dat beschikbaar is op het Azure-platform. Virtuele netwerken, virtuele machines, opslagaccounts, web-apps en databases zijn voorbeelden van resources.
Resourcegroep: Een logische container die gerelateerde resources voor een Azure-oplossing bevat. De resourcegroep bevat resources die u als groep wilt beheren. De meeste Azure-resources bevinden zich in een resourcegroep. U bepaalt welke resources deel uitmaken van een resourcegroep op basis van wat het meest zinvol is voor uw oplossing.
Notitie
Een klein aantal resources is niet opgenomen in resourcegroepen. Deze resourcetypen zijn bedoeld voor specifieke doeleinden, zoals het beheren van toegangsbeheer en het afdwingen van beleid. Meer informatie over deze resources vindt u in een latere module.
Abonnement: Een logische container en factureringsgrens voor uw resources en resourcegroepen. Elke Azure-resource en -resourcegroep is gekoppeld aan slechts één abonnement.
Beheergroep: Een logische container die u gebruikt om meer dan één abonnement te beheren. U kunt een hiërarchie van beheergroepen, abonnementen, resourcegroepen en bronnen definiëren om toegang, beleid en naleving op efficiënte wijze te beheren via overname.
Azure Resource Manager-sjabloon (ARM-sjabloon): een sjabloonbestand dat een of meer resources definieert die moeten worden geïmplementeerd in een resourcegroep, abonnement, beheergroep of tenant. U kunt de sjabloon gebruiken om de resources op een consistente en herhaalbare manier te implementeren. Er zijn twee typen ARM-sjabloonbestanden: JSON en Bicep. Deze module richt zich op Bicep.
Vergoedingen
Resource Manager biedt veel voordelen en mogelijkheden met betrekking tot het inrichten van resources als code voor infrastructuur:
- U kunt de resources in uw oplossing implementeren, beheren en bewaken als een groep in plaats van afzonderlijk.
- U kunt uw oplossing opnieuw implementeren gedurende de ontwikkelingslevenscyclus en erop vertrouwen dat uw resources in een consistente status worden geïmplementeerd.
- U kunt uw infrastructuur beheren via declaratieve sjablonen in plaats van scripts te gebruiken.
- U kunt resourceafhankelijkheden opgeven om ervoor te zorgen dat resources in de juiste volgorde worden geïmplementeerd.
Bewerkingen: Besturingsvlak en gegevensvlak
U kunt twee typen bewerkingen uitvoeren in Azure: besturingsvlakbewerkingen en gegevensvlakbewerkingen. Gebruik het besturingsvlak om de resources in uw abonnement te beheren. Gebruik het gegevensvlak voor toegang tot functies die beschikbaar worden gesteld door een resource.
U gebruikt bijvoorbeeld een besturingsvlakbewerking om een virtuele machine te maken, maar u gebruikt een gegevensvlakbewerking om verbinding te maken met de virtuele machine met behulp van Remote Desktop Protocol (RDP).
Besturingsvlak
Wanneer u een aanvraag verzendt van een van de Azure-hulpprogramma's, API's of Software Development Kits (SDK's), ontvangt, verifieert en autoriseert Resource Manager de aanvraag. Vervolgens wordt de aanvraag verzonden naar de Azure-resourceprovider, die de aangevraagde actie onderneemt. Omdat alle aanvragen worden verwerkt via dezelfde API, ziet u consistente resultaten en mogelijkheden in alle verschillende hulpprogramma's die beschikbaar zijn in Azure.
In de volgende afbeelding ziet u de rol die Resource Manager speelt bij het verwerken van Azure-aanvragen:
Alle besturingsvlakbewerkingsaanvragen worden verzonden naar een Resource Manager-URL. De bewerking voor het maken of bijwerken van virtuele machines is bijvoorbeeld een besturingsvlakbewerking. Dit is de aanvraag-URL voor deze bewerking:
PUT https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}?api-version=2022-08-01
Het besturingsvlak begrijpt welke resources moeten worden gemaakt en welke resources al bestaan. Resource Manager begrijpt het verschil tussen deze aanvragen en maakt geen identieke resources of verwijdert bestaande resources, hoewel er manieren zijn om dit gedrag te overschrijven.
Gegevenslaag
Wanneer een gegevensvlakbewerking wordt gestart, worden de aanvragen verzonden naar een specifiek eindpunt in uw Azure-abonnement. De bewerking Taal detecteren in Azure AI-services is bijvoorbeeld een gegevensvlakbewerking omdat de aanvraag-URL:
POST https://eastus.api.cognitive.microsoft.com/text/analytics/v2.0/languages
Resource Manager-functies zoals toegangsbeheer en vergrendelingen zijn niet altijd van toepassing op bewerkingen in het gegevensvlak. Een gebruiker heeft bijvoorbeeld mogelijk geen machtigingen om een virtuele machine te beheren met behulp van het besturingsvlak, maar de gebruiker kan zich aanmelden bij het besturingssysteem.
Wat zijn ARM-sjablonen?
Azure Resource Manager-sjablonen zijn bestanden die de infrastructuur en configuratie voor uw implementatie definiëren. Wanneer u een ARM-sjabloon schrijft, neemt u een declaratieve benadering voor het inrichten van resources. Deze sjablonen beschrijven elke resource in de implementatie, maar ze beschrijven niet hoe de resources moeten worden geïmplementeerd. Wanneer u een sjabloon verzendt naar Resource Manager voor implementatie, kan het besturingsvlak de gedefinieerde resources op een georganiseerde en consistente manier implementeren. In de vorige les hebt u geleerd over de verschillen tussen imperatieve code en declaratieve code.
Waarom ARM-sjablonen gebruiken?
Er zijn veel voordelen voor het gebruik van ARM-sjablonen, JSON of Bicep, voor het inrichten van resources.
Herhaalbare resultaten: ARM-sjablonen zijn idempotent, wat betekent dat u dezelfde sjabloon herhaaldelijk kunt implementeren en hetzelfde resultaat kunt krijgen. Met de sjabloon worden geen resources gedupliceerd.
Indeling: wanneer een sjabloonimplementatie wordt verzonden naar Resource Manager, worden de resources in de sjabloon parallel geïmplementeerd. Met dit proces kunnen implementaties sneller worden voltooid. Resource Manager organiseert deze implementaties in de juiste volgorde als de ene resource afhankelijk is van een andere.
Preview: Met het what-if-hulpprogramma, dat beschikbaar is in Azure PowerShell en Azure CLI, kunt u een voorbeeld van wijzigingen in uw omgeving bekijken voordat de sjabloon wordt geïmplementeerd. Dit hulpprogramma bevat informatie over alle creaties, wijzigingen en verwijderingen die door uw sjabloon worden gemaakt.
Testen en valideren: u kunt hulpprogramma's zoals bicep linter gebruiken om de kwaliteit van uw sjablonen te controleren vóór de implementatie. ARM-sjablonen die naar Resource Manager worden verzonden, worden gevalideerd vóór het implementatieproces. Deze validatie waarschuwt u voor eventuele fouten in uw sjabloon voordat resources worden ingericht.
Modulariteit: U kunt uw sjablonen opsplitsen in kleinere onderdelen en deze aan elkaar koppelen tijdens de implementatie.
CI/CD-integratie: uw ARM-sjablonen kunnen worden geïntegreerd in meerdere CI/CD-hulpprogramma's, zoals Azure DevOps en GitHub Actions. U kunt deze hulpprogramma's gebruiken om sjablonen te versien via broncodebeheer en buildreleasepijplijnen.
Uitbreidbaarheid: Met implementatiescripts kunt u Bash- of PowerShell-scripts uitvoeren vanuit uw ARM-sjablonen. Met deze scripts worden taken uitgevoerd, zoals bewerkingen in het gegevensvlak, tijdens de implementatie. Via uitbreidbaarheid kunt u één ARM-sjabloon gebruiken om een volledige oplossing te implementeren.
JSON- en Bicep-sjablonen
Er zijn momenteel twee typen ARM-sjablonen beschikbaar voor gebruik: JSON-sjablonen en Bicep-sjablonen. JavaScript Object Notation (JSON) is een open-standaardbestandsindeling die meerdere talen kunnen gebruiken. Bicep is een nieuwe domeinspecifieke taal die onlangs is ontwikkeld voor het ontwerpen van ARM-sjablonen met behulp van een eenvoudigere syntaxis. U kunt een van beide sjabloonindelingen gebruiken voor uw ARM-sjablonen en resource-implementaties.