Automatisering
In software-gedefinieerde cloudinfrastructuur gebruiken teams verschillende hulpprogramma's en technieken om de infrastructuur in te richten, te configureren en te beheren. Naarmate uw teams zich ontwikkelen en groeien, kunnen ze overstappen van het gebruik van portals en handmatige inspanningen tot het gebruik van code en automatisering voor het inrichten, configureren en beheren van infrastructuur en services.
Overwegingen voor platformautomatisering
- Door de Methodologie Everything as Code (EaC) te implementeren, kunnen uw teams belangrijke voordelen ontgrendelen, een sterke ontwikkelingscultuur creëren en iedereen in elk team in staat stellen te controleren hoe en welke resources worden geïmplementeerd. EaC helpt uw platformteams ook om belangrijke ontwikkelprocedures te gebruiken die hun flexibiliteit en efficiëntie verbeteren. Uw teams kunnen wijzigingen bijhouden en bepalen welke worden verplaatst naar productie door code in opslagplaatsen te huisvesten en versiebeheersystemen te gebruiken om deze te beheren.
- Teams kunnen het principe van vier ogen volgen en peerprogrammering of peer review gebruiken om ervoor te zorgen dat codewijzigingen nooit alleen worden aangebracht. Peer programming en peer review verbeteren de codekwaliteit, laat teams de verantwoordelijkheid voor wijzigingen delen en teamkennis vergroten over wat er is overeengekomen en geïmplementeerd. Codebeoordeling is een fantastische manier voor teamleden om nieuwe technieken en methoden voor coderen en automatisering te leren.
- Teams moet versiebeheersystemen zoals Git gebruiken, samen met Git-opslagplaatsen, om peer review af te dwingen. Met Git-opslagplaatsen kunnen uw teams belangrijke vertakkingen definiëren en beveiligen met vertakkingsbeleid. U kunt beleid gebruiken om codewijzigingen voor deze vertakkingen te vereisen om te voldoen aan bepaalde criteria, zoals een minimum aantal goedkeuringen van teamleden, voordat ze kunnen samenvoegen in een beveiligde vertakking.
- Teams moeten de EaC-methodologie en het wijzigingsbeoordelingsproces verbinden met een CI/CD- proces (continue integratie en continue levering). Elke codewijziging moet automatisch een CI-proces activeren waarmee statische codeanalyse, validatie en testimplementaties worden uitgevoerd. CI zorgt ervoor dat ontwikkelaars hun code vroeg controleren (vaak aangeduid als snel mislukken of shift-left testen) op fouten die toekomstige problemen kunnen veroorzaken. Afhankelijk van welke vertakkingsstrategie uw team gebruikt, moeten veranderingen in elke belangrijke vertakking implementatie initiëren in verschillende omgevingen. Zodra wijzigingen zijn goedgekeurd en samengevoegd in
main
, implementeert het CD-proces deze wijzigingen in productie. Dit codebeheersysteem biedt uw team een enkele bron van waarheid voor wat er in elke omgeving draait. - Om ervoor te zorgen dat uw platform volledig zelfhersteld is en selfservice biedt voor uw workloadteams, moet uw platformteam werken om alles (ook wel Extreme Automationgenoemd) te automatiseren, van inrichting, configuratie en platformbeheer tot inrichting van landingszoneabonnementen voor workloadteams. Met extreme automatisering kan uw platformteam zich richten op het bieden van waarde in plaats van op het implementeren, configureren en beheren van uw platform. Extreme automatisering creëert ook een zelfverhogende cyclus die uw team meer tijd geeft om meer automatisering te bouwen.
- Naarmate uw platformteams operationele activiteiten automatiseren en menselijke interventie verminderen, moeten ze hun focus verplaatsen naar belangrijke taken die innovatie van workloadteams in Azure mogelijk maken en versnellen. Om dit te bereiken, moet uw platformteam meerdere cycli van bouwen en ontwikkelen doorlopen terwijl ze de hulpprogramma's, scripts en mogelijkheden van uw platform verbeteren.
- Er zijn meerdere opties beschikbaar om uw team te helpen aan de slag te gaan met hun Azure Landing Zone-implementatie. Deze opties zijn afhankelijk van de huidige mogelijkheden van uw team en kunnen groeien naarmate uw team zich ontwikkelt. Voor platformimplementatiekunt u kiezen tussen portal-, Bicep- of Terraform-ervaringen, afhankelijk van de IaC-ervaring (Infrastructure as Code) en de voorkeur voor hulpprogramma's van de respectieve teams.
- Nieuwe en opkomende platformteams die nog steeds kennis maken met IaC- en vertrouwd zijn met het gebruik van een portal voor het implementeren en beheren van resources, kunnen gebruikmaken van de Azure-landingszoneversneller. Deze accelerator ondersteunt teams die momenteel gebruikmaken van een ClickOps benadering. ClickOps is het proces voor het inrichten, configureren en beheren van resources door te klikken in portals, beheerconsoles en wizards. Met deze accelerator kan uw team de portal gebruiken als een eerste implementatieprogramma. Naarmate de ontwikkeling van platformengineering groeit, kan uw team geleidelijk Azure CLI, PowerShell of IaC opnemen.
- Met de AzOps-oplossing kunnen teams hun platformautomatiserings- en beheerprocedures ontwikkelen van ClickOps--gestuurd naar DevOps--capabel. Uw team kan overstappen van het gebruik van hun persoonlijke accounttoegang tot het gebruik van DevOps-principes en -procedures die alleen afhankelijk zijn van CI/CD met AzOps en IaC. Met AzOps kan uw team hun eigen architectuur gebruiken, de architectuur gebruiken die is geïmplementeerd door de Azure Landing Zone Portal-accelerator (na de eerste implementatie op basis van de portal, omdat AzOps-integratie geen deel uitmaakt van de ALZ-portal-ervaring), integreren met een brownfield-implementatie of aangepaste sjablonen (Bicep of ARM) gebruiken om uw platform te bouwen en operationeel te maken.
- Platformteams met gevestigde vaardigheden en mogelijkheden kunnen een gecodificeerde benadering aannemen die volgt op DevOps-principes en -procedures. Uw team moet zich sterk baseren op IaC en moderne ontwikkelprocedures, waarbij u geen Azure-toegang kunt gebruiken voor hun persoonlijke accounts en alle bewerkingen via uw CI/CD-pijplijn wilt uitvoeren. Uw team moet de op IaC-gebaseerde versnellers gebruiken, zoals ALZ-Bicep- of de Azure landing zones Terraform-module om deze overgang te versnellen.
- Op IaC gebaseerde accelerators hebben een beperkt beheerbereik. Nieuwe versies bieden meer mogelijkheden en meer mogelijkheden voor resourcebeheer. Als u een accelerator gebruikt, moet uw team een gelaagde benadering overwegen die begint met een accelerator en vervolgens een automatiseringslaag toevoegt. De automatiseringslaag biedt mogelijkheden die uw team nodig heeft om uw workloadteams volledig te ondersteunen met platformfuncties zoals domeincontrollerimplementatie voor verouderde toepassingen.
- Naarmate uw platformteam overstapt op een DevOps-benadering, moeten ze een proces opzetten voor het afhandelen van oplossingen voor noodgevallen. Ze kunnen Privileged Identity Management (PIM) in aanmerking komende machtigingen gebruiken om toegang te vragen om oplossingen uit te voeren en deze later weer terug te brengen naar code om configuratiedrift te beperken, of ze kunnen code gebruiken om een snelle oplossing te implementeren. Uw team moet altijd snelle oplossingen registreren in hun achterstand, zodat ze elke oplossing op een later moment kunnen aanpassen en hun technische schuld kunnen beperken. Te veel technische schulden leiden tot toekomstige vertraging, omdat sommige platformcode niet volledig wordt beoordeeld en niet voldoet aan richtlijnen en principes voor teamcodering.
- U kunt Azure Policies gebruiken om automatisering toe te voegen aan uw platform. Overweeg om IaC te gebruiken voor het implementeren en beheren van Azure-beleid, vaak aangeduid als PaC (Policy-as-Code). Met deze beleidsregels kunt u activiteiten zoals logboekverzameling automatiseren. Veel PaC-frameworks implementeren ook een uitzonderingsproces, dus plan uw workloadteams om uitzonderingen op beleid aan te vragen.
- Gebruik "Policy-driven-governance" om aan workloadteams te signaleren wanneer ze proberen resources te implementeren die niet voldoen aan een veiligheidscontrole. Overweeg om beleidsregels te implementeren met het
deny
effect voor deze situaties, waardoor uw workloadteams alles ook kunnen behandelen als code en configuratiedrift voorkomen waarbij code één ding declareert en beleid een instelling tijdens de implementatie heeft gewijzigd. Vermijd het gebruik vanmodify
-effecten, bijvoorbeeld als een workloadteam een opslagaccount implementeert metsupportOnlyHttpsTraffic = false
gedefinieerd in hun code, waarbij eenmodify
-beleid dat bij de implementatie verandert naartrue
om het aan de regels te houden. Dit leidt tot een afwijking van de code die wordt geïmplementeerd.
Aanbeveling voor het ontwerpen van platformautomatisering
- Volg een Alles als Code aanpak voor volledige transparantie en configuratiebeheer van het Azure-platform, documentatie, implementatie en testen.
- Gebruik versiebeheer om al uw codeopslagplaatsen te beheren, waaronder:
- Infrastructuur als code
- Beleid als code
- Configuratie als code
- Implementatie als code
- Documentatie als code
- Implementeer het principe van vier ogen en een proces voor peerprogrammering of peer-review om ervoor te zorgen dat alle codewijzigingen door uw team worden gecontroleerd voordat ze in productie worden geïmplementeerd.
- Gebruik een vertakkingsstrategie voor uw team en vertakkingsbeleidsregels instellen voor vertakkingen die u wilt beveiligen. Met vertakkingsbeleid moeten teams pull-aanvragen gebruiken om samenvoegingswijzigingen aan te brengen.
- Gebruik CI/CD- (continue integratie en continue levering) om het testen en implementeren van code in verschillende omgevingen te automatiseren.
- U kunt alles automatiseren, zoals het inrichten, configureren en beheren van uw platform en het inrichten van landingszoneabonnementen voor uw workloadteams.
- Gebruik een van de beschikbare accelerators die overeenkomen met de mogelijkheden van uw team om aan de slag te gaan met het implementeren van Azure Landing Zones.
- Plan een gelaagde implementatiebenadering te gebruiken om mogelijkheden toe te voegen die niet worden gedekt door een accelerator, maar die nodig zijn om uw workloadteams volledig te ondersteunen.
- Stel een proces in voor het gebruik van code om snelle oplossingen te implementeren. Registreer altijd snelle oplossingen in de backlog van uw team, zodat elke oplossing later kan worden herzien en u de technische schuld kunt beperken.
- Gebruik Infrastructure as Code om Azure Policies- te implementeren en te beheren (ook wel Beleid als code genoemd)
- Implementeer een uitzonderingsproces voor beleid. Plan voor uw workloadteams om uitzonderingen op beleid aan te vragen en wees klaar om de teams indien nodig te deblokkeren.
- Gebruik Beleidgestuurde governance om workloadteams te blokkeren wanneer ze resources proberen te implementeren die niet voldoen aan een beveiligingsbeheer. Dit helpt bij het verminderen van configuratiedrift, waarbij code een andere status declareert dan wat uiteindelijk wordt geïmplementeerd.
Meer informatie
- beleidgestuurde kaders
- Basisprincipes van de biceps
- Gemiddelde Biceps
- Geavanceerde Bicep
- Bicep en GitHub Actions gebruiken om Azure-resources te implementeren
- Bicep en Azure Pipelines gebruiken om Azure-resources te implementeren
- Uw Azure-omgeving beheren en beheren door uw infrastructuur te implementeren als code