Waarom implementatiestacks gebruiken?
U evalueert of implementatiestacks de juiste functies kunnen bieden voor het beheer van de levenscyclus van resources. U hebt enige tijd besteed aan het leren over de functies van implementatiestacks en hoe u deze kunt gebruiken om uw toepassingen en Azure-resources te beheren. U wilt meer informatie over waarom u rekening moet houden met implementatiestacks en de algemene voordelen ervan.
In deze les krijgt u meer informatie over de voordelen van implementatiestacks.
Voordelen van implementatiestacks
Er zijn veel voordelen die implementatiestacks kunnen toevoegen aan uw resourceinrichtingsproces, waaronder:
- Vereenvoudigde inrichting
- Niet-geautoriseerde wijzigingen voorkomen
- Betrouwbare opschoning van resources
- Gestandaardiseerde sjablonen
- Bestaande processen verbeteren
Vereenvoudigde inrichting
Overweeg een toepassing die moet worden geïmplementeerd in meerdere resourcegroepen voor meerdere abonnementen. In een standaardimplementatie is het nodig om meerdere create-bewerkingen uit te voeren binnen het bereik van elke resourcegroep. Uw implementatiepijplijn moet zijn ontworpen om resourceafhankelijkheden en implementatievolgorde af te handelen.
Met implementatiestacks kunt u de toepassing met één opdracht implementeren. In dit voorbeeld worden alle resources op het moment van uitvoering geïmplementeerd in de juiste abonnementen en resourcegroepen wanneer u het bereik van de implementatiestack op het niveau van de beheergroep wijzigt. Updates voor de toepassing worden op dezelfde manier verwerkt via één implementatieopdracht.
Dit proces vermindert het aantal bewerkingen dat nodig is om de toepassing te implementeren of te wijzigen.
Niet-geautoriseerde wijzigingen voorkomen
Implementatiestacks bieden een extra beveiligingslaag en kaders waarmee onbevoegde wijzigingen in uw Azure-resources worden voorkomen.
Wanneer u een implementatiestack maakt, kunt u een machtiging opgeven die wordt toegepast op de resources die worden beheerd door de stack. Deze machtigingen, ook wel instellingen voor weigeren genoemd, worden gebruikt om te voorkomen dat onbevoegde gebruikers worden gewijzigd of verwijderd.
Instellingen voor weigeren klinken mogelijk vergelijkbaar met op rollen gebaseerd toegangsbeheer (RBAC) van Azure en Azure-vergrendelingen. RBAC wordt gebruikt om specifieke rollen toe te wijzen aan specifieke gebruikers binnen een specifiek bereik. Bijvoorbeeld het toewijzen van de rol inzender aan een gebruiker binnen het bereik van de resourcegroep. Vergrendelingen worden gebruikt om te voorkomen dat resources in specifieke bereiken worden gewijzigd of verwijderd, ongeacht de gebruiker die de actie uitvoert. Als u bijvoorbeeld een alleen-lezenvergrendeling in het abonnementsbereik plaatst, voorkomt u dat alle resources worden gewijzigd of verwijderd, zelfs als de gebruiker de RBAC-machtiging heeft om dit te doen.
Met de instellingen voor het weigeren van implementatiestacks kunt u besturingselementen implementeren voor een verzameling resources binnen bereiken, waardoor RBAC-toewijzingen of vergrendelingen die mogelijk aanwezig zijn, worden vervangen.
Betrouwbare opschoning van resources
Overweeg een ontwikkelomgeving voor een toepassing die is geïmplementeerd in meerdere resourcegroepen in een abonnement. Als u de omgeving wilt verwijderen en alle resources wilt verwijderen, moet u meerdere verwijderbewerkingen uitvoeren voor de resourcegroepen en resources. Als er afhankelijkheden tussen resources bestaan, is het mogelijk dat de verwijderbewerking mislukt. Resources die niet op volgorde zijn verwijderd, kunnen er ook voor zorgen dat de verwijderbewerking mislukt.
Met implementatiestacks kunt u de stack en alle bijbehorende resources verwijderen via één API-aanroep, zonder dat u afhankelijkheden hoeft te begrijpen. Met deze enkele bewerking worden de resources op een betrouwbare manier verwijderd en wordt de verwijderingssnelheid verbeterd.
Een ander voordeel van het verwijderen van resources die worden beheerd door een stack, is het potentieel voor kostenbesparingen. Het verwijderen van een toepassing en de bijbehorende resources die niet worden beheerd door een implementatiestack, is vaak een handmatige inspanning die gevoelig is voor fouten. Het is mogelijk om per ongeluk bepaalde resources te verwijderen, waardoor er kosten in rekening worden gebracht. Implementatiestacks lossen dit probleem op als een hulpprogramma voor kostenbeheer, met name bij het omgaan met tijdelijke omgevingen.
Wanneer u een implementatiestack verwijdert, kunt u de actionOnUnmanage
eigenschap gebruiken om te bepalen hoe Azure de resources, resourcegroepen en beheergroepen in de stack verwerkt. Azure kan de resources, resourcegroepen en beheergroepen verwijderen, of ze loskoppelen , wat betekent dat de resources niet worden verwijderd, maar niet meer worden beheerd door de stack.
Gestandaardiseerd proces en sjablonen
Het maken en implementeren van een implementatiestack en de bijbehorende resources is bijna identiek aan een standaard Azure-implementatie. Voorbeeld:
De Azure CLI-opdracht voor het implementeren van een Bicep-bestand in een resourcegroep is:
az deployment group create \
--resource-group rg-depositsApplication \
--template-file ./main.bicep
De Azure CLI-opdracht voor het maken van een implementatiestack binnen het bereik van de resourcegroep is:
az stack group create \
--name stack-deposits \
--resource-group rg-depositsApplication \
--template-file ./main.bicep \
--action-on-unmanage detachAll \
--deny-settings-mode none
Implementatiestacks ondersteunen het gebruik van Bicep-bestanden, ARM JSON-sjablonen of sjabloonspecificaties voor het definiëren van resources in een stack. Wanneer u een implementatiestack implementeert met behulp van de Azure CLI of Azure PowerShell, kunt u verwijzen naar het specifieke sjabloonbestand (Bicep-bestand of ARM JSON-sjabloon) of sjabloonspecificatie. Het is niet nodig om te wijzigen hoe u uw resources definieert.
Bestaande processen verbeteren
Als u infrastructuur al als code gebruikt om de implementaties van uw resources naar Azure te beheren, hebt u met implementatiestacks meer controle over het proces. Zoals besproken in de vorige sectie, verschilt het proces voor het maken van een implementatiestack niet erg van het maken van een implementatie op basis van een resourcegroep. De mogelijkheid om te implementeren in beheergroepen, abonnementen en resourcegroepen met één opdracht is veel eenvoudiger met implementatiestacks. Resourcebeveiliging maakt nu deel uit van uw implementatieproces met stacks.