Yunit 9 / 11

Pamamahala ng Pagbabago: Pagtatasa ng Panganib, Rollback at Window ng Pagpapanatili

Mga nadagdag:

  • Kakayahang mag-draft ng kahilingan sa pagbabago, pagtatasa ng panganib at rollback na plano gamit ang artificial intelligence at gawing ligtas at predictable ang pagbabago
  • Kakayahang palawakin ang domain gamit ang sarili nitong impormasyon sa dependency, uriin ang retrievability, at magkaroon ng kakayahang magplano ng unti-unting pag-deploy gamit ang canary.
  • Kakayahang maunawaan na ang tao ang nag-aapruba, nag-iskedyul at nagdadala ng responsibilidad para sa pagbabago, at upang makuha ang disiplina na huwag ipatupad ito nang walang pamantayan sa tagumpay at isang paraan pabalik.

Pamamahala ng Pagbabago: Pagtatasa ng Panganib, Rollback at Window ng Pagpapanatili na may AI

Ang karamihan sa mga sakuna sa mga sistema ng produksyon ay hindi nagmula sa isang pag-atake ngunit mula sa isang pagbabago: isang patch, isang pag-update ng configuration, isang release rollout, isang "minor" na pag-aayos. Iyon ang dahilan kung bakit ang bawat mature na organisasyon ay may pamamahala ng pagbabago: ang proseso ng pagdidisiplina ng pagpaplano ng pagbabago sa produksyon, pagtatasa ng panganib nito, pag-apruba nito, pagpapatupad nito, at pagbabalik nito kapag kinakailangan. Ang layunin ay hindi upang maiwasan ang pagbabago, ngunit upang gawin itong ligtas at predictable. Dito, ang AI ay isang makapangyarihang katulong sa pag-draft ng isang kahilingan sa pagbabago, paglilista ng mga panganib at mga apektadong system, pagtatatag ng balangkas ng rollback na plano at paghahanda ng checklist ng deployment. Ngunit ang pangunahing panuntunan ay nananatili: AI ay gumagawa ng isang blueprint para sa pagdodokumento ng pagbabago at panganib; Ang taong nag-aapruba, nag-iskedyul at nananagot para sa pagbabago.

Sa yunit na ito, ang mga konsepto ng kahilingan sa pagbabago, pagtatasa ng panganib, plano ng rollback, window ng pagpapanatili, pamamahagi ng canary/staged at CAB (Change Advisory Board); Matututuhan mo kung paano magplano ng ligtas na pagbabago gamit ang AI.

Anatomy ng isang magandang kahilingan sa pagbabago

Ang isang hindi nakokontrol na pagbabago ay ang pangungusap na "In-update ko ito"; Ang isang kinokontrol na pagbabago ay isang plano. Ang isang mabuting kahilingan sa pagbabago ay sumasagot sa mga tanong na ito: Ano ang nagbabago? (saklaw), Bakit? (katuwiran), Aling mga sistema ang apektado? (domain at dependencies), Ano ang antas ng panganib? (low/medium/high), Kailan? (maintenance window), Paano mag-apply? (mga hakbang), Paano i-verify? (success criterion), Paano ito maibabalik kung ito ay masira? (rollback), Sino ang pumayag? (awtoridad). Mabilis na pinunan ng AI ang skeleton na ito — ngunit ikaw ang talagang nakakaalam ng domain at ang panganib, ang nakakaalam ng organisasyon; Kinukumpleto mo ang listahan ng AI gamit ang iyong sariling kaalaman sa dependency.

Tip: Ang dalawang pinaka-madalas na hindi napapansing bahagi ng isang pagbabago ay ang "rollback plan" at ang "pamantayan sa pag-verify ng tagumpay." Kung wala kang nakasulat na sagot sa mga tanong na "saan ko ba talaga babaling kung aling utos kung masira" at "paano ko mapapatunayang matagumpay ito" bago ipatupad ang pagbabago, hindi pa handa ang pagbabagong iyon.

Rollback: ang exit gate ng bawat pagbabago

Ang puso ng pamamahala sa pagbabago ay ang turnaround plan. Ang bawat pagbabago ay dapat magkaroon ng landas ng rollback: rollback patch, ibalik ang nakaraang configuration, rollback na bersyon sa nakaraang bersyon, rollback mula sa snapshot. Ang kritikal na pagkakaiba ay: ang ilang mga pagbabago ay madaling ibalik (isang linya ng pagsasaayos), ang ilan ay hindi maibabalik o napakahirap (isang paglilipat ng schema ng database, isang pagtanggal ng data). Ang mga hindi maibabalik na pagbabago ay ang pinakamataas na uri ng panganib at nangangailangan ng pinakamaraming pansin, ang pinakamaraming pag-backup, ang pinakamaliit na palugit sa pagpapanatili. Tanungin ang AI "maaari bang ibalik ang pagbabagong ito, at kung hindi, anong mga karagdagang hakbang sa seguridad ang dapat kong gawin?"

Maintenance window at phased deployment

Ang palugit sa pagpapanatili ay isang paunang inanunsyo na yugto ng panahon kung saan ang pagbabago ay makakaapekto sa pinakamaliit na dami ng mga user — karaniwang sa gabi o sa isang weekend kapag mababa ang trapiko. Ngunit ang pagpili ng tamang oras ay hindi sapat; Ang unti-unting paglulunsad ng pagbabago ay higit na nakakabawas sa panganib. Ang pag-deploy ng Canary ay ilapat muna ang pagbabago sa isang maliit na bahagi (isang server, 5% ng mga user), subaybayan ito, at ipalaganap ito kung walang mga problema. Sa ganitong paraan, hindi makakaapekto ang isang bug sa buong fleet ngunit isang maliit na bahagi at mahuhuli nang maaga. Maaari kang humingi sa AI ng isang phased deployment plan at mga sukatan na susubaybayan sa bawat yugto.

Hakbang-hakbang: pagbabagong tinulungan ng AI

  1. I-draft ang kahilingan. Idokumento ang pagbabago gamit ang AI sa mga heading sa itaas.
  2. Palawakin ang epekto. Kumpletuhin ang listahan ng AI ng mga apektadong system gamit ang sarili mong mapa ng dependency; "Ano pa ang konektado sa serbisyong ito?"
  3. Uriin ang panganib. Mababang/katamtaman/mataas at nababaligtad? Nangangailangan ito ng pinakamahigpit na proseso, na mataas at hindi maibabalik.
  4. Sumulat ng rollback at subukan ito. Isulat ang mga hakbang sa pag-rollback at subukang bumalik sa isang kapaligiran ng pagsubok kung maaari — isang "plano ng rollback" na hindi maaaring ibalik ay hindi mabibilang bilang isang plano.
  5. Planuhin ang mga bintana at antas. Tukuyin ang window ng pagpapanatili at mga yugto ng canary, at ang mga sukatan na susubaybayan sa bawat yugto.
  6. Kumpirmasyon at komunikasyon. Kumuha ng pag-apruba ng awtoridad (CAB kung kinakailangan), ipaalam sa mga apektado, ipatupad, subaybayan, i-verify.

tatlong mini case

Case 1 — Ang plano ng rollback ay nai-save ang gabi. Isang team ang naglapat ng web server patch; Ang patch ay hindi inaasahang nasira ang isang dependency at ang site ay nagsimulang magbigay ng 500 error. Ngunit mayroong malinaw na hakbang sa pag-rollback na inihanda kasama ng AI sa kahilingan sa pagbabago: "alisin ang patch, ibalik ang nakaraang pakete, i-reload ang serbisyo." Bumalik ang koponan sa loob ng 6 na minuto. Kung wala ang plano ng rollback, tatagal ang outage ng ilang oras habang hinahanap ang ugat sa kalagitnaan ng gabi.

Kaso 2 — Nakahuli ng bug si Canary sa 5%. Isang bagong bersyon ang ipapamahagi. Humingi ang team sa AI ng staggered deployment plan: una 1 server, panoorin, pagkatapos ay 25%, pagkatapos ay lahat. Ang mga oras ng pagtugon ay nakitang doble sa Canary server; itinigil ang pamamahagi. Nagpatuloy lang ang bug sa isang server, na hindi naapektuhan ang 95% ng mga user. Kung ito ay kumalat nang sabay-sabay, ang buong serbisyo ay bumagsak.

Kaso 3 — Karagdagang sukatan ng hindi maibabalik na pagbabago. Isang database schema migration ang binalak — isang pagbabagong napakahirap ibalik. Tinanong ng inhinyero ang AI tungkol sa panganib; Sinabi ni YZ na ang pagbabago ay hindi maibabalik at nagrekomenda ng isang buong backup, hiwalay na pagsubok na pagtakbo at makitid na window. Ang koponan ay kumuha ng isang buong backup bago ang paglipat, sinubukan muna ito sa isang kopya. Nagkaroon ng problema sa panahon ng paglipat, ngunit salamat sa backup, naibalik ang pagkakapare-pareho sa loob ng 20 minuto.

Apat na maaaring kopyahin na mga template

1) Baguhin ang draft ng kahilingan:

Ang iyong tungkulin: espesyalista sa pamamahala ng pagbabago. Bumuo ng kahilingan sa pagbabago para sa sumusunod na pagbabago: [pagbabago]. Mga Heading: Ano/Bakit, Mga Apektadong System at Dependencies, Antas ng Panganib(mababa/medium/mataas + katwiran), Rollback ba ito, Mga Hakbang sa Pagpapatupad, Pamantayan sa Pag-verify ng Tagumpay, Mga Hakbang sa Rollback, Rekomendasyon sa Window ng Pagpapanatili, Kinakailangang Pag-apruba. Markahan ang dependency na hindi ka sigurado bilang "verify".

2) Pagtatasa ng panganib at epekto:

Suriin ang sumusunod na pagbabago sa mga tuntunin ng panganib: [pagbabago]. (1) Ilista ang mga sistema na maaaring direkta at hindi direktang maapektuhan, (2) ano ang pinakamasamang sitwasyon, (3) mababaligtad ba ito, kung hindi, anong mga karagdagang hakbang ang dapat kong gawin, (4) bigyang-katwiran ang antas ng panganib. Ipaliwanag na ito ay isang paunang pagsusuri at ang desisyon ay akin.

3) Paglikha ng rollback plan:

Sumulat ng step-by-step na rollback plan para sa [pagbabago]. Tiyaking makokopya at mabe-verify ang bawat hakbang. Kung may mga hindi maibabalik na bahagi ng pagbabago, sabihin ito nang malinaw at isulat kung aling backup ang dapat kong gawin para sa kanila. Idagdag kung paano i-verify ang tagumpay ng Rollback.

4) Phased distribution (canary) plan:

Magmungkahi ng [deployment] phased plan para sa sumusunod na deployment: aling mga phase (hal. 1 server -> 25% -> lahat), gaano katagal ako dapat maghintay sa bawat phase, at ANONG mga sukatan ang dapat kong subaybayan (oras ng pagtugon, rate ng error, atbp.)? Anong threshold ang dapat kong ihinto at ibalik ang deployment kung ito ay lumampas? Isulat nang malinaw ang iyong mga punto ng desisyon.

Mahinang prompt / Malakas na prompt

Mahinang prompt:

Dapat ko bang ilapat ang patch na ito?

Walang konteksto, walang epekto, walang redundancy, walang bintana. Hindi alam ng AI ang iyong system o ang iyong panganib; Ang "oo/hindi" na ibibigay nito ay isang iresponsableng hula.

Napakahusay na prompt:

Ang iyong tungkulin: espesyalista sa pamamahala ng pagbabago. Maglalapat ako ng security patch sa isang fleet ng mga webserver sa produksyon (8 server, sa likod ng isang load balancer). Bigyan mo ako ng: (1) isang draft na kahilingan sa pagbabago para sa pagbabagong ito, (2) mga dependency na maaaring maapektuhan (kukumpirmahin ko), (3) mga rollback na hakbang, (4) canary plan bilang 1 server -> 25% -> lahat at ang mga sukatan na aking susubaybayan sa bawat yugto. Bigyang-katwiran ang antas ng panganib. Inaprubahan ko at nagpasya.

Baguhin ang tampok

mababang panganib

mataas ang panganib

reversibility

madaling rollback

hindi mababawi/mahirap

domain

Single serve, nakahiwalay

Multi-service, dependency chain

Pamamahagi

maaaring direkta

Mandatory canary + makitid na bintana

Pag-apruba

sa loob ng pangkat

CAB / nangungunang pag-apruba

ekstrang

Pamantayan

Karagdagang buong backup + test run

Mga karaniwang pagkakamali

  • Pagpapatupad nang walang rollback na plano. Ang pagbabago ay isang sugal kung hindi nakasulat ang daan pabalik.
  • Pagpapanatiling makitid ang saklaw ng impluwensya. Ang pag-bypass sa mga nakatagong dependency na naka-attach sa isang serbisyo ay magreresulta sa mga hindi inaasahang side interruptions.
  • Napagkakamalang pangkaraniwan ang hindi maibabalik na pagbabago. Ang mga pagbabago tulad ng paglilipat ng schema at pagtanggal ng data ay nangangailangan ng pinakamahigpit na proseso at buong backup.
  • Pagkalat nito sa buong fleet nang sabay-sabay. Kung walang Canary, isang bug ang tatama sa lahat ng user nang sabay-sabay.
  • Hindi pagtukoy sa pamantayan ng tagumpay. Kung ang ibig sabihin ng "matagumpay" ay hindi nakasulat, maaari mong mapagkamalang "kumpleto" ang isang sirang pagbabago.
Pansin: Ang listahan ng mga apektadong system na ginawa ng AI ay isang paunang, hindi isang kumpletong listahan. Hindi alam ng AI ang mga dependency ng iyong organisasyon; Ang eksaktong sagot sa tanong na "Kung nag-crash ang serbisyong ito, ano pa ang babagsak?" namamalagi sa iyong kaalaman sa korporasyon. Ipagpalagay na ang listahan ng AI ay hindi kumpleto at palawakin ito.

Sa buod

Karamihan sa mga sakuna sa produksyon ay nagmumula sa pagbabago, hindi pag-atake; Hindi pinipigilan ng pamamahala ng pagbabago ang pagbabago, ginagawa nitong ligtas at mahuhulaan. AI; Mabilis na nag-draft ng mga kahilingan sa pagbabago, mga pagtatasa ng panganib, mga plano sa pagbabalik, at mga checklist sa phased deployment. Ngunit palawakin ang domain gamit ang iyong tunay na kaalaman sa dependency, uriin ang reversibility, magsulat ng rollback at subukan ito kung maaari, ipamahagi ang panganib sa maintenance window at canary, tukuyin ang pamantayan ng tagumpay. Ang tao ang nag-aapruba, nag-iskedyul at may pananagutan para sa pagbabago; Ang AI ay ang kasosyo na nagpapabilis sa plano.

Gawain ng aplikasyon

Pumili ng pagbabago sa produksyon na pinaplano mong gawin sa lalong madaling panahon (o kamakailang ginawa). Hayaang maghanda ang AI ng kumpletong kahilingan sa pagbabago gamit ang template na "Change request draft" sa itaas. Palawakin ang listahan ng "mga apektadong sistema" na ginagawa ng AI ng hindi bababa sa dalawang item na may sarili mong impormasyon sa dependency. I-print ang mga hakbang sa rollback gamit ang template na "Bumuo ng rollback plan" at tukuyin kung mayroong anumang bahagi ng pagbabago na hindi maaaring ibalik. Sa wakas, makabuo ng isang canary plan. Ibuod ang buong plano sa 6 na puntos at tandaan kung aling mga pag-apruba ang kinakailangan.

checklist

  • [ ] Naghanda ba ako ng kahilingan para sa pagbabago na kinabibilangan ng ano/bakit, epekto, panganib, hakbang, pag-verify at pagbabalik?
  • [ ] Pinalawak ko ba ang listahan ng AI ng mga apektadong system gamit ang sarili kong impormasyon sa dependency?
  • [ ] Inuri ko ba kung ang pagbabago ay mababaligtad o hindi na mababawi?
  • [ ] Isinulat ko ang mga hakbang sa pagbabalik at sinubukan ito sa kapaligiran ng pagsubok, kung maaari?
  • [ ] Natukoy ko ba ang palugit ng pagpapanatili at plano sa pag-deploy ng canary at ang mga sukatan ng pagsubaybay para sa bawat yugto?
  • [ ] Natukoy ko ba ang pamantayan sa pag-verify ng tagumpay at nakatanggap ng mga kinakailangang pag-apruba?