Vinster:
- Förstå riskreducerande utsläppsstrategier (blågrön, kanariefågel, funktionsflagga) och produktverifieringsdisciplin (hälsokontroll, röktest, övervakning av gyllene signaler)
- Förmåga att implementera vanan att förbereda en tydlig återställningsplan före implementering och verifiera kritiska affärsvägar efter implementering
- Förmåga att kombinera alla delar som lärts genom modulen i ett end-to-end AI-stödt arbetsflöde och tillämpa principen om "AI producerar, människor verifierar och går i god för" i varje steg
Hela denna modul flödade mot en punkt: säker leverans av kod och infrastruktur till produktionen (livsmiljön som används av riktiga kunder). Nu är vi vid den mest kritiska och stressiga länken i kedjan: att få en förändring live och verifiera att den faktiskt fungerar där. Ett misstag här är inte abstrakt – det slår direkt mot kunden, intäkterna och ryktet. Det är därför mogna team går till produktion inte genom att "hoppa" utan med kontrollerade releasestrategier och systematisk verifiering.
I den här sista enheten kombinerar vi två saker: (1) släppmetoder som minskar risken (kanariefågel, blågrön, flagga) och disciplinen för produktverifiering; (2) hur varje del vi lärde oss under hela modulen – CI/CD, IaC, container, övervakning, incident, kostnad, skript, säkerhet – sammanförs till ett enda AI-drivet end-to-end-arbetsflöde. Låt oss upprepa det första citatet en sista gång: AI genererar och accelererar utkast vid varje steg; Men det är du som trycker på knappen "Jag tar detta live" och garanterar resultatet.
Släpp strategier som minskar risken
Att driva en förändring till alla användare samtidigt är det mest riskfyllda sättet. Mogna metoder:
- Blue-Green Deployment: Två identiska miljöer upprätthålls - "blå" (live) och "grön" (ny version). Den nya versionen förbereds och testas i grönt, sedan växlas trafiken plötsligt till grönt. Om det uppstår problem går trafiken omedelbart tillbaka till blått. Snabb återställning är dess största fördel.
- Canary Deployment: Den nya versionen släpps först till en liten andel av användarna (t.ex. 5 %); Om mätvärdena är bra, öka gradvis till 100 %. Ett problem påverkar en liten del av användaren, inte hela användaren.
- Funktionsflagga: Den nya funktionen anger koden men blockeras av en flagga; Det öppnas för vissa användare när det efterfrågas. Det finns en distinktion mellan distribution och "release"; Om det finns ett problem stängs flaggan av utan att koden rullas tillbaka.
Tips: Det snabbaste skyddsnätet är att ha en rollback redo före varje utplacering. "Om något går fel, hur kan jag återgå till den gamla versionen på 60 sekunder?" Om det inte finns något tydligt svar på frågan är du inte redo att göra den distributionen.
Produktverifiering: arbetet slutar inte när driftsättningen avslutas
Bara för att en distribution ser "grön" ut betyder det inte att den fungerar. Systematisk verifiering:
- Hälsokontroller: Är tjänsten uppe, svarar /healthz?
- Röktester: Fungerar de få mest kritiska användarvägarna (inloggning, betalning, sökning) verkligen? Automatiskt och snabbt.
- Håll utkik efter gyllene signaler: Felfrekvens efter implementering, latens, är trafiken normal? (Fyra signaler på enhet 6.)
- Expandera gradvis: Titta på mätvärden vid varje steg när du ökar andelen Kanarieöarna.
- Observationsfönster: Övervaka noga under en tidsperiod (t.ex. 30 min) efter utplacering; Lömska problem är inte direkt synliga.
Varning: AI kan producera en lista över röktester eller verifikationer, men det är din uppgift att avgöra vilka användarvägar som är "kritiska". AI ger en allmän lista; Bara du vet att ditt betalningsflöde, din mest intäktsgenererande väg, måste testas.
Jämförelse av releasestrategier
Strategi
Främsta fördelen
Kostnad/komplexitet
mest lämplig
Blå-grön
Omedelbar återställning
Två miljöer = 2x resurser
Om snabb hämtning är kritisk
kanariefågel
Begränsar påverkan till små skivor
Trafikledning krävs
Enorma användarbas
FeatureFlagga
Separerar distribution från release
Flagga förvaltningsskuld
Gradvis/riktad öppning
Rullande uppdatering
Enkelt, resursvänligt
långsam återställning
Enkla tjänster
End-to-end AI-drivet arbetsflöde
Låt oss nu kombinera hela modulen till ett enda flöde. Låt oss säga att du publicerar en ny mikrotjänst. AI producerar utkast vid varje steg; du verifierar vid varje steg:
- Kod & behållare (enhet 4): AI producerar en optimerad, säker Dockerfil; Du verifierar no-hemligheten och storleken.
- CI/CD (Enhet 2): Skriver pipelinen för AI:s test-build-deploy; Du begränsar behörigheterna och kontrollerar de hemliga referenserna.
- Infrastruktur (enhet 3): Definierar de nödvändiga resurserna med AI Terraform; Du läser planens utdata och letar inte efter oväntade raderingar.
- Orkestering (enhet 5): AI producerar Kubernetes-manifest; du verifierar resursgränsen, sonden och RBAC.
- Säkerhet (enhet 10): Prioriterar AI-skanningsutgångar; Du tar tag i de exploaterbara först.
- Övervakning (enhet 6): AI genererar larmregler och instrumentpanel; Du testar tröskelvärdena med dina tidigare data.
- Release & validering (denna enhet): beskriver AI-röktestet och återställningsplanen; du startar kanariefågel, tittar på statistiken, trycker på knappen.
- Om incident inträffar (enhet 7): AI genererar hypoteser och postmortemskiss; Du verifierar och lär dig läxorna.
- Kostnad (enhet 8): AI övervakar slöseri med nya resurser; Du fattar rätt storleksbeslut.
Vid varje steg förblir den gemensamma regeln konstant: AI producerar och accelererar, människan verifierar och garanterar. Detta är kärnan i modulen.
tre minifodral
Fall 1 — kanariefågel begränsade en katastrof till 5 %. Ett team gav den nya versionen till 5 % användare med kanariefågel. Instrumentbrädan som AI producerade visade omedelbart att felfrekvensen hoppade till 8% i denna del. Teamet tog tillbaka det utan att öka det till 100 %; Problemet påverkade bara 5 % av användarna, och det var under några minuter. Om det blev en big-bang-distribution skulle alla kunder påverkas.
Fall 2 — röktest fångade den saknade vägen. AI erbjöd ett röktestset, men det hade inget "betalningsflöde". Ingenjören lade till det, med vetskapen om att den mest kritiska inkomstströmmen var betalning. Testet efter installationen gick sönder precis vid utcheckningssteget - en tredjepartsnyckel hade gått ut. Verifiering fångade en tyst förlust av intäkter inom några minuter.
Fall 3 — klar återställning sparad på 90 sekunder. Ett team som installerade blågrönt tog den nya versionen till grön; Efter 2 minuter fördubblades förseningen. De förvandlade trafiken till blått på 90 sekunder med den rollback de förberett i förväg. De hittade grundorsaken (en långsam fråga i den nya versionen) inte under press, sedan lugnt. Den färdiga backbanan gjorde avbrottet nästan osynligt.
Fyra kopierbara mallar
1) Val av releasestrategi:
Jag kommer att producera följande tjänst: [SERVICE/CONTEXT: antal användare, avbrottstolerans, infrastruktur]. Vilken rekommenderar du mellan blågrön, kanarieflagga och featureflagga? Jämför fördelarna, kostnaderna och återställningshastigheten för var och en i detta sammanhang. Ge ett förslag, men ange att jag tar det slutgiltiga beslutet.
2) Röktest/verifieringslista:
Skapa ett utkast till röktest och verifieringslista för [SERVICE] som jag kommer att köra efter implementeringen: hälsokontroll, de mest kritiska användarvägarna, vilka mätvärden ska jag övervaka i hur många minuter? Antag att jag kommer att markera de mest kritiska affärsvägarna och lämna det fältet tomt.
3) Återställningsplan:
Jag använder [DEPLOY METHOD]. Skriv en tydlig återställningsplan till mig: med vilket kommando/steg rullar jag tillbaka till den gamla versionen, hur lång tid tar det, vilka är riskerna med själva återställningen (t.ex. kan databasmigrering inte återställas), vad ska jag kontrollera innan återställning?
4) Checklista för slut-till-ände:
Ta fram en komplett förberedelsechecklista för utsläpp till ett nytt [SERVICE]-projekt: kod-/bildsäkerhet, pipeline, infrastrukturplan, övervakning och larm, säkerhetsskanning, releasestrategi, återställning och verifiering. Kontrollera varje objekt med frågan "Är jag redo?" Förvandla det till en fråga.
Svag prompt / Stark prompt
Svag: "Hur får jag det här till prod?"
Resultat: inget sammanhang; AI listar allmänna implementeringssteg, den adresserar inte din risktolerans, användarskala och återställningsbehov.
Güçlü: "Jag kommer att prodera en betaltjänst med 10 miljoner användare, min tolerans för driftstopp är mycket låg. Rekommenderar du Canary eller Blue-Green, varför? Vilka kritiska vägar ska jag testa efter implementering, vilka mätvärden ska jag övervaka i hur många minuter och hur ska en 60-sekunders återställningsplan se ut? Jag kommer att fatta det slutliga beslutet."
Skillnad: den andra prompten anger skala, tolerans och återställningsförväntningar; Det kräver strategi + verifiering + upphävande och överlåter beslutet till människan.
Vanliga misstag
- Implementering utan återställningsplan. Om det inte finns någon väg tillbaka är varje utplacering en chansning.
- Big-bang-utbyggnad. Att ge det till hela användaren på en gång maximerar risken.
- Förutsatt att "grönt = fungerar". Tjänsten som klarat hälsokontrollen kan vara trasig på den kritiska vägen.
- Tänker att du lämnar kritiska affärsvägar till AI. Du måste markera metoderna såsom betalning.
- Övervakar inte efter driftsättning. Lömska problem dyker inte upp under den första minuten; observationsfönster krävs.
- Jag tror att databasmigrering är reversibel. Vissa ändringar återställs inte; planeras separat.
Sammanfattningsvis
Att gå till prod är den mest kritiska länken i kedjan och görs inte genom att "hoppa" utan med kontrollerade strategier: blågrönt ger omedelbar återställning, begränsar kanariefågeleffekten till en liten bit, vilket skiljer funktionsflaggans utplacering från release. Arbetet är inte över när driftsättningen är klar; Systematisk verifiering genom hälsokontroller, röktester och övervakning av gyllene signaler är avgörande. AI genererar och accelererar utkast vid varje steg genom hela modulen – från Dockerfile till pipeline, från Terraform till larmregel, från obduktion till kostnadsanalys. Men den kompetenta personen kvarstår som verifierar varje steg, trycker på knappen gå live och garanterar resultatet. Detta är den gyllene regeln för end-to-end AI-drivna DevOps.
Applikationsuppgift
Välj en tjänst (verklig eller fiktiv) att publicera på. (1) Välj en strategi som passar ditt sammanhang med mallen "Släpp strategival" och skriv varför. (2) Skapa en verifieringslista med mallen "Röktest/verifieringslista" och lägg till de mest kritiska affärsvägarna själv. (3) Förbered en 60-sekunders återställningsplan med mallen "Återställningsplan" och kontrollera om det finns några oåterkalleliga steg i den.
checklista
- [ ] Jag valde en releasestrategi (kanarie/blågrön/flagga) som passar mitt sammanhang.
- [ ] Jag har en tydlig och snabb återställningsplan redo innan driftsättning.
- [ ] Jag har själv lagt till de mest kritiska affärsvägarna (t.ex. betalning) till mina röktest.
- [ ] Efter utplaceringen övervakar jag de gyllene signalerna genom ett observationsfönster.
- [ ] Jag planerade också oåterkalleliga steg (databasmigrering, etc.).
- [ ] Jag verifierade AI-planen vid varje steg; Jag tog beslutet att gå live.
Modulexamen
1. Vilket av följande är den bästa positioneringen för DevOps och AI i molnet?
- A) Artificiell intelligens är ett assistent och beslutsstödsverktyg; Människor är ansvariga för kritiska beslut som påverkar produkten ✔
- B) Artificiell intelligens kan slutföra prod-utplaceringar och hemlig rotation utan mänskligt godkännande
- C) Artificiell intelligens är bara användbar för att skriva dokumentation, det har inget med infrastruktur att göra
- D) Audit är onödigt eftersom artificiell intelligens alltid producerar mer tillförlitliga kommandon än ingenjören
Beskrivning: Det är ett assistent- och beslutsstödsverktyg som accelererar textintensiva uppgifter som pipeline för artificiell intelligens, konfiguration, skript och logg. Ansvaret för beslut som påverkar driftstopp, pengar och säkerhet, såsom produktionssläpp, hemlig hantering och slutlig ansökan, ligger kvar hos den behöriga ingenjören.
2. Vilket är det mest exakta uttrycket för verifieringsdisciplinen innan man implementerar ett DevOps-kommando eller en konfiguration som produceras av artificiell intelligens?
- A) Om utgången ser smidig och säker ut kan den köras direkt i prod
- B) Utdata är säker endast om det inte finns några syntaxfel, inga ytterligare kontroller krävs
- C) Anslut utgången till källan, planera/torkköra och filtrera den med ditt systemkontext; ansök sedan ✔
- D) Att göra första försöket direkt i prod och se resultatet är den snabbaste verifieringen
Förklaring: Trestegsverifiering är viktigt: att ansluta utgången till källan (är kommandot/flaggan faktiskt i de officiella dokumenten), köra det torrt (se vad som händer med planen/--torrkörningen) och föra den genom systemfiltret (passar den inom dess arkitektur- och säkerhetskontext). Flytande betyder inte noggrannhet.
3. Vad är det korrekta tillvägagångssättet när man frågar artificiell intelligens om ett fel eller distributionsproblem med en .env-fil som innehåller ett riktigt databaslösenord?
- A) Maskera verkliga hemligheter med <PLACEHOLDER>; dela endast maskerade fel och sammanhang ✔
- B) Att klistra in hela .env-filen som den är löser problemet snabbare
- C) Eftersom hemligheterna redan är base64, är det säkert att klistra vanligt
- D) Det är säkert att klistra in lösenordet eftersom artificiell intelligens aldrig lagrar det
Beskrivning: Inga riktiga hemligheter klistras in i AI-prompten. Värden som lösenord och tokens är maskerade med <PLACEHOLDER>; endast felmeddelandet och nödvändig kontext delas. Om hemligheten redan har läckt, bör den avbrytas och roteras omedelbart.
4. Vilket av följande är korrekt hantering av hemligheter (lösenord, token) i en CI/CD-pipeline?
- A) Det förvaras i plattformens hemliga arkiv och anropas genom referens (t.ex. ${{ secrets.X }}), inte skrivet i vanlig text ✔
- B) Skrivet i klartext till pipeline YAML för enkelhets skull
- C) Det verifieras genom att trycka på eko och logga i början av varje jobb.
- D) Om den definieras med bredast tillstånd (skriv-allt), ökar säkerheten
Förklaring: Hemligheter skrivs inte till YAML i klartext; Den förvaras i plattformens hemliga arkiv och anropas med referenser som ${{ secrets.X }}. Dessutom, med principen om minsta auktoritet, begränsas tokenbehörigheterna och den hemliga loggen registreras inte.
5. I infrastrukturhantering med Terraform, vilket är det mest kritiska steget att ta innan en förändring genomförs live?
- A) Att köra 'terraform applicera' direkt; planen är ett slöseri med tid
- B) Säkerhetskopiera State-filen till ett offentligt arkiv
- C) Kör 'terraform plan' och kontrollera förstöra/ersätt linjerna i utgången, använd sedan ✔
- D) Avinstallera leverantörsversionen och se till att den senaste versionen kommer automatiskt
Förklaring: 'terraform plan' måste köras innan 'terraform tillämpas'. Planen visar vad som ska läggas till, vad som ska ändras och speciellt vad som ska raderas (förstöras), utan att göra något. Om en oväntad förstör eller ersätt linje ses, ska applicera inte appliceras.
6. Vad betyder det och vad ska göras om raden '-/+ ersätt' för produktionsdatabasen visas i en Terraform-planutdata?
- A) Källan kommer bara att uppdateras på plats, det finns ingen risk
- B) Resursen kommer att raderas och återskapas; Det finns risk för dataförlust, ansökan bör stoppas om det inte förväntas ✔
- C) Lägger till en ny resurs, befintlig databas påverkas inte
- D) Detta är bara en varning, kan säkert ignoreras
Förklaring: '-/+ ersätt' betyder att resursen kommer att tas bort och återskapas; För en databas innebär detta dataförlust. Om det inte förväntas, bör tillämpningen avbrytas, ändringen bör konverteras till en säker metod, eller det oföränderliga fältet bör lämnas orörd.
7. Vilket av följande är sant för att en Dockerfile ska vara produktionsklar när det gäller dess säkerhet och storlek?
- A) För enkelhets skull, bädda in hemligheten i bilden med ENV och kör den som root
- B) Använd alltid taggen ':latest' och håll basbilden så stor som möjligt
- C) Bygg i ett steg och lämna alla byggverktyg i den slutliga bilden
- D) Inte bädda in hemligheten, arbeta med obehörig ANVÄNDARE, använda liten och stabil basbild och bygga i flera steg ✔
Beskrivning: En produktionsfärdig bild: bäddar inte in hemligheten (injicerar den under körning), körs med en obehörig ANVÄNDARE istället för root, använder en liten och versionerad basbild (smal/alpin, inte :senaste) och skalas ned med en flerstegsbyggnation. Den skannas också efter sårbarheter före publicering.
8. Vilken är den viktigaste risken med att inte definiera resursgränser för en distribution i Kubernetes?
- A) Pod startar aldrig eftersom limit är ett obligatoriskt fält
- B) Endast en varning visas på övervakningstavlan, driften påverkas inte
- C) Kubernetes tillämpar automatiskt säkra standardgränser, ingen risk
- D) Podden kan växa obegränsat och konsumera nodens resurser och därmed krascha närliggande tjänster ✔
Förklaring: En Pod som inte har någon resursgräns kan växa obegränsat, konsumera alla resurser på noden den körs på och krascha närliggande tjänster, till exempel med en minnesläcka. Det är därför att definiera förfrågningar/gränser är grunden för robusthet.
9. Hur undviker man "varningströtthet" vid övervakning och larminställning?
- A) Ställ in larm på så många mätvärden som möjligt och generera varningar med varje fluktuation.
- B) Ställ in alla larm på högsta svårighetsgrad
- C) Utlösa larm med momentana värden utan att ställa in en tid (för)
- D) Hålla larm handlingsorienterade och i rätt brådska, testa trösklar med historiska data, slå samman onödiga ✔
Beskrivning: Varje larm måste vara åtgärdbart och av rätt brådska; Information som inte kräver åtgärd visas på tavlan, den väcker ingen. Larmtrösklar testas mot systemets historiska data och onödiga/repetitiva larm konsolideras. På så sätt försvinner inte det riktiga larmet i bruset.
10. Vilken är den bästa prioritetsordern under en produktionsincident?
- A) Hitta först den exakta grundorsaken och minska den först när orsaken är klar.
- B) Skriv först obduktionsrapporten och tryck sedan på tjänsten
- C) Reducera först (återställ/återställ tjänst), lämna rotorsaksanalys till senare ✔
- D) Hitta först den som är ansvarig för händelsen och rapportera den
Förklaring: Den gyllene regeln är 'minska först, undersök senare'. Målet är att först återställa tjänsten eller återställa den till en känd-bra version (minska); Grundorsaksanalys görs lugnt efter att trycket avtagit. Att vänta på att hitta den exakta orsaken ökar återhämtningstiden (MTTR).
11. Vad är huvudsyftet med klanderfri postmortemkultur?
- A) Identifiera personen som gjorde misstaget och lägga ansvaret på honom/henne
- B) Fokusera på system och processer och uppmuntra lärande; ✔ Lärdomar som förhindrar upprepning snarare än att skylla på
- C) Rapportera aldrig händelsen och se till att den glöms bort
- D) Skriver endast tekniska detaljer och lägger inte till åtgärdsobjekt
Förklaring: Oklanderlig obduktion fokuserar på frågan "vilket system och process tillät detta misstag", inte "vem gjorde det". Människor delar misstaget öppet om de vet att de inte kommer att straffas; Det dolda felet upprepas. Rapporten är inte en anklagelserapport, utan ett lärodokument fullt av handlingsinriktade saker.
12. I molnkostnadsoptimering (FinOps), vilket är det mest logiska steget att ta innan man går över till garanterade rabatter (Reserved/Sparplan)?
- A) Ta längsta möjliga engagemang först, tänk på slöseri senare
- B) Rensa först upp avfallet (tomgångsstängning, rätt storlek), förbind dig sedan till engagerad användning ✔
- C) Flytta alla resurser till Spot-kapacitet omedelbart
- D) Ta bort den dyraste artikeln utan att granska fakturadata
Förklaring: Avfall måste saneras först (stänga lediga resurser, minska överdimensionerade resurser). Annars kommer du att låsa den bortkastade användningen till ett rabatterat pris i 1-3 år. Rätt storlek och tomgångsrengöring kräver inget åtagande och är närapå riskfritt.
13. Vilken är den viktigaste säkerhetsåtgärden om ett AI-föreslaget skript har raden 'rm -rf "$DIR"/'?
- A) Att köra skriptet direkt i prod utan att läsa det kommer att påskyndas
- B) Lägg till set -euo pipefail och tom variabel kontroll och försök med torrkörning först ✔
- C) Det räcker att förkorta variabelnamnet
- D) Att använda rm -rf --force istället för rm löser problemet
Förklaring: Om $DIR är tom kan den här satsen försöka ta bort rotkatalogen. Att stanna vid den odefinierade variabeln med 'set -u' och kontrollera att variabeln inte är tom innan du raderar den (t.ex. [ -n "$DIR" ] || exit 1) undviker katastrof. Dessutom bör destruktiva operationer prövas med torrkörning först.
14. Vad är det första man ska göra om en molnåtkomstnyckel av misstag läcker in i ett offentligt arkiv?
- A) Avbryt omedelbart och förnya (rotera) nyckeln; Det räcker inte att ta bort enbart ✔
- B) Ta bara bort filen från lagringen och nyckeln är säker
- C) Att inte göra något för att ingen såg det
- D) Att göra förvaringen privat eliminerar behovet av att rotera nyckeln
Förklaring: Den läckta hemligheten måste avbrytas och roteras omedelbart. Det räcker inte att bara ta bort filen eftersom hemligheten finns kvar i Git-historiken och offentliga förråd skannas av bots inom några sekunder. Efter avbokning/retur utvärderas påverkan och en hemlig skanner läggs till för att förhindra upprepning.
15. Vilket av följande tillvägagångssätt minimerar risken när en ny version av Prod släpps?
- A) Ge den nya versionen till alla användare samtidigt (big-bang) och inte förbereda en återställningsplan
- B) Anser att distributionen är avslutad så snart den ser "grön" ut, inte utför ytterligare verifiering
- C) Använda en kontrollerad strategi som kanarieflagga/blågrön/funktionsflagga, färdig återställningsplan och röktest + metrisk övervakning efter utplacering ✔
- D) Att överlåta testningen av kritiska affärsvägar helt och hållet till artificiell intelligens och inte bestämma dem alls.
Förklaring: Strategier för kontrollerade utsläpp (som börjar med en liten procentandel med kanariefågel, omedelbar återställning med blågrönt, skiljer utplacering från utsläpp med funktionsflagga) begränsar risken. Dessutom är en tydlig återställningsplan före driftsättning och gyllene signalövervakning med röktestning efter utplacering väsentliga; "att se grönt ut" betyder inte att det fungerar.