DevOps overwegingen
Dit artikel bevat overwegingen en aanbevelingen voor DevOps in Azure-landingszones.
Wat is DevOps?
DevOps is de samenvoeging van mensen, processen en technologie die continue waarde biedt voor ontwikkeling (dev) en bewerkingen (ops). De DevOps-benadering moedigt teamsamenwerking aan die herhaalbare processen creëert om organisaties efficiënt en op schaal te helpen werken.
In de context van Azure-landingszones wordt DevOps het framework dat uw team (of teams) begeleidt die verantwoordelijk is voor het levenscyclusbeheer van uw hele Azure-landingszones op gebieden zoals:
- Zelf organiseren en grenzen definiëren met andere teams om het juiste evenwicht tussen autonomie en governance te bereiken
- Architectuurontwerp voor Azure-landingszones continu ontwikkelen (Conway's Law)
- De implementatie van de ontworpen architectuur plannen, prioriteren en herhalen
- Versiebeheer, continue integratie en continue implementatie implementeren voor Azure-landingszonecode
- Hoe u incidenten kunt gebruiken en erop kunt reageren voor systemen en platforms die u eigenaar bent
- Het automatiseringsniveau dat u toepast op het inrichten van azure-landingszones en zelfherstel
- Samenwerken met andere teams in uw organisatie op een flexibele, resultaatgerichte manier
- Een generatieve cultuur van beveiliging, kwaliteit, gebruikerscentriteit en continue training creëren
De beslissingen die u neemt bij het beoordelen van cloudbedrijfsmodellen, kunnen van invloed zijn op de wijze waarop u uw DevOps-framework gebruikt.
Overwegingen voor DevOps-ontwerp
Definieer uw DevOps-framework of stem het af op de DevOps- en cloudimplementatiestrategie van uw organisatie. Neem de definitie van DevOps en de principes en procedures op die uw team moet volgen. Zorg ervoor dat u uw DevOps-strategie verbindt met uw bedrijfsstrategie.
Stel metrische gegevens vast waarmee uw team de DevOps-prestaties kan verbeteren. Teams met hoge prestaties gebruiken een hypothese om hun ideeën te testen, te meten om te zien hoe de hypothese werkt en vervolgens zo nodig wijzigingen aan te brengen. De uiteindelijke intentie van DevOps is het verbeteren van aspecten zoals implementatiefrequentie, gemiddelde tijd om een wijziging toe te passen of tijd om een gedegradeerde service te herstellen. U moet al deze metrische gegevens ontwerpen om uiteindelijk invloed te hebben op de algehele bedrijfsprestaties.
Bepaal de DevOps-procedures die uw team moet implementeren eerst op basis van hun huidige vaardigheden en ontwerp een roadmap om incrementeel nieuwe procedures toe te passen die uw team helpen hun DevOps-metrische gegevens te verbeteren. Investeren in technische mogelijkheden en resources is essentieel.
Bepaal de DevOps-hulpprogrammaketen die uw team moet gebruiken om de DevOps-procedures te implementeren. Zorg ervoor dat de hulpprogramma's consistent zijn met uw algehele DevOps-strategie om scenario's van heterogene DevOps-ecosystemen te voorkomen die de complexiteit van Azure-landingszone- of workloadimplementaties verhogen.
Evalueer het effect dat uw geïmplementeerde DevOps-procedures en DevOps-hulpprogramma's hebben op het ontwerp van uw Azure-landingszones.
Maak een gereedheidsplan om de vaardigheden van uw team continu te vergroten. Een dekentoepassing van een DevOps-model brengt niet direct geschikte DevOps-teams tot stand.
Bepaal de teamtopologie die het beste overeenkomt met de DevOps-strategie en het operationele cloudmodel van uw organisatie, en stel duidelijke grenzen, verantwoordelijkheden en afhankelijkheden tussen de teams vast.
Bepaal hoe het team dat verantwoordelijk is voor Azure Landing Zones moet samenwerken met andere teams in uw organisatie om nieuwe Vereisten voor Azure Landing Zone vast te leggen om het ontwerp en de implementatie bij te werken, incidenten op te lossen, afhankelijkheden te minimaliseren en af te stemmen op zakelijke prioriteiten.
DevOps-aanbevelingen
De volgende secties bevatten aanbevelingen waarmee u het DevOps-framework binnen uw organisatie kunt implementeren.
Uw DevOps-framework definiëren
Als u uw DevOps-framework wilt opzetten, kunt u overwegen de frameworks te gebruiken die al beschikbaar zijn om te beginnen met een set vooraf gedefinieerde bewezen procedures:
Microsoft DevOps Resource Center biedt een uitgebreide set definities, procedures en mogelijkheden die u kunt aanpassen aan het levenscyclusbeheer van Azure Landing Zone, waaronder:
Microsoft DevOps Dojo brengt een DevOps-taxonomie tot stand die is gebaseerd op vier fundamentele pijlers en acht mogelijkheden:
DevOps-procedures definiëren voor het beheer van azure-landingszones
Bekijk de volgende DevOps-procedures voor uw Azure-landingszones:
- Lees hoe u de ontwikkelingslevenscyclus van Azure-landingszones als code beheert.
- Bekijk beveiligingsoverwegingen voor Azure Landing Zones in de DevOps-ruimte.
Uw DevOps-implementatietraject plannen
Definieer en stem uw DevOps-implementatietraject af op het cloudacceptatieplan van uw organisatie.
- Bepaal waar uw team zich momenteel bevindt op de volgende gebieden:
- DevOps-procedures die uw team heeft aangenomen voor Azure Landing Zones-beheer.
- Gebruik hulpprogramma's zoals devOps Capability Assessment om de huidige status van de DevOps-status van uw team te beoordelen.
- Huidige teamstructuur, inclusief rollen en verantwoordelijkheden en cloudfuncties in eigendom.
- Welke technische vaardigheden uw team heeft.
- Welk cloudbewerkingsmodel uw team momenteel volgt.
- DevOps-procedures die uw team heeft aangenomen voor Azure Landing Zones-beheer.
- Gebruik het plan voor cloudimplementatie van uw organisatie om een gewenst model voor uw team te definiëren.
- Stel een iteratieve roadmap in voor het implementeren van het gewenste model in een iteratieve en incrementele modus die overeenkomt met de transformatietijdlijn van uw organisatie.
Gewenste DevOps-metrische gegevens implementeren
Bepaal welke metrische gegevens u gebruikt om de DevOps-prestaties van uw team te meten. Gebruik metrische gegevens om de gewenste gewoonten in uw team te stimuleren die verbinding maken met bedrijfsresultaten. Stel metrische gegevens vast zodat uw team invloed kan uitoefenen op activiteiten. Maak belangrijke metrische gegevens zichtbaar voor iedereen, omdat transparantie het vertrouwen bevordert en de afstemming met organisatiedoelstellingen bevordert.
Voorbeelden van metrische gegevens waarmee DevOps-prestaties worden gemeten om de impact van het bedrijf te verbeteren, zijn onder andere:
Bedrijfsresultaten:
- Gebruik doelstellingen en belangrijke resultaten als hulpmiddel om uw teams te verplaatsen van een 'output'-mindset en naar een 'resultaat'-mindset. U kunt bijvoorbeeld het aantal workloads gebruiken dat de nalevingsclassificatie heeft verbeterd ten opzichte van het aantal beleidsregels dat is geïmplementeerd in Azure.
- Klant- of eindgebruikertevredenheid. Voorbeelden hiervan zijn Net Promoter Score (NPS), enquêtes, interviews.
- Bedrijfsgroei. Voorbeelden hiervan zijn toegenomen winstgevendheid, verhoogde omzet en nieuwe inkomstenbronverwerven.
- Mensen metrische gegevens. Voorbeelden hiervan zijn de Employee Net Promoter Score (eNPS), het gebruik, de retentie en de tevredenheid.
- Kosten. U kunt bijvoorbeeld lagere kosten gebruiken.
Prestaties van softwarelevering:
- Doorlooptijd voor wijziging, de tijd die nodig is voor een foutoplossing, nieuwe functie of een andere wijziging, van idee tot implementatie naar productie.
- Implementatiefrequentie, de implementaties per dag van codewijzigingen in productie.
- Gemiddelde tijd om te herstellen, de tijd die nodig is om de service in productie te herstellen na een incident.
- Wijzigingsfoutpercentage, het percentage wijzigingen in productie (zoals configuratiewijzigingen) dat tot een fout leidt.
Kwaliteit:
- De escapesnelheid van defecten, het aantal defecten dat door uw eindgebruikers is geïdentificeerd.
- Ongepland werk of werk, het percentage tijd dat is besteed aan ongepland werk of opnieuw werken.
- Actieve bugs, het aantal bugs dat nog niet is opgelost.
- Codestatus, het percentage code dat niet is getest.
Uw DevOps-technologie-ecosysteem definiëren
De DevOps-hulpprogrammaketen die u kiest om de levenscyclus van uw Azure-landingszones te beheren, is van invloed op:
- Uw strategieën voor het implementeren van DevOps-principes en -procedures
- Beveiligingsoverwegingen voor uw DevOps-levenscyclus
- Het algehele architectuurontwerp van het levenscyclusbeheer van Azure Landing Zones
Gebruik het DevOps-framework dat u eerder hebt gedefinieerd om te bepalen welke hulpprogramma's u voor elk van uw DevOps-processen wilt gebruiken. Kies de DevOps-technologieën die het meest geschikt zijn voor de behoeften van uw teams, maar zoek een evenwicht waarmee u standaardisatie in uw organisatie kunt bereiken, maar vermijd te veel complexiteit of heterogeneiteit in uw DevOps-ecosystemen.
Voorbeelden van DevOps-technologieën in verschillende DevOps-fasen zijn:
- Planning: Atlassian Jira, Atlassian Trello, Azure Boards, GitHub
- Continue integratie (CI) en testen: Atlassian Bitbucket, Azure Repos, GitHub Repos, npm, NuGet, Selenium, SmartBear Komkommer, SonarSource SonarQube, Zed Attack Proxy
- Continue levering (CD): Atlassian Bamboo, Azure Pipelines, GitHub Actions, Jenkins, Octopus Deploy, Perforce Puppet, RedHat Ansible
- Infrastructuur als code: Bicep, Pulumi, Terraform
- Bootstrapping: ArgoCD GitOps, Flux GitOps, Progress Chef, PowerShell Desired State Configuration (DSC)
- Bewerkingen: Azure Automation, Azure Monitor, CISCO Splunk, Grafana, Microsoft Power BI
- Samenwerking en feedback: Atlassian Confluence, Azure DevOps Wikis, GitHub-discussies, GitHub-wiki's, Microsoft Teams, Slack, Stack Overflow
In het volgende diagram ziet u een voorbeeld van een DevOps-framework met azure DevOps-hulpprogrammaketenselectie:
In het volgende diagram ziet u een voorbeeld van een DevOps-framework met Azure DevOps- en GitHub-hulpprogrammaketenselectie: