Anbefalinger for sikker distribusjonspraksis
Gjelder denne Power Platform anbefalingen for Well-Architected Operational Excellence-sjekklisten:
OE:10 | Definer den sikre distribusjonspraksisen for arbeidsbelastningen tydelig. Bruk utgivelsesmetoder som er små, trinnvise og har kvalitetsporter. Bruk moderne distribusjonsmønstre til å styre risikoen. Gjør rede for rutinemessige distribusjoner eller nøddistribusjoner (hurtigreparasjoner). |
---|
Denne hjelpelinjen beskriver anbefalingene for bruk av sikker distribusjonspraksis. Prosesser og prosedyrer for sikker distribusjon definerer hvordan du trygt kan foreta og distribuere endringer i arbeidsbelastningen. Implementering av dem krever at du tenker på distribusjoner gjennom linsen for å håndtere risiko. Du kan minimere risikoen for menneskelige feil i distribusjonene og begrense effekten av problematiske distribusjoner på brukerne ved å implementere disse fremgangsmåtene.
Viktige utformingsstrategier
Det finnes viktige retningslinjer du må huske på når du implementerer sikker distribusjonspraksis:
- Sikkerhet og konsistens: Alle endringer i produksjonsbelastningen er iboende risikable og må gjøres med fokus på sikkerhet og konsistens.
- Tilstandsmodeller: Distribusjoner må bestå helsekontroller før hver fase med progressiv eksponering kan begynne.
- Problemgjenkjenning: Når problemer oppdages, bør distribusjonen umiddelbart stoppes og gjenoppretting startes.
Delene nedenfor inneholder detaljerte anbefalinger for hvert av disse punktene.
Sikkerhet og konsekvens
Enten du distribuerer en oppdatering til programkoden, infrastruktur som kode (IaC), funksjonsflagg eller konfigurasjon, introduserer du risiko for arbeidsbelastningen. Der er ingen lavrisikodistribusjoner til produksjon. Hver distribusjon må følge et standardmønster og bør automatiseres for å sikre konsekvens og redusere risikoen for menneskelige feil. Det er avgjørende at forsyningskjeden og utrullingskanalene for arbeidsbelastning er pålitelige, sikre og har klart definerte distribusjonsstandarder. Behandle hver distribusjon som en mulig risiko, og behandle hver distribusjon med samme risikostyringsnivå.
Til tross for risikoen bør du fortsette å distribuere regelmessige endringer til arbeidsbelastningen. Hvis du ikke distribuerer regelmessige oppdateringer, utsettes den for andre risikoer, for eksempel sikkerhetsproblemer som må håndteres via distribusjoner. Finn ut mer i Anbefalinger for utforming av en forsyningskjede for arbeidsbelastningsutvikling.
Hyppige, små distribusjoner er å foretrekke fremfor sjeldne, store distribusjoner. Små endringer er lettere å løse når det oppstår problemer, og hyppige distribusjoner hjelper teamet å bygge opp tilliten til distribusjonsprosessen. Det er også viktig at du lærer fra produksjon, ved å se gjennom arbeidsbelastningsprosessene når det oppstår et avvik under distribusjonen. Du kan kanskje finne svakheter i utformingen av infrastrukturen eller utrullingen. Når det oppstår problemer under utplasseringer, må du sørge for at uskyldige obduksjoner er en del av prosessen for å fange opp lærdommer om hendelsen.
Tilstandsmodeller
Utvikle en robust tilstandsmodell som en del av overvåkingsplattformen for observerbarhet og pålitelighetsstrategier. Tilstandsmodellen skal gi grundig innsyn i komponentene og den generelle tilstanden til arbeidsbelastningen. Overvåk tilstandsmålingene nøye etter en utrulling. Hvis du mottar et varsel om en tilstandsendring under oppdateringen, må du undersøke problemet umiddelbart og bestemme neste handling, for eksempel rulle tilbake endringen. Hvis brukerne ikke rapporterer problemer og alle helseindikatorer forblir grønne, skal utrullingen fortsette. Sørg for å inkludere bruksdata i tilstandsmodellen for å sikre at mangel på brukerrapporterte problemer og negative tilstandssignaler ikke skjuler et problem. Finn ut mer i Anbefalinger for å utføre feilmodusanalyse.
Problemregistrering
Når distribusjonen forårsaker et problem i en av utrullingsgruppene, må utrullingen stoppes umiddelbart. Undersøk årsaken til problemet og alvorsgraden til virkningene så snart varselet mottas. Gjenoppretting fra problemet kan omfatte følgende:
- Rulle tilbake ved å angre endringene som er gjort i distribusjonen og gå tilbake til den sist kjente arbeidskonfigurasjonen.
- Ruller fremover ved å løse problemet under utrullingen. Du kan løse problemer midt under utrullingen ved å bruke en hurtigreparasjon eller på andre måter minimere problemet.
- Distribuere ny infrastruktur ved hjelp av den sist kjente arbeidskonfigurasjonen.
Det kan være komplisert å rulle tilbake endringer, særlig endringer i databaser, skjemaer eller andre tilstandsfulle komponenter. Retningslinjene for sikker distribusjon bør gi klare instruksjoner om hvordan du håndterer dataendringer i henhold til dataområdeutformingen for arbeidsbelastningen. På samme måte må rulling fremover håndteres forsiktig for å sikre at sikre distribusjonsprosesser ikke blir neglisjert, og at hurtigreparasjonen eller andre minimeringstiltak utføres trygt.
Generelle anbefalinger
Implementer versjonskontroll på tvers av byggartefaktene for å sikre at du kan rulle tilbake og rulle fremover når det blir nødvendig.
Bruk en utgivelsesflyt eller stammebasert forgreningsstruktur, som sørger for strengt synkronisert samarbeid på tvers av utviklingsteamet i stedet for en Gitflow-basert eller miljøbasert forgreningsstruktur.
Automatiser så mye av din sikre distribusjonspraksis som mulig. Finn ut mer i Anbefalinger for implementering av automatisering.
Bruk fremgangsmåter for kontinuerlig integrasjon (CI) til å integrere kodeendringer regelmessig i repositorier. CI-fremgangsmåter kan hjelpe deg å identifisere integreringskonflikter og redusere sannsynligheten for store, risikable sammenslåinger. Finn ut mer i Anbefalinger for kontinuerlig integrering.
Bruk funksjonsflagg til å aktivere eller deaktivere nye funksjoner eller endringer selektivt i produksjon. Funksjonsflagg kan hjelpe deg å styre eksponeringen av ny kode og raskt rulle tilbake distribusjonen hvis det oppstår problemer.
Distribuer endringer til oppsamlingsmiljøer som gjenspeiler produksjonsmiljøet. I øvelsesmiljøer kan du teste endringer i et kontrollert miljø før du distribuerer dem til live-miljøet.
Opprett førdistribusjonskontroller, inkludert kodegjennomgang, sikkerhetsskanninger og samsvarskontroller, for å sikre at endringer kan trygt distribueres.
Implementer strømbrytere for automatisk å stoppe trafikken til en tjeneste som har problemer, og bidra til å forhindre ytterligere forringelse av systemet.
Protokoller for nødssituasjoner
Etabler foreskrivende protokoller som definerer hvordan de sikre distribusjonsprosessene kan justeres for en hurtigreparasjon eller for nødproblemer som sikkerhetsbrudd eller sårbarhetseksponering. Nødprotokollene dine kan for eksempel omfatte:
- Akselerasjon av forfremmelses- og godkjenningsfasen
- Røyktesting og akselerasjon av integrasjonstesting
- Reduksjon av steketid
I enkelte tilfeller kan nødstilfellet begrense kvalitets- og testportene, men portene bør likevel kjøres så raskt som mulig som en utenforliggende øvelse. Pass på at du definerer hvem som kan godkjenne sikker distribusjonsakselerasjon i en nødssituasjon, og kriteriene som må oppfylles for at akselerasjonen skal godkjennes. Justere nødprotokollene dine med nødsituasjonen svar planlegge for å sikre at alle nødsituasjoner håndteres i henhold til de samme protokollene.
Vurderinger
Det er komplisert å bygge og vedlikeholde en sikker distribusjonspraksis. Hvor vellykket implementering av robuste standarder er, avhenger av modenheten til praksisen din på tvers av mange programvareutviklingsområder. Bruk av automatisering, kun IaC for infrastrukturendringer, konsistens i forgreningsstrategier, funksjonsflagg og annen praksis kan bidra til å sikre sikker distribusjon. Bruk denne veiledningen til å optimalisere arbeidsbelastningen og støtte forbedringsplanene etter hvert som praksisen utvikler seg.
Tilrettelegging for Power Platform
Pipeliner tar Power Platform sikte på å demokratisere administrasjon av programlivssyklus (ALM) for Power Platform og Dynamics 365-kunder ved å bringe ALM-automatisering og funksjoner for kontinuerlig integrasjon og kontinuerlig levering (CI/CD) inn i tjenesten.
Microsoft Power Platform Build Tools for Azure DevOps kan brukes til å automatisere vanlige kompilerings- og distribusjonsoppgaver relatert til apper bygget på Power Platform.
GitHub Actions for Power Platform gjør det mulig for utviklere å bygge automatiserte arbeidsflyter for programvareutvikling. Med GitHub-handlinger for Microsoft Power Platform kan du opprette arbeidsflyter i lageret for å bygge, teste, pakke, distribuere og distribuere apper, utføre automatisering og administrere automatiseringer og andre komponenter som er innebygd i Power Platform.
ALM Accelerator er et åpen kildekode-verktøy som består av et sett med applikasjoner, skript og pipeliner designet for å automatisere den kontinuerlige integrasjons-/kontinuerlige leveringsprosessen.
Automatiser tester med Azure Pipelines.
Miljøvariabler i løsninger lagrer parameternøklene og verdiene, som deretter fungerer som inndata til andre programobjekter. Hvis du skiller parameterne fra forbrukerobjektene, kan du endre verdiene i det samme miljøet eller når du overfører løsninger til andre miljøer.
Power Platform Miljøer har funksjonalitet for gjenoppretting til tidspunkt som kan hjelpe deg med å rulle tilbake.