Aanbevelingen voor het standaardiseren van hulpprogramma's en processen
Is van toepassing op deze controlelijst voor Azure Well-Architected Framework Operational Excellence:
OE:04 | Optimaliseer softwareontwikkelings- en kwaliteitsgarantieprocessen door bewezen procedures voor ontwikkeling en testen te volgen. Voor ondubbelzinnige rolaanduiding kunt u procedures standaardiseren voor onderdelen zoals hulpprogramma's, broncodebeheer, patronen voor toepassingsontwerp, documentatie en stijlhandleidingen. |
---|
Verwante handleiding: Continue integratie van buildsnelheid | verbeteren
In deze handleiding worden de aanbevelingen beschreven voor het definiëren van standaarden voor hulpprogramma's en processen voor softwareontwikkeling. Het definiëren van consistente procedures leidt tot een efficiënt workloadteam en hoogwaardige werkzaamheden. Goed presterende teams maken gebruik van bewezen hulpprogramma's en processen voor het minimaliseren van verspilde inspanningen en mogelijke codefouten.
Belangrijke ontwerpstrategieën
De eerste stap van het optimaliseren van ontwikkelprocedures is het standaardiseren van hulpprogramma's en processen. Gebruik indien mogelijk bewezen oplossingen in de branche in plaats van interne oplossingen te ontwikkelen. Als u uw procedures verder wilt optimaliseren, moet u hulpprogramma's met weinig code en geen code gebruiken. Met deze hulpprogramma's kunt u zich richten op uw toepassing en tijd besparen. Voor alle hulpprogramma's en processen die u standaardiseert, implementeert u training zodat uw teams deze efficiënt begrijpen en gebruiken. Als u standaarden wilt definiëren waarmee u uw ontwikkelprocedures kunt optimaliseren, moet u rekening houden met de volgende aanbevelingen.
Gebruik bekende en rijpe hulpmiddelen buiten de plank
Gebruik bekende en rijpe hulpmiddelen buiten de plank en standaardeer hun gebruik. Zeer effectieve technische teams nemen de beste hulpprogramma's in de klas aan. Deze aanpak minimaliseert de noodzaak om oplossingen te ontwikkelen voor planning, ontwikkeling, testen, samenwerking en continue integratie en continue levering (CI/CD). Veel ondernemingen geven ontwikkelaars een keuze tussen een paar hulpprogramma's, maar alle opties zijn standaardhulpprogramma's voor de organisatie en worden intern gevalideerd. Het belangrijkste is dat u hulpprogramma's kiest die voldoen aan de vereisten voor uw workload. Hulpmiddelen buiten de plank moeten de volgende functies bieden:
Werkplanning en achterstandsbeheer
Versiebeheer en opslagplaatsen
CI/CD-pijplijnen
Testen, zoals integratie, rook, synthetische gebruiker, simulatie, chaos en andere kwaliteitstests
Codeontwikkeling
In sommige gevallen kan één hulpprogramma of een suite hulpprogramma's verschillende functies bieden. Zorg ervoor dat u de mogelijkheden van uw hulpprogramma's en hun beperkingen begrijpt, zodat ze voldoen aan uw vereisten voor functies.
Bepaal of u moet investeren in dure hulpprogramma's of premium versies van hulpprogramma's. Houd rekening met de tijd en moeite om uw eigen oplossingen te ontwikkelen in vergelijking met de functies die de Premium-hulpprogramma's bieden. Overweeg eenmalige kosten versus terugkerende kosten. In de meeste gevallen bieden off-the-shelf tools een hogere waarde voor uw team.
Gebruik hulpprogramma's met weinig code, geen code en AI-hulpprogramma's wanneer ze praktisch zijn. Met weinig code en hulpprogramma's zonder code bespaart u ervaren ontwikkelaars tijd door ze in staat te stellen eenvoudig functionaliteit aan te sluiten in plaats van het hele proces voor codeontwikkeling uit te voeren. Met deze hulpprogramma's kunnen ook leden van het workloadteam die mogelijk niet worden getraind, bijdragen aan de werking van de workload. AI-hulpprogramma's kunnen helpen bij het ontwikkelen, beoordelen en optimaliseren van code.
Uw vertakkingsstrategie standaardiseren
Kies indien mogelijk een model op basis van trunk. Vertakking op basis van trunk houdt het ontwikkelteam van de workload gesynchroniseerd en moedigt continue levering aan. Definieer vertakkingsbeleid om belangrijke vertakkingen te beveiligen, zoals de hoofdbranch. Zie Een Git-vertakkingsstrategie en branchbeleid en -instellingen gebruiken voor meer informatie.
Metrische gegevens evalueren om de effectiviteit van de ontwikkeling te kwantificeren
Softwareontwikkelings- en kwaliteitsgarantieteams kunnen alleen verbeteren als ze hun effectiviteit kunnen kwantificeren. Om de effectiviteit te kwantificeren, moeten ze de metrische gegevens identificeren die de snelheid van ontwikkelaars meten en KPI's definiëren. Voorbeelden van deze metrische gegevens zijn:
Implementatiefrequentie: het aantal implementaties dat elke ontwikkelaar elke dag implementeert.
Doorlooptijd: de tijd die nodig is voor een taak of gebruikersverhaal om van de achterstand naar een productie-implementatie te gaan.
Gemiddelde tijd om op te lossen: de gemiddelde tijd die is besteed aan het oplossen van fouten of defecten in code.
Wijzigingsfoutpercentage: het percentage wijzigingen dat resulteert in een fout.
Om belanghebbenden en het workloadteam te helpen de snelheid eenvoudig bij te houden, visualiseert u KPI's met behulp van dashboards of andere rapportagehulpprogramma's.
Standaardiseren hoe uw workloadteam code schrijft, beoordeelt en documenten schrijft
Standaardiseer hoe uw workloadteam code schrijft, beoordeelt en documenteert met behulp van een stijlhandleiding. Een standaardstijl maakt samenwerking eenvoudig en helpt bij het onboarden van nieuwe ontwikkelaars. Om effectief te kunnen werken, moeten nieuwe ontwikkelaars weten hoe het workloadteam werkt. Een stijlgids met duidelijk gedefinieerde standaarden kan hun trainingsproces vereenvoudigen. Definieer in de stijlgids standaarden voor ontwikkeltalen, bibliotheken, frameworks en andere conventies.
Wanneer het praktisch is, gebruikt u hulpprogramma's om standaarden voor codeopmaak af te dwingen. Visual Studio biedt bijvoorbeeld verschillende hulpprogramma's waarmee code wordt gescand op stijl, kwaliteit, onderhoudbaarheid, ontwerp en andere problemen. Voor infrastructuur als code (IaC) kunt u Checkov of Terrascan voor Terraform gebruiken.
Om consistentie te garanderen en mogelijke verwarring te voorkomen, moet de stijlgids standaardnaamconventies bevatten voor artefacten, omgevingen, vertakkingen, builds en uitvoeringen.
U moet ook richtlijnen en standaarden instellen voor de toegestane mate van variantie in uw omgevingen. Als er nieuwe talen, frameworks of andere technologieën zijn die teamleden van workload willen toevoegen aan de standaardlijst, implementeert u een proces voor het gebruik van deze hulpprogramma's in een sandbox of een lagere omgeving. Test hun levensvatbaarheid en vervang indien nodig bestaande technologieën.
Gebruik ADR's (Architecture Decision Records) om een historisch overzicht te houden van de ontwerpbeslissingen van uw workloadteam. ADR's helpen uw teams bij het onderhouden van een nieuw inzicht in de workload. Ze helpen nieuwe teamleden ook om meer te weten te komen over de ontwerpbeslissingen die worden genomen tijdens de levenscyclus van de workload. Zorg ervoor dat ADR's versiebeheer hebben.
Neem in uw ADR het volgende op:
Specifieke hulpprogramma's en technologieën, bijvoorbeeld met behulp van SQL of NoSQL, die uw team kiest.
De redenen voor de beslissingen van uw team.
Andere opties die zijn overwogen, waarmee de uiteindelijke beslissing kan worden gecontextualiseerd.
Functionele en niet-functionele vereisten die in beslissingen worden meegenomen.
De context van het besluitvormingsproces, zoals het probleem dat is opgelost.
Standaarden implementeren voor het aanpakken van technische schulden
Stel vast dat technische schulden opzettelijk en noodzakelijk zijn voor de producten van uw workloadteam. Deze mindset stimuleert uw team om technische schulden regelmatig te overwegen en aan te pakken om accumulatie te voorkomen. Los technische schulden op als een regelmatig terugkerende taak in de achterstand.
Stel dat uw team is gestandaardiseerd in een bibliotheek. Na verloop van tijd moet u overschakelen naar een andere bibliotheek voor nieuwe functionaliteit in de workload. Deze overgang kan leiden tot technische schulden. Vaak kunnen overgangen zoals dit het workloadteam ondersteunen van twee technologieën laten staan, omdat ze niet volledig kunnen worden overgestapt. Het workloadteam moet prioriteit geven aan het voltooien van de overgang, omdat wanneer de workload de nieuwe functionaliteit bereikt, belanghebbenden tevreden zijn en minder waarschijnlijk rekening houden met de technische schuld.
Standaardiseren hoe u versiebeheer toepast op uw artefacten
Standaardiseer hoe u versiebeheer toepast op uw artefacten en hoe versiebeheer intern en extern wordt weergegeven. Clientgerichte systemen moeten bijvoorbeeld hun actieve versie beschikbaar maken in de gebruikersinterface. Deze techniek is handig wanneer het workloadteam problemen oplost, omdat de klant eenvoudig kan communiceren welke versie ze gebruiken. REST-interfaces kunnen versies beschikbaar maken voor bepaalde onderdelen of databases. U kunt een specifieke tabel in de metagegevens voor een schema gebruiken om de schemaversie beschikbaar te maken.
Gebruik beproefde ontwerppatronen voor toepassingen om ervoor te zorgen dat uw toepassing betrouwbaar, performant en veilig is. Gebruik deze patronen om tijd en moeite te besparen in vergelijking met het ontwikkelen van uw eigen oplossingen voor uw toepassing. Kies de patronen die ten goede komen aan uw workload. Controleer regelmatig ontwerppatronen om ervoor te zorgen dat u de juiste patronen gebruikt wanneer uw workload zich ontwikkelt.
Een shift-left-benadering voor testen implementeren
Implementeer een shift-left benadering voor testen door het testen van eenheden vroeg en vaak tijdens het ontwikkelingsproces uit te voeren. Regelmatige tests in elke ontwikkelomgeving helpen ontwikkelaars om vertrouwen te krijgen in hun toepassingen. Houd rekening met de volgende principes om uw teststrategie te maken met een shift-left-benadering:
Schrijf tests op het laagst mogelijke niveau. Gun tests met de minste externe afhankelijkheden en voer tests uit als onderdeel van de build.
Schrijf eenmaal tests en voer overal tests uit, inclusief productie. Schrijf tests die u in elke ontwikkelomgeving kunt uitvoeren zonder rekening te houden met factoren die specifiek zijn voor één omgeving, zoals versleutelde geheimen of configuraties.
Ontwerp uw workload voor testen. Wanneer u uw toepassing ontwikkelt, moet u de testbaarheid een vereiste maken.
Testcode behandelen als toepassingscode. Pas dezelfde kwaliteits- en ontwikkelingsstandaarden toe op toepassingscode en testcode. Sla testcode op naast toepassingscode. Ontwikkel en onderhoud testcode met toepassingscode. Om de kwaliteit van tests te waarborgen, negeert u tests die niet betrouwbaar zijn.
Overweeg het eigendom van de test, die is gebaseerd op het eigendom van de workload. Uw workloadteam is eigenaar van het testen en mag niet afhankelijk zijn van andere teams om hun code te testen.
Automatiseer tests zoveel mogelijk. Geautomatiseerde code vermindert de belasting van uw workloadteam en dwingt consistente kwaliteit af.
Zie Shift-tests links met eenheidstests voor gedetailleerde richtlijnen over het implementeren van een DevOps-teststrategie.
DevSecOps-procedures vereisen als onderdeel van uw standaardbedrijfsprocedures. Uw workloadteam moet inzicht krijgen in de beveiligingsprocedures met betrekking tot softwareontwikkeling en kwaliteitscontrole. Ze moeten deze procedures zonder uitzondering volgen. Zie de handleiding voor de levenscyclus van beveiligingsontwikkeling voor meer informatie.
Standaarden implementeren voor het benoemen en taggen van resources
Het implementeren van taggen en naamconventies is een best practice voor het beheren en ordenen van Azure-resources. Tags en naamconventies helpen bij het identificeren, classificeren en groeperen van resources op basis van algemene kenmerken, zoals omgeving, toepassing, eigenaar of kostenplaats. Ze maken ook beveiliging, automatisering, rapportage en governance van resources mogelijk voor abonnementen en resourcegroepen.
Enkele voordelen van het gebruik van gestandaardiseerde taggen en naamconventies zijn:
- Ze bieden consistentie en duidelijkheid voor resourceidentificatie en -beheer, waardoor detectie en zoeken in de Azure-portal, PowerShell, CLI en API's wordt vergemakkelijkt.
- Ze maken filteren en groeperen van resources mogelijk voor facturerings-, bewakings-, beveiligings- en nalevingsdoeleinden.
- Ze ondersteunen het beheer van de levenscyclus van resources, zoals inrichten, buiten gebruik stellen, back-ups en herstel.
- Ze zijn essentieel voor beveiligingsdoeleinden. Als u een beveiligingsincident tegenkomt, is het essentieel om snel betrokken systemen, de functies die door deze systemen worden ondersteund en de mogelijke bedrijfsimpact te identificeren.
Zie Uw naamconventie definiëren voor meer informatie over het gebruik van naamconventies voor uw cloudresources. Zie Uw tagstrategie definiëren voor meer informatie over het toepassen van metagegevenstags op uw cloudresources.
Azure-facilitering
Azure DevOps is een verzameling services die u kunt gebruiken om een gezamenlijke, efficiënte en consistente ontwikkelpraktijk te bouwen. Azure DevOps bundelt de volgende oplossingen:
Azure Pipelines biedt build- en releaseservices ter ondersteuning van de CI/CD van uw toepassingen.
Azure Boards is een webhulpprogramma voor werkbeheer dat Flexibele procedures zoals Scrum en Kanban ondersteunt.
Azure-opslagplaatsen is een hulpprogramma voor versiebeheer dat ondersteuning biedt voor het door Git gedistribueerde versiebeheersysteem en het Team Foundation-versiebeheersysteem .
Azure Test Plans is een browsergebaseerde testbeheeroplossing die mogelijkheden biedt die nodig zijn voor geplande handmatige tests, gebruikersacceptatietests, verkennende tests en het verzamelen van feedback van belanghebbenden.
Azure Artifacts wordt gebruikt om ontwikkelaars in staat te stellen hun code efficiënt te delen en hun pakketten te beheren.
GitHub Actions voor Azure is een hulpprogramma dat u kunt gebruiken om CI/CD-processen te automatiseren. Het integreert rechtstreeks met Azure om implementaties te vereenvoudigen. U kunt werkstromen maken die elke pull-aanvraag in uw opslagplaats bouwen en testen, of samengevoegde pull-aanvragen implementeren in productie.
GitHub Projects is een hulpprogramma voor werkbeheer dat u kunt gebruiken om Kanbanborden, rapporten, dashboards en andere functies te maken.
Hulpprogramma's met weinig code en geen code zijn onder andere:
Azure Resource Manager-sjablonen en Bicep zijn systeemeigen Azure-hulpprogramma's die u kunt gebruiken om IaC te implementeren. Terraform is een ander door Azure ondersteund IaC-hulpprogramma dat u kunt gebruiken voor het implementeren en beheren van infrastructuur.
Visual Studio is een robuust ontwikkelprogramma dat kan worden geïntegreerd met Azure en ondersteuning biedt voor veel talen.
GitHub Copilot is een AI-service die fungeert als programmeur en suggesties voor automatisch aanvullen biedt terwijl u codeert. Copilot is beschikbaar als uitbreiding in Visual Studio en verschillende andere ontwikkelhulpprogramma's.
Azure Load Testing is een volledig beheerde service voor belastingstests die u kunt gebruiken om grootschalige belasting te genereren door verkeer voor uw toepassingen te simuleren, ongeacht waar ze worden gehost.
Uitlijning van de organisatie
Het Cloud Adoption Framework voor Azure biedt algemene richtlijnen en aanbevelingen voor het taggen en benoemen van Azure-resources, evenals specifieke regels en voorbeelden voor verschillende resourcetypen.
Verwante koppelingen
- Een Git-vertakkingsstrategie aannemen
- Vertakkingsbeleid en -instellingen
- Cloudontwerppatronen
- Snelheid van ontwikkelaars
- Uw strategie voor naamgeving en taggen ontwikkelen voor Azure-resources
- DevOps-resourcecentrum
- DevSecOps inschakelen met Azure en GitHub
- Overzicht van broncodeanalyse
- Levenscyclushandleiding voor beveiligingsontwikkeling
- Beveiliging in DevOps (DevSecOps)
- Shift testen links met eenheidstests
- Videoserie: Inleiding tot GitHub CoPilot
Controlelijst voor operationele uitmuntendheid
Raadpleeg de volledige set aanbevelingen.