Delen via


Ontwikkelingslevenscyclus

De levenscyclusstrategie voor ontwikkeling biedt belangrijke ontwerpoverwegingen en aanbevelingen voor opslagplaats, vertakking, geautomatiseerde builds, implementatie en terugdraaistrategie tijdens het automatisch maken van landingszones.

Opslagplaatsstrategie

Ontwerpoverwegingen

  • Overweeg om een versiebeheersysteem zoals Git te gebruiken om uw team flexibiliteit te bieden bij het delen en beheren van code.

    • Git is het industriestandaard versiebeheersysteem. Het is een gedistribueerd versiebeheersysteem, waarbij uw lokale kopie van de code een volledige versie van de opslagplaats is.
  • Informatie over de structuur van monoopslagplaats versus meerdere opslagplaatsen.

    • In mono-opslagplaatsstructuren bevindt alle broncode zich in één opslagplaats.
    • In multirepo-structuren worden alle projecten ingedeeld in afzonderlijke opslagplaatsen.
  • Kies een zichtbaarheidsinstelling die past bij de inhoud van uw opslagplaats.

    • Openbare opslagplaatsen kunnen anoniem worden geopend.
    • Voor privéopslagplaatsen moeten gebruikers toegang krijgen tot de opslagplaats en zijn aangemeld bij toegang tot services.
    • U kunt openbare en persoonlijke zichtbaarheid instellen voor Azure DevOps Projects en GitHub-opslagplaatsen.
  • Overweeg om opslagplaatsmachtigingen in te stellen waarmee u kunt bepalen wie kan bijdragen aan uw broncode en andere functies kan beheren.

  • Overweeg om infrastructuur als coderesource-implementatie (IaC) te gebruiken in Azure. Met IaC kunt u infrastructuur in een declaratief model beheren, de configuratie-inspanning verminderen, consistentie tussen implementaties garanderen en handmatige omgevingsconfiguratie voorkomen.

  • Azure biedt ondersteuning voor IaC voor landingszones via:

Ontwerpaanaanvelingen

  • Gebruik Git als versiebeheersysteem.

  • Privéopslagplaatsen gebruiken bij het bouwen van Azure Landing Zones

  • Gebruik openbare opslagplaatsen bij het delen van niet-vertrouwelijke informatie, zoals automatiseringsvoorbeelden, openbare documentatie en opensource-samenwerkingsmateriaal.

  • Gebruik een IaC-benadering voor het implementeren, beheren, beheren en ondersteunen van cloudresources.

Vertakkingsstrategie

Ontwerpoverwegingen

  • Overweeg het gebruik van een vertakkingsstrategie waarmee teams beter en efficiënt versiebeheer kunnen beheren.

  • Overweeg het gebruik van specifieke naamconventies voor uw vertakkingen .

  • Overweeg het gebruik van vertakkingsmachtigingen om gebruikersmogelijkheden te beheren.

  • Overweeg het gebruik van vertakkingsbeleid om uw teams te helpen belangrijke takken van ontwikkeling te beschermen. Beleid dat kan helpen bij het afdwingen van standaarden voor codekwaliteit en wijzigingsbeheer. Voorbeelden van vertakkingsbeleid zijn:

  • Door een strategie voor pull-aanvragen te gebruiken, kunt u de controle houden over codewijzigingen die zijn samengevoegd in vertakkingen.

    • Definieer een samenvoegstrategie.
    • Pull-aanvragen moeten eenvoudig zijn, waarbij het aantal bestanden tot een minimum wordt bewaard om revisoren te helpen doorvoeringen en wijzigingen efficiënter te valideren.
    • Pull-aanvragen moeten duidelijke titels en beschrijvingen hebben, zodat revisoren weten wat ze kunnen verwachten bij het controleren van code.
    • U kunt pull-aanvraagsjablonen gebruiken.
    • U kunt origin-vertakkingen verwijderen nadat pull-aanvragen zijn voltooid, waardoor u meer controle en beter vertakkingsbeheer hebt.

Ontwerpaanaanvelingen

  • Adopt a trunk-based development model, waarin ontwikkelaars zich tot één vertakking verbinden. Dit model vereenvoudigt continue integratie. Alle functiewerkzaamheden worden uitgevoerd in de trunk en eventuele samenvoegingsconflicten worden opgelost wanneer de doorvoer plaatsvindt.

  • Laat uw teams consistente naamconventies definiëren en gebruiken voor vertakkingen om het werk te identificeren.

  • Stel machtigingen in om te bepalen wie code kan lezen en bijwerken in een vertakking van uw Git-opslagplaats. U kunt machtigingen instellen voor afzonderlijke gebruikers en voor groepen.

  • Vertakkingsbeleid instellen:

    • Vereisen dat pull-aanvragen voor vertakkingen worden samengevoegd in de hoofdbranch.
    • Vereist een minimum aantal revisoren voor pull-aanvragen.
    • Stel alle goedkeuringsstemmen opnieuw in om alle goedkeuringsstemmen te verwijderen, maar houd stemmen om af te wijzen of te wachten wanneer een bronbranch verandert.
    • Voeg automatisch coderevisoren toe.
    • Controleer op oplossing van opmerkingen.
  • Stel squash in als samenvoegstrategie, zodat u de Git-geschiedenis van onderwerpbranches kunt beperken wanneer u pull-aanvragen voltooit. In plaats van elke doorvoering toe te voegen aan de geschiedenis van de standaardbranch, voegt een squashsamenvoeging alle bestandswijzigingen toe aan één nieuwe doorvoering op de standaardbranch.

Geautomatiseerde builds

Ontwerpoverwegingen

  • Overweeg om continue integratie (CI) te implementeren. CI omvat het samenvoegen van alle code voor ontwikkelaars in een centrale codebasis volgens een regelmatig schema en het automatisch uitvoeren van standaard builds en testprocessen.

  • Overweeg het gebruik van CI-triggers:

    • Azure-opslagplaatsen Git. U kunt vertakkingen, paden en tags configureren als triggers om een CI-build uit te voeren.
    • GitHub. U kunt vertakkingen, paden en tagstriggers configureren om een CI-build uit te voeren.
  • Overweeg om IaC-eenheidstests op te nemen in uw buildproces om de syntaxis te valideren.

    • De testtoolkit voor ARM-sjablonen controleert of een sjabloon de aanbevolen procedures volgt.
    • Bicep linter controleert Bicep-bestanden op syntaxisfouten en best practice-schendingen.
  • Overweeg om eenheidstests op te nemen in het buildproces van uw toepassing. Bekijk de taken die beschikbaar zijn voor Azure DevOps Pipeline.

  • Gebruik Azure DevOps-serviceverbindingen of GitHub-geheimen om verbindingen met Azure te beheren. Elke verbinding moet de juiste toegangsrechten hebben tot Azure-resources.

  • Overweeg het gebruik van Azure Key Vault-geheimen voor het opslaan en beheren van gevoelige informatie, zoals wachtwoorden, API-sleutels, certificaten.

  • Azure DevOps-agents kunnen zelf-hosten of door Microsoft worden gehost.

    • Onderhoud en upgrades worden voor u geregeld wanneer u door Microsoft gehoste agents gebruikt. Telkens wanneer een buildtaak wordt uitgevoerd, wordt er een nieuwe virtuele machine gemaakt.
    • U stelt zelf gehoste agents in en beheert deze zelf om buildtaken uit te voeren.

Ontwerpaanaanvelingen

  • Gebruik CI om builds en tests van code te automatiseren telkens wanneer een teamlid wijzigingen doorvoert in versiebeheer.

  • Voeg eenheidstests toe voor IaC en toepassingscode als onderdeel van uw buildproces.

  • Gebruik indien mogelijk een door Microsoft gehoste pool in plaats van zelf-hostende pools, omdat ze isolatie bieden en een schone VM voor elke pijplijnuitvoering.

  • Wanneer u Azure DevOps of GitHub verbindt met Azure via serviceverbindingen of GitHub-geheimen, moet u ervoor zorgen dat u altijd het bereik definieert, zodat ze alleen toegang hebben tot vereiste resources.

  • Gebruik Key Vault-geheimen om te voorkomen dat gevoelige informatie zoals referenties (gebruikerswachtwoorden van virtuele machine), certificaten of sleutels worden vastgelegd. Gebruik vervolgens geheimen als variabelen in uw build- en releasetaken.

Implementatiestrategie

Ontwerpoverwegingen

  • Overweeg het gebruik van Continuous Delivery (CD). CD omvat het bouwen, testen, configureren en implementeren van een build naar een omgeving.

  • Overweeg omgevingen te gebruiken. Met omgevingen kunt u zich richten op een verzameling resources van een leveringstaak. Voorbeelden van algemene omgevingsnamen zijn:

    • Dev
    • Testen
    • QA
    • Staging
    • Productie
  • Overweeg om IaC te gebruiken als onderdeel van uw strategie om wijzigingen vóór de implementatie te valideren en te bevestigen.

Ontwerpaanaanvelingen

  • Gebruik CD om ervoor te zorgen dat code altijd gereed is voor implementatie door automatisch code te bouwen, testen en implementeren in productieachtige omgevingen. Voeg continue levering toe om een volledige CI/CD-integratie te maken waarmee u zo snel mogelijk codefouten kunt detecteren en ervoor kunt zorgen dat u snel geteste updates kunt vrijgeven.

  • Gebruik omgevingen als onderdeel van uw implementatiestrategie. Omgevingen bieden voordelen zoals:

    • Implementatiegeschiedenis
    • Traceerbaarheid van doorvoeringen en werkitems
    • Status van diagnostische resource
    • Beveiliging
  • Neem controles vóór de implementatie van IaC op, zodat u een voorbeeld van wijzigingen kunt bekijken en details kunt bekijken over of een resource is gemaakt, gewijzigd of verwijderd.

Strategie voor terugdraaien

Ontwerpoverwegingen

  • Overweeg om een terugdraaiplan te maken. Het terugdraaien van een implementatie omvat het terugdraaien van de implementatie naar een bekende goede status en biedt een cruciale mogelijkheid om te herstellen van een mislukte implementatie.

  • Overweeg om wijzigingen ongedaan te maken in Git als u wijzigingen in een doorvoer wilt terugzetten, wijzigingen ongedaan wilt maken of een vertakking opnieuw wilt instellen op een eerdere status.

Ontwerpaanaanvelingen

  • Pas het gebruik van wijzigingen ongedaan maken in Git aan wanneer u wijzigingen wilt terugzetten naar doorgevoerde bestanden, niet-doorgevoerde wijzigingen moet negeren of een vertakking opnieuw moet instellen op een eerdere status.