Udrul med sikkerhed

Fuldført
Opnå den ønskede installationstilstand med forudsigelighed.

Byg en forsyningskæde for arbejdsbelastninger, der giver dig mulighed for konsekvent at nå målet om forudsigelighed i alle dine miljøer på tværs af arbejdsbelastningens værtsplatforme, programmer, data og konfigurationsressourcer. Udrulningsmekanismen skal være i stand til automatisering, test, overvågning og versionering. Den skal være modulopbygget og klar til udførelse efter behov. Det bør ikke repræsenteres som en monolitisk end-to-end-proces. Forsyningskæden er ikke nødvendigvis til hurtigere udførelse, men til at opnå ensartethed og selvdokumentation i forbindelse med flere gentagelser.

Arbejdsbelastningsteamet er ansvarlig for forsyningskæden, da det er relateret til deres egen arbejdsbelastning.

eksempel på scenarie

Contoso Manufacturing har udviklet et Java-baseret program, der bruges til at overvåge og optimere deres produktionsprocesser. Arbejdsbelastningen er for nylig blevet overført til Azure og kører nu på Azure Spring Apps, Azure Database for MySQL og Azure IoT Hub.

Udrul infrastruktur via kode

Brug Infrastruktur som kode (IaC) til at definere de gentagne aspekter af forsyningskæden, der er klar til produktion. Foretrækker deklarative metoder frem for essentielle metoder.

Deklarative IaC-teknologier er designet med henblik på automatisering og genbrug. Du kan aflaste udrulninger af infrastruktur fra enkeltpersoner til værktøjer og opnå ensartet kvalitet.

Fra et infrastrukturperspektiv fjerner færre teknologivalg variansen i værktøjer og gør det nemt at registrere konfigurationsdrift. Vedligeholdelse vil også være lettere. Hvis du justerer valgmulighederne i forhold til teamets eksisterende færdighedssæt, kan teamet nemt anvende dem.

Contosos udfordring

  • Den lokale version af arbejdsbelastningen brugte en kombination af scripts og manuelle trin til at bygge infrastrukturen og udrulle programmet på tværs af miljøer. Tidligt i processen med Azure-migreringen foretog teamet ændringer af de eksisterende essentielle scripts for at målrette den nye platform, så de kunne genbruge så meget af den eksisterende automatiseringskodebase som muligt. Denne fremgangsmåde blev også anvendt på grund af manglende ekspertise med Azure- og IaC-teknologier som Bicep.
  • Efterhånden som migreringen skrider frem, og teamet blev mere fortrolig med platformen, blev de overbevist om, at brug af en IaC-tilgang med Bicep ville være en bedre løsning på længere sigt.

Anvendelse af tilgangen og resultaterne

  • Mangel på viden internt har teamet pådraget sig arbejdet med at migrere og udvide automatiseringsscripts til udrulning for arbejdsbelastningen til erfarne entreprenører, der arbejdede integreret med udviklingsteamet i projektets indledende faser, samtidig med at videnoverførsel til resten af teamet blev leveret.
  • Den resulterende Bicep-baserede implementering giver en mere pålidelig, håndterbar og effektiv måde at klargøre infrastruktur på i Azure. Koden kan nu læses og vedligeholdes med god understøttelse af værktøjer i VSCode. Det er også fuldt ud idempotent og forenkler state management, som de aldrig var i stand til fuldt ud at opnå med den tidligere / essentiel version.

Behandl din IaC på samme måde som din programkode

Følg softwareanbefalinger til IaC-udvikling og -vedligeholdelse: Modulariser i moderation, undgå brugerdefinerede abstraktioner eller abstraktioner med lav værdi, og følg en lagdelt tilgang til at afspejle forskellige livscyklusser. Form grundlæggende lag, hvor de nederste lag forbliver konstante, og de øverste lag ændres efter behov.

Udrulningsartefakter, f.eks. binære programmer, IaC-skabeloner og parametre, er en del af angrebsoverfladen. Anvend forsikringer, f.eks. hemmelig administration, adgangskontrol og andre principper i søjlen Sikkerhed.

Artefakter oplever det samme niveau af teknisk strenghed som programkode. Kvalitetskontrol via peer reviews og test giver dig tillid til udrulningen.

En lagdelt tilgang gør vedligeholdelse lettere og skaber grænser, der etablerer klare ansvarslinjer.

Tilføjelse af sikkerhedskontrolelementer til artefakter hjælper med at hærde systemet under udrulningsprocessen.

Contosos udfordring

  • Projektteamet havde et generøst budget i starten af migreringsindsatsen, så de hyrede meget erfarne entreprenører, der leverede med høj kvalitet og på kort tid. Entreprenørerne brugte et separat lager til deres udvikling, og at lageret ikke er blevet revideret regelmæssigt af hensyn til sikkerheden, mens det primære programkode-lager er.
  • Teamet gør sig klar til at udgive et overordnet redesign af løsningen, og udrulningskoden kræver betydelige ændringer. På grund af en mangel på udviklingsressourcer foretages den seneste batch af ændringer af to praktikanter. Når en af de ældre udviklere på teamet bliver kaldt ind for at hjælpe praktikanterne, bemærker han flere bekræftelser i lageret, der ikke er på niveau med teamets udviklingsstandarder, herunder at have programhemmeligheder som API-nøgler hardcoded i kodebasen.

Anvendelse af tilgangen og resultaterne

  • Teamet beslutter at flytte build- og udrulningskodebasen til det samme lager, der bruges til programkoden, og at begynde at anvende det samme niveau af teknisk strenghed som andre områder i kodebasen. Koden føres til teamstandarder, før den første bekræftelse, programhemmeligheder fjernes, og alle andre teamkvalitetsstandarder og -værktøjer anvendes på den.
  • Derfor har teamet sikret denne del af kodebasen og samtidig øget kodekvaliteten. Fremover vil ændringer af dette område i kodebasen følge de samme standarder og udnytte de samme værktøjer, der bruges til den centrale programkodebase, herunder peer code reviews og automatiseret scanning af koden med kvalitets- og sikkerhedsværktøjer.

Standardiser udrulninger på et enkelt manifest

Udvikl et fælles installationsmanifest, der bruges på tværs af alle miljøer. Brug manifestet som standardmekanismen for greenfield-projekter, opdateringer af trinvise arbejdsbelastninger eller it-katastrofeberedskab.

Hvis du anvender denne fremgangsmåde, kan du fjerne de omkostninger, der er forbundet med at vedligeholde flere aktiver.

Hvis der er en katastrofe, vil genoprettelsen være hurtig og pålidelig, fordi du kan installere et gennemprøvet manifest i stedet for at oprette et improviseret miljø.

Contosos udfordring

  • Contoso Manufacturing bruger en fuldt automatiseret pipeline til at udrulle infrastrukturen, programkoden og konfigurationsændringerne i udviklings- og produktionsmiljøet. Programmet er konfigureret til at være meget tilgængeligt i et enkelt område. De fleste programkomponenter er tilstandsløse med undtagelse af MySQL-databasen. Databasen sikkerhedskopieres som dikteret af det etablerede RTO/RPO, og sikkerhedskopien replikeres til et sekundært område.
  • Hvis der opstår en større eller katastrofal fejl i det primære område, planlægger teamet at oprette et nyt miljø, der skal hoste programmet i det sekundære område. Under en planlagt analyse for at teste DR-procedurerne mislykkes installationsscripts, når der forsøges at genoprette miljøet i det sekundære område på grund af manglende tilgængelighed af flere ressourcer og andre tjenestebegrænsninger.

Anvendelse af tilgangen og resultaterne

  • Teamet afhjælper de problemer, der opstod under forsøg på at klargøre i det sekundære område, ved at erstatte brugen af nogle ressourcer med tilsvarende SKU'er, der er tilgængelige i begge områder, og gøre nogle indstillinger konfigurerbare, så en anden, men gyldig værdi kan bruges i den sekundære.
  • Øvelsen har øget teamets tillid til deres evne til at komme sig efter større infrastrukturfejl.