Mada 3.6 — DevOps na Ubora wa Uhandisi
Kwa sentensi moja: Katika mifumo ya kitabibu, uhandisi wenye nidhamu — mabomba ya kiotomatiki, matoleo madogo yanayoweza kubatilishwa, miundombinu-kama-msimbo, na uwezo wa kuonekana — ndio unaofanya mabadiliko kuwa salama zaidi, si hatari zaidi, na kuchukulia "jinsi tunavyojenga na kuendesha programu" kama suala la usalama, usawa na uaminifu wa umma ni alama ya shirika lililokomaa la afya ya kidijitali.
Kwa nini hili ni muhimu katika afya na huduma#
Jinsi unavyoandika na kuendesha programu ni kidhibiti cha usalama wa kitabibu chenyewe. Muuguzi wa wilaya asipoweza kuona badiliko la dawa, rufaa ya kielektroniki inapoanguka kimyakimya, au kukatika kunapowafungia nje wahudumu wa kitabibu kutoka rekodi ya pamoja ya huduma, madhara si usumbufu wa kinadharia — ni matibabu yaliyochelewa, mzio uliokosekana, pengo la ulinzi wa walio hatarini. Mazoea ya uhandisi katika mada hii yanaamua kama marekebisho yanayohitajika yanafika uzalishaji kwa dakika kumi au wiki kumi, na kama badiliko baya linaweza kubatilishwa kwa usafi au linawaacha wahudumu wa kitabibu wakifanya kazi kuzunguka mfumo ulioharibika kwa siku.
Kuna hadithi ya kudumu na hatari katika nyanja zilizodhibitiwa kwamba mabadiliko ni hatari, kwa hiyo mfumo salama zaidi ni ule unaougusa kidogo zaidi. Ushahidi unaelekeza upande mwingine. Mifumo inayobadilishwa mara chache hukusanya udhaifu usiowekewa viraka, hatua dhaifu za utumiaji za mikono, na maarifa ya kikabila yasiyoandikwa; mabadiliko hatimaye yanapokuwa yasiyoepukika — kiraka cha usalama, tarehe ya mwisho ya udhibiti, msambazaji kujiondoa — hufika kama "mlipuko mmoja" mkubwa, wa hatari, usioeleweka vizuri. Mashirika yanayotumia mabadiliko madogo mara kwa mara, na uwekaji kiotomatiki na kurudi nyuma haraka, hupata kushindwa kwa chini na hupona haraka zaidi. Katika afya na huduma, tofauti hiyo hupimwa kwa usalama wa mgonjwa.
Ubora wa uhandisi pia ni suala la usawa na uaminifu wa umma. Programu isiyoonekana huficha ukweli kwamba huduma inafanya kazi vibaya kwa watumiaji wa vifaa vya zamani au maeneo ya muunganisho hafifu. Mnyororo wa ugavi wa programu usio salama huweka taarifa za siri za mgonjwa hatarini (angalia Mada 1.7 — Utawala wa Taarifa, Ulinzi wa Data na Usalama wa Mtandao). Na kwa sababu hizi ni fedha za umma na data ya umma, sekta inazidi kutarajia msimbo ujengwe kwa viwango huria, vinavyoweza kukaguliwa — wakati mwingine hadharani kihalisi. Jinsi unavyofanya kazi kwa hiyo si suala binafsi la uhandisi; linawajibika kwa wagonjwa, wahudumu wa kitabibu, na umma.
Dhana kuu#
DevOps. DevOps ni utamaduni na seti ya mazoea yanayovunja ukuta wa kimapokeo kati ya wasanidi wanaoandika programu na wafanyakazi wa shughuli wanaoiendesha. Badala ya "kutupa msimbo juu ya ukuta" kwa timu tofauti, watu walewale wanashiriki umiliki wa huduma kutoka usanifu hadi uendeshaji hai, wakisaidiwa na uwekaji kiotomatiki na mrejesho wa haraka. Kimsingi ni njia ya kufanya kazi — wajibu wa pamoja, kujifunza bila lawama, vipande vidogo — inayowezeshwa na zana, si zana unayonunua.
Uunganishaji endelevu na utoaji endelevu (CI/CD). Uunganishaji endelevu (CI) unamaanisha kila msanidi huunganisha mabadiliko madogo kwenye tawi kuu la pamoja mara kwa mara, kila moja likichochea ujenzi wa kiotomatiki na mbio ya majaribio ili matatizo yajitokeze ndani ya dakika. Utoaji endelevu (CD) hupanua hili ili programu iwe daima katika hali ya kuweza kutolewa na iweze kutumiwa katika uzalishaji kupitia bomba la kiotomatiki, linalorudiwa. Utumiaji endelevu huenda hatua moja zaidi, ukitoa kila badiliko linalopita bomba kiotomatiki. Majaribio ndiyo kiini cha milango ya bomba — yamefunikwa kwa kina katika Mada 3.7 — Majaribio na Uhakiki wa Ubora.
Maendeleo ya msingi wa shina na matoleo madogo, yanayoweza kubatilishwa. Maendeleo ya msingi wa shina huweka kila mtu akifanya kazi karibu na mstari mmoja mkuu katika udhibiti wa matoleo, akiunganisha mara nyingi kwa siku badala ya kutunza matawi ya muda mrefu yanayopotoka na kuunganishwa kwa uchungu. Nidhamu inayoambatana ni kusafirisha mabadiliko madogo, ya mara kwa mara, yanayoweza kubatilishwa kwa kujitegemea. Badiliko dogo ni rahisi kupitia, rahisi kujaribu, na — muhimu katika mfumo wa kitabibu — rahisi kurudishwa nyuma kwa usafi likienda vibaya.
Miundombinu-kama-msimbo (IaC). Badala ya kusanidi seva kwa mikono, unafafanua miundombinu katika faili zinazosomeka na mashine zilizohifadhiwa chini ya udhibiti wa matoleo. Mazingira yanakuwa yanayoweza kuzalishwa upya, kupitiwa, na kukaguliwa: unaweza kuyajenga upya kwa mfanano, kuona nani alibadilisha nini na kwa nini, na kuthibitisha kwamba jaribio na uzalishaji vinalingana. Huu ndio msingi wa mazingira ya kuaminika (angalia Mada 4.0 — Usanifu wa Kiufundi, Wingu na Mifumo ya Zamani).
Uhandisi wa jukwaa na uzoefu wa msanidi. Uhandisi wa jukwaa huchukulia zana za ndani, mabomba, na mazingira ambayo timu za utoaji zinayategemea kama bidhaa, timu zikiwa watumiaji wake. Jukwaa la ndani lililojengwa vizuri huzipa timu "barabara iliyojengwa" — chaguo-msingi salama, mifumo iliyoidhinishwa mapema, utumiaji kwa kubofya mara moja — ili zisonge haraka na kwa usalama bila kila moja kubuni upya uzingatiaji. Uzoefu mzuri wa msanidi si anasa; ndiyo jinsi unavyofanya njia salama kuwa njia rahisi.
Vipimo vya DORA. DevOps Research and Assessment (DORA) ilitambua vipimo vinne vinavyotofautisha timu zenye utendaji wa juu: mara ngapi unatumia (mara ngapi unatoa), muda wa kuongoza kwa mabadiliko (muda kutoka commit hadi uzalishaji), kiwango cha kushindwa kwa mabadiliko (sehemu ya mabadiliko yanayosababisha tatizo), na muda wa kurejesha huduma (jinsi unavyopona haraka). Kwa pamoja vinaonyesha kwamba kasi na utulivu hupanda pamoja — timu zinazotumia mara nyingi zaidi pia hushindwa kidogo zaidi na kupona haraka zaidi.
"Unaijenga, unaiendesha," SRE, na uwezo wa kuonekana. Ukienezwa na Amazon, "unaijenga, unaiendesha" inamaanisha timu inayoandika huduma pia inaiendesha, hubeba pager, na kuhisi kushindwa kwake — ikifunga mzunguko wa mrejesho kati ya chaguzi za uhandisi na uhalisia wa kiuendeshaji (angalia Mada 3.8 — Usimamizi wa Huduma na Uendeshaji Hai). Uhandisi wa kutegemewa kwa tovuti (SRE) ni utekelezaji mahususi unaotumia uhandisi kwa shughuli, ukiwa na malengo wazi ya kutegemewa na bajeti za makosa. Uwezo wa kuonekana — uwezo wa kuelewa hali ya ndani ya mfumo kutoka matokeo yake (vipimo, kumbukumbu, njia) — ndio unaokuwezesha kugundua na kutambua matatizo kabla wagonjwa na wahudumu wa kitabibu hawajafanya hivyo.
Mnyororo salama wa ugavi wa programu. Programu ya kisasa hukusanywa kutoka vijenzi vingi vya watu wa tatu na utegemezi. Shambulio la mnyororo wa ugavi hunyonya kijenzi kinachoaminika kudhoofisha kila kitu kinachokitegemea. Kusimamia utegemezi, kuchunguza udhaifu unaojulikana, na kudumisha orodha ya vijenzi vya programu ni usafi wa msingi wa uhandisi, si nyongeza ya hiari ya usalama.
Kuandika msimbo hadharani na programu huria. Sera ya serikali ya Uingereza — iliyoonyeshwa katika GDS Service Standard na NHS Service Standard — inazitaka timu kufanya msimbo mpya wa chanzo uwe wazi kwa chaguo-msingi na kutumia viwango huria. Kwa programu ya afya iliyofadhiliwa na umma hii inaboresha uchunguzi, kutumia tena, na uaminifu, mradi data ya mgonjwa na siri halisi zinawekwa nje ya hifadhi za umma kwa ukali.
Mazoea bora#
Jenga bomba la CI/CD kabla ya kujenga huduma. Anzisha ujenzi, majaribio, na utumiaji wa kiotomatiki tangu wiki ya kwanza, ili kila badiliko litiririke kupitia njia ileile inayorudiwa, inayokaguliwa kuelekea uzalishaji. Bomba ndipo milango yako ya usalama wa kitabibu, usalama, na ufikivu inapokaa kama ukaguzi wa kiotomatiki, ikikupa rekodi iliyoandikwa, inayoonyesha uchezewaji ya hasa kilichotumika na lini. Katika mfumo uliodhibitiwa njia hii ya ukaguzi si mzigo — ni ushahidi wa hoja yako ya usalama wa kitabibu (angalia Mada 1.6 — Usalama wa Kitabibu na Usimamizi wa Hatari).
Tumia mabadiliko madogo, ya mara kwa mara, yanayoweza kubatilishwa. Pendelea matoleo mengi madogo kuliko makubwa ya nadra, na ubuni kila badiliko liweze kubatilishwa au kuzimwa haraka. Badiliko dogo linaloshindwa ni rahisi kuelewa na kubatilisha; toleo kubwa la robo mwaka linaloshindwa ni tukio la kitabibu lenye washukiwa mia. Mbinu kama bendera za vipengele, matoleo ya kanari, na utumiaji wa bluu-kijani hukuruhusu kufichua badiliko hatua kwa hatua na kuliondoa papo hapo — kugeuza utumiaji kutoka tukio linaloogopwa kuwa tendo la kawaida, la drama ndogo.
Fanya kurudi nyuma haraka na kwa usafi kuwa kidhibiti cha kwanza cha usalama. Fanya mazoezi ya kurudi nyuma kama unavyofanya mazoezi ya kuzima moto, na upime inachukua muda gani kweli. Katika mfumo wa kitabibu uwezo wa thamani zaidi wa kiuendeshaji ni kurudi kwenye hali inayojulikana kuwa nzuri ndani ya dakika badiliko linaposababisha madhara. Kurudi nyuma ambako hakujaribiwa kamwe ni tumaini, si kidhibiti; thibitisha kunafanya kazi na uendelee kuthibitisha.
Chukulia miundombinu na usanidi kama msimbo. Fafanua mazingira, mitandao, na usanidi kwa kutangaza, chini ya udhibiti wa matoleo, na uvitoe kiotomatiki. Hii inakupa mazingira yanayoweza kuzalishwa upya, mabadiliko yaliyopitiwa na wenzao, na uwezo wa kujenga upya baada ya kushindwa au maafa (angalia Mada 3.9 — Mwendelezo wa Biashara na Kurejesha kutokana na Maafa). Seva za "bonge la theluji" zilizosanidiwa kwa mikono hazirudiki, hazijaandikwa, na ni chanzo cha kawaida cha "ilifanya kazi kwenye jaribio lakini si kwenye uzalishaji".
Tumia vipimo vya DORA kufanya mazungumzo ya uaminifu, si kupanga watu. Fuatilia mara ngapi unatumia, muda wa kuongoza, kiwango cha kushindwa kwa mabadiliko, na muda wa kurejesha kama ishara ya afya ya ngazi ya mfumo, na utazame vikisonga pamoja kuelekea haraka-na-salama zaidi. Pinga kuvigeuza kuwa orodha za ushindani za mtu mmoja mmoja au timu — waandishi wa DORA wenyewe wanaonya dhidi ya hili, kwa sababu huendesha hila na hatari fiche. Matumizi sahihi ni ya kutambua: kiwango cha kushindwa kwa mabadiliko kinachopanda kinakuambia kitu kuhusu ufunikaji wa majaribio au ukubwa wa kundi ambacho bodi inapaswa kutaka kusikia.
Kubali "unaijenga, unaiendesha," ukiungwa mkono na uwezo wa kuonekana. Zipe timu za utoaji umiliki halisi wa huduma zao katika uzalishaji, ikijumuisha wajibu wa kuwa kwenye simu, ili watu wanaofanya chaguzi za usanifu waishi na matokeo ya kiuendeshaji. Liunge mkono na uwezo wa kuonekana — vipimo, kumbukumbu zilizopangwa, na njia, pamoja na tahadhari zenye maana zinazofungwa kwenye athari kwa mtumiaji — ili timu zipate matatizo kabla wahudumu wa kitabibu hawajaripoti. Hii inafunga mzunguko wa mrejesho unaofanya chaguzi za uhandisi ziwe bora kwa muda na inaunganishwa moja kwa moja na usimamizi wa huduma (Mada 3.8).
Linda mnyororo wa ugavi wa programu kwa kuendelea. Dumisha orodha ya utegemezi, chunguza kiotomatiki kwa udhaifu unaojulikana, funga na uthibitishe matoleo, na uweke orodha ya vijenzi vya programu ili uweze kujibu "je, tumeathirika?" ndani ya saa baada ya kasoro inayofuata iliyotangazwa sana. Zuia nani na nini kinaweza kusukuma kwenye uzalishaji, na ulinde siri na vitambulisho kwa ukali (angalia Mada 4.2 — Usimamizi wa Utambulisho na Ufikiaji). Katika afya na huduma utegemezi ulioathirika ni njia ya data ya siri ya mgonjwa, kwa hiyo usafi wa mnyororo wa ugavi ni kazi ya usalama wa mgonjwa na ya utawala wa taarifa.
Weka na ulazimishe viwango vya uhandisi, na usimamie deni la kiufundi kwa makusudi. Kubaliana viwango vya uandishi wa msimbo, ukaguzi wa kiotomatiki wa mtindo, mapitio ya msimbo, na "ufafanuzi wazi wa kukamilika", ili ubora ujengwe ndani badala ya kukaguliwa ndani baadaye. Fuatilia deni la kiufundi waziwazi na ulilipe kama kazi iliyopangwa, kwa sababu deni lisilosimamiwa katika mfumo wa kitabibu huongeza kimyakimya gharama na hatari ya kila badiliko la baadaye. Viwango hufanya msimbo usomeke kwa mhandisi anayefuata — na kwa wakaguzi, maafisa wa usalama, na wapitiaji wa programu huria ambao wanaweza kuhitaji kuusoma.
Andika msimbo hadharani pale unapoweza kwa usalama. Fuata matarajio ya GDS na NHS ya kufanya msimbo mpya wa chanzo uwe wazi kwa chaguo-msingi na kutumia viwango huria, ukiweka data ya mgonjwa na siri nje ya hifadhi za umma kwa usimamizi wa siri wenye nidhamu. Msimbo wazi hukaribisha uchunguzi unaoboresha ubora na usalama, huwezesha kutumia tena katika mfumo wenye fedha chache, na hujenga imani ya umma kwamba matumizi ya programu ya fedha za umma yanafanya yanachodai. Pale msimbo hauwezi kufunguliwa kweli (kwa mfano, baadhi ya vijenzi nyeti kwa usalama), andika sababu badala ya kuchagua kufungwa kwa mazoea.
Maswali ya kujadili na timu yako#
Je, tunaamini kweli kwamba kubadilisha mifumo yetu ya kitabibu mara nyingi zaidi kunaifanya salama zaidi — na je, tabia yetu inalingana na imani hiyo? Swali hili linailazimisha timu kukabili pengo kati ya ushahidi na silika. Utafiti wa DORA uko wazi kwamba timu zinazotumia mabadiliko madogo mara kwa mara zina viwango vya chini vya kushindwa na hupona haraka zaidi, hata hivyo mashirika mengi ya afya bado hukusanya mabadiliko katika matoleo ya nadra, yenye milango mizito kwa jina la usalama, bila kukusudia kufanya kila moja kuwa kubwa na hatari zaidi. Jadili wapi michakato yako ya ushauri wa mabadiliko inapunguza hatari kweli dhidi ya wapi inaongeza tu kuchelewa kunakosukuma timu kuelekea matoleo ya mlipuko mmoja. Tazama kwa uaminifu matukio yako machache ya mwisho: yalisababishwa na mabadiliko madogo ya mara kwa mara, au na yale makubwa ya nadra na kutelekezwa bila viraka? Fikiria kama uwezo wako wa kurudi nyuma ni halisi na umefanyiwa mazoezi, kwa sababu hoja ya mabadiliko ya mara kwa mara inategemea kabisa kuweza kuyabatilisha haraka. Jibu zuri si la kiitikadi; linataja vidhibiti mahususi — majaribio ya kiotomatiki, matoleo ya kanari, kurudi nyuma kulikojaribiwa — vitakavyokuruhusu kuongeza mara za mabadiliko na kutimiza wajibu wako wa usalama wa kitabibu na uhakiki kwa wakati mmoja.
Nani anaendesha huduma zetu katika uzalishaji saa nane usiku, na hilo linatuambia nini kuhusu chaguzi zetu za uhandisi? "Unaijenga, unaiendesha" ni rahisi kuikubali na ngumu kuishi. Swali hili huibua kama watu wanaofanya maamuzi ya usanifu na utoaji wanahisi matokeo ya kiuendeshaji kweli, au maumivu yanatupwa kwa timu tofauti ya shughuli au dawati la huduma isiyoweza kurekebisha sababu za msingi. Chunguza hali ya uwezo wako wa kuonekana: rekodi ya pamoja ya huduma inapopungua kasi, je, unajifunza kutoka dashibodi na tahadhari, au kutoka kwa mhudumu wa kitabibu aliyekasirika? Jadili gharama ya kibinadamu pia — kuwa kwenye simu lazima kuwe kwa utu, kufadhiliwa, na kushirikiwa, la sivyo kunakuwa tatizo la kuchoka na kubakiza wafanyakazi, ambalo katika NHS yenye uhaba wa wafanyakazi ni hatari kubwa (angalia Mada 7.2 — Upangaji wa Nguvukazi). Kuna mabadilishano halisi kati ya umiliki kamili wa timu na uhalisia kwamba baadhi ya mashirika madogo na wasambazaji wanahitaji kweli jukwaa la pamoja au huduma inayosimamiwa kuendesha mambo kwa kutegemewa. Jibu imara linaunganisha wajibu wa kiuendeshaji kurudi kwenye usanifu: linabainisha mahali mzunguko wa mrejesho kati ya kujenga na kuendesha umevunjika, na ungebadilisha nini ili chaguzi za uhandisi zifahamishwe na uhalisia wa uendeshaji hai.
Ni kiasi gani cha msimbo wetu, na mazoezi yetu ya uhandisi, vingeweza kustahimili kufanywa vya umma — na jibu linafichua nini? Sera ya serikali na NHS inazitaka timu kuandika msimbo hadharani kwa chaguo-msingi, na swali hili linatumia lenzi hiyo kama kitambulisho hata pale uwazi kamili bado hauwezekani. Ikiwa matarajio ya kuchapisha hifadhi zako yanazua wasiwasi, uliza hasa kwa nini: ni siri zilizoandikwa moja kwa moja kwenye msimbo, data ya mgonjwa iliyopachikwa, ukosefu wa majaribio, maamuzi yasiyoandikwa, au kutofahamu tu? Kila moja ya hayo ni tatizo halisi la ubora wa uhandisi au la utawala wa taarifa ambalo kufungwa hulificha tu badala ya kulitatua. Jadili vikwazo halisi — baadhi ya msimbo nyeti kwa usalama unapaswa kubaki umefungwa, na kupata usimamizi wa siri sawa ni sharti la awali — dhidi ya faida za uchunguzi, kutumia tena katika mfumo wenye fedha chache, na imani ya umma katika jinsi matumizi ya programu ya afya yanavyotumika. Fikiria thamani ya sifa na usalama ya macho ya nje kupata kasoro kabla ya mshambuliaji. Jibu zuri la uaminifu hutofautisha msimbo uliofungwa kwa sababu inayotetewa, iliyoandikwa na ule uliofungwa kwa mazoea au aibu, na hujitolea kurekebisha masuala ya msingi ya ubora na usafi kwa vyovyote vile.
Kasoro iliyotangazwa sana katika utegemezi wa kawaida ikitangazwa kesho asubuhi, ingetuchukua muda gani kujibu "je, tumeathirika, na wapi?" Swali hili hujaribu kama usafi wa mnyororo wa ugavi ni uwezo halisi au tamaa, likitumia aina ya tukio la kisekta — kasoro ya mtindo wa Log4j — inayogeuza hatari ya kinadharia kuwa dharura ya siku hiyo. Jibu la uaminifu linategemea kama unadumisha orodha sahihi ya utegemezi na orodha ya vijenzi vya programu, au ungetumia siku kutafuta kupitia hifadhi na kuuliza wasambazaji ambao huenda hawajui wenyewe. Chunguza kiasi gani cha programu yako kinakusanywa kutoka vijenzi vya watu wa tatu na vya programu huria, na kiasi gani cha eneo hilo unafuatilia kweli kwa uchunguzi wa kiotomatiki dhidi ya ukaguzi wa mikono wa mara kwa mara. Jadili upande wa watu wa tatu na wasambazaji pia, kwa sababu katika afya na huduma sehemu kubwa ya mazingira inanunuliwa badala ya kujengwa, na utegemezi ulioathirika katika bidhaa ya msambazaji ni njia ya data ya siri ya mgonjwa usiyoidhibiti moja kwa moja (angalia Mada 1.7 — Utawala wa Taarifa, Ulinzi wa Data na Usalama wa Mtandao). Fikiria kama mabomba yako na ruhusa za kusukuma uzalishaji ni mkali vya kutosha ili kijenzi chenye sumu kisisafirishwe kimyakimya. Jibu imara hutaja muda halisi wa kujibu unaopimwa kwa saa, huelekeza kwenye zana mahususi na orodha zinazoliwezesha, na ni la uaminifu kuhusu sehemu za mazingira — hasa zinazotolewa na wasambazaji — ambapo mwonekano sasa ni dhaifu.
Je, vipimo vyetu vya uhandisi vinatuambia ukweli, au vimegeuka kimyakimya kuwa lengo la utendaji ambalo watu wanalisimamia kwenda juu? Vipimo vya DORA vina manufaa tu kama ishara ya uaminifu ya ngazi ya mfumo, na swali hili huchunguza kama vyako vimenusurika kugusana na vichocheo vya shirika. Sheria ya Goodhart haisamehe: mara kipimo cha mara ngapi unatumia au kiwango cha kushindwa kwa mabadiliko kinapokuwa nambari ambayo timu inahukumiwa kwa hiyo, watu huboresha nambari badala ya uhalisia wa msingi — kugawanya utumiaji ili kukuza mara, au kuainisha upya matukio kimyakimya ili yasihesabiwe kama kushindwa. Jadili nani anaona vipimo hivi na kwa nini, na kama vinatumika kwa kutambua kuhamasisha uwekezaji katika ufunikaji wa majaribio au ukubwa wa kundi, au kama orodha ya ushindani inayoendesha hila na hatari fiche. Fikiria upande wa pili pia: timu zisizopima chochote na kutegemea hadithi, kwa hiyo kiwango cha kushindwa kinachopanda hakionekani hadi kinapokuwa tukio la kitabibu. Kuna mvutano halisi kati ya hitaji halali la bodi la uhakiki na ukweli kwamba vipimo vyenye manufaa zaidi ni vile ambavyo timu zinahisi salama kuripoti kwa uaminifu. Jibu zuri linaeleza jinsi upimaji unavyowekwa fremu na kutawaliwa ili kuibua ukweli usiopendeza mapema badala ya kuwatuza watu kwa kuuficha.
Ni lini mwisho tulilipa deni la kiufundi kwa makusudi, na tunaamuaje "ya kutosha" inamaanisha nini katika uhandisi wa mfumo wa kitabibu? Deni la kiufundi katika mfumo wa kitabibu si suala la usafi; huongeza kimyakimya gharama na hatari ya kila badiliko la baadaye, kwa hiyo marekebisho yanayopaswa kuchukua siku yanachukua wiki mbili na kugusa msimbo ambao hakuna anayethubutu kuubadilisha. Swali hili linaifanya timu ikabili kama deni linasimamiwa kama kazi inayoonekana, iliyopangwa au linakusanywa tu hadi kitu kiharibike, na kama viwango vya uhandisi — mapitio ya msimbo, ukaguzi wa mtindo, ufafanuzi wazi wa kukamilika — vinalazimishwa kweli au vinaachwa chini ya shinikizo la utoaji. Chunguza mabadilishano halisi kati ya kusafirisha kipengele ambacho huduma inahitaji sasa na kudumisha ubora wa ndani unaoweka mfumo salama kubadilisha baadaye, kwa sababu katika afya na huduma yote mawili ni halali na usawa ni uamuzi wa busara, si kauli mbiu. Jadili jinsi viwango vinavyofanya msimbo usomeke si kwa mhandisi anayefuata tu bali kwa wakaguzi, maafisa wa usalama wa kitabibu, na wapitiaji wa programu huria ambao wanaweza kuhitaji kuusoma. Fikiria kama unaweza hata kuona deni lako: je, limetajwa na kufuatiliwa, au ni maarifa ya kikabila kuhusu moduli zipi zinatisha? Jibu la uaminifu huelekeza kwenye urekebishaji mahususi, uliofadhiliwa uliotokea kweli, na kwenye ufafanuzi wa pamoja, unaotetewa wa kiwango cha ubora ambacho mfumo uliodhibitiwa unadai.
Kwa vitendo: mfano wa afya na huduma#
Mfumo jumuishi wa huduma (ICS) unaendesha huduma ya pamoja ya "mahali pamoja pa kufikia" inayoelekeza rufaa za dharura za huduma za jamii kwa timu sahihi. Katika miaka yake miwili ya kwanza huduma ilitumiwa kwa mikono takriban mara moja kwa robo mwaka: msanidi alifuata ukurasa wa wiki wa hatua za mikono jioni ya Ijumaa, na kila toleo lilikuwa tukio la wasiwasi, la watu wote. Hitilafu ya kuelekeza rufaa ilipojitokeza — mara kwa mara ikituma rufaa za mahitaji tata kwa timu isiyofaa — marekebisho yalikaa kwenye foleni kwa wiki sita yakisubiri dirisha la toleo linalofuata, na wahudumu wa kitabibu walisimamia hatari kwa njia za kukwepa za mikono.
Kiongozi mpya wa uhandisi anaweka upya hili kama tatizo la usalama wa kitabibu, si la ufanisi tu. Timu inaanzisha bomba la CI/CD: kila badiliko ni dogo, limepitiwa na wenzao, na linajengwa na kujaribiwa kiotomatiki, na ukaguzi wa ufikivu na usalama na hatua ya idhini ya usalama wa kitabibu iliyosimbwa kama milango ya bomba inayozalisha rekodi inayokaguliwa kwa kumbukumbu ya hatari. Miundombinu inahamishwa kuwa msimbo, kwa hiyo mazingira ya jaribio na uzalishaji hatimaye yanalingana. Utumiaji unahama kutoka kila robo mwaka hadi mara kadhaa kwa wiki, ukitolewa kwanza kwa eneo moja kama kanari, na kurudi nyuma kulikojaribiwa kunakorudisha hali ya mwisho inayojulikana kuwa nzuri ndani ya chini ya dakika tano.
Miezi sita baadaye, vipimo vya DORA vinasimulia hadithi kwa bodi kwa lugha rahisi: muda wa kuongoza kwa marekebisho umeshuka kutoka wiki sita hadi chini ya siku, mara za utumiaji zimepanda mara kumi, na kiwango cha kushindwa kwa mabadiliko kimeshuka kwa sababu mabadiliko sasa ni madogo na yanaonekana. Hitilafu ya hila ya kuelekeza inapojirudia, dashibodi za uwezo wa kuonekana zinaashiria hitilafu ndani ya dakika, timu inarudi nyuma kabla rufaa yoyote kuelekezwa vibaya, inasafirisha marekebisho asubuhi iliyofuata, na kurekodi mapitio ya baada ya tukio bila lawama. Timu pia inachapisha injini ya kanuni za uelekezaji isiyo nyeti kama programu huria chini ya NHS Service Standard, na ICS jirani inaitumia tena. Kubadilisha mfumo mara nyingi zaidi kumeufanya salama zaidi kwa uthibitisho.
Mitazamo ya sekta#
Kampuni changa#
Kampuni changa ya afya ya kidijitali inaweza kukubali mazoezi ya kisasa ya uhandisi tangu siku ya kwanza, bila timu ya shughuli ya zamani ya kujadiliana nayo — maendeleo ya msingi wa shina, CI/CD, na miundombinu-kama-msimbo kimsingi ni chaguo-msingi vya bure katika timu ndogo, mpya, na hii ni faida ya kweli. Hatari ni kwamba "songa haraka" huacha kimyakimya nidhamu ambazo afya inadai: majaribio ya kiotomatiki, kurudi nyuma kulikojaribiwa, usimamizi wa siri, na uchunguzi wa utegemezi huhisiwa kama msuguano wakati hakuna mdhibiti anayetazama bado. Waanzilishi lazima watambue kwamba wajibu wa usalama wa kitabibu na mnyororo wa ugavi unaambatana bila kujali ukubwa wa kampuni, na kwamba seti moja ya data ya mgonjwa iliyovuja au utegemezi mmoja usiosimamiwa unaweza kumaliza kampuni. Njia ya vitendo ni kutegemea majukwaa ya wingu yanayosimamiwa na "barabara iliyojengwa" ndogo, yenye msimamo ili timu ndogo ipate usalama-kwa-chaguo-msingi bila kujenga kikundi cha jukwaa ambacho bado hakiwezi kumudu.
Biashara ndogo#
Mtoa huduma mdogo aliyeimarika au msambazaji — zahanati ya GP, duka la dawa la jamii, nyumba ya wazee, kliniki ya eneo moja, au muuzaji mdogo wa teknolojia ya afya aliyepita hatua ya kabla ya mapato — kwa kawaida ana wagonjwa halisi na shughuli halisi lakini hana kazi maalumu ya uhandisi au TEHAMA ya kuendesha mabomba, uwezo wa kuonekana, au kuwa kwenye simu. Kwa mashirika mengi kama haya umbo la vitendo la ubora wa uhandisi ni kununua vizuri badala ya kujenga: chagua wasambazaji na majukwaa yanayosimamiwa ambayo nidhamu yao ya DevOps unaweza kuikagua, na ufanye masasisho ya kiotomatiki, nakala za hifadhi zilizojaribiwa, na viraka vya utegemezi kuwa matarajio ya kimkataba badala ya matumaini. Muuzaji mdogo anapoandika programu, bomba moja lililosanidiwa vizuri la CI/CD kwenye jukwaa la wingu linalosimamiwa, lenye uchunguzi wa kiotomatiki wa utegemezi na siri zilizowekwa nje ya hifadhi, hutoa sehemu kubwa ya faida ya usalama kwa gharama ambayo timu nyembamba inaweza kudumisha. Mtego ni kudhani ukubwa mdogo unapunguza kiwango cha usalama wa kitabibu, usalama, na utawala wa taarifa — haupunguzi, na utegemezi usiowekewa kiraka au badiliko la mikono lililoenda vibaya hudhuru wagonjwa kwa uhakika katika zahanati ya wahudumu wawili kama katika chombo cha kitaifa. Lengo la kweli ni usalama-kwa-chaguo-msingi unaorithiwa kutoka majukwaa mazuri na wasambazaji wazuri, huku umakini mdogo wa zahanati ukitumika kuthibitisha kwamba chaguo-msingi hivyo vimewashwa kweli.
Biashara kubwa#
Hospitali kubwa ya NHS au msambazaji mkuu wa teknolojia ya afya ana rasilimali za kufanya uhandisi wa jukwaa, uwezo wa kuonekana, na "unaijenga, unaiendesha" ipasavyo, lakini anazuiliwa na mifumo ya zamani, timu zilizotenganishwa za maendeleo na shughuli, na michakato ya ushauri wa mabadiliko iliyojengwa kwa enzi ya polepole zaidi. Kushindwa kwa kawaida ni bodi nzito ya mabadiliko ambayo, ikijaribu kudhibiti hatari, inalazimisha matoleo makubwa yaliyokusanywa ambayo ni hatari zaidi kuliko yale madogo ya mara kwa mara inayoogopa. Fursa ni kuwekeza katika jukwaa la ndani la wasanidi linalojenga uzingatiaji, usalama, na milango ya usalama wa kitabibu ndani ya barabara iliyojengwa, ili timu makumi zirithi mazoezi mazuri badala ya kila moja kujadiliana. Ukubwa hapa ni upanga wenye makali mawili: eneo la athari la utumiaji mbaya ni kubwa, ndiyo sababu uwekaji kiotomatiki, matoleo ya kanari, na kurudi nyuma kulikojaribiwa ni muhimu badala ya hiari.
Serikali#
Chombo cha kitaifa kama NHS England au idara ya afya iliyogatuliwa huweka viwango ambavyo wengine hufuata — NHS na GDS Service Standards, udhibiti wa matumizi, matarajio ya kuandika msimbo hadharani — na kinawajibika kwa Bunge na umma kwa jinsi programu inavyojengwa na kuendeshwa. Chaguzi zake za uhandisi huenea katika mfumo: jukwaa la kitaifa lililoendeshwa vizuri, vijenzi vya programu huria vilivyochapishwa, na mwongozo wazi wa mnyororo wa ugavi huinua sakafu kwa kila hospitali na msambazaji. Vikwazo ni halisi — ufadhili wa miaka mingi, sheria za ununuzi, na ukubwa na unyeti wa data ya kitaifa humaanisha mdundo wa utumiaji ni wa kupimwa zaidi kuliko katika kampuni changa. Lenzi ya serikali lazima isawazishe uwazi wa kuigwa na kutumia tena dhidi ya usalama wa mifumo muhimu ya kitaifa, ikiamua kwa makusudi nini kinafunguliwa na nini kinalindwa, na kuandika hoja kwa vyovyote vile.
Njia za kawaida za kushindwa#
- Kupooza kwa "mabadiliko ni hatari". Kutumia mara chache ili kuhisi salama, jambo linalozalisha matoleo makubwa, hatari, yasiyoeleweka vizuri na kutelekezwa bila viraka. Dawa: mabadiliko madogo, ya mara kwa mara, yanayoweza kubatilishwa yenye kurudi nyuma kulikojaribiwa.
- Ukuta kati ya maendeleo na shughuli. Wasanidi "wanatupa msimbo juu ya ukuta" kwa timu tofauti ya shughuli isiyoweza kurekebisha sababu za msingi; hakuna anayemiliki mzunguko mzima. Dawa: umiliki wa pamoja na "unaijenga, unaiendesha", ukisaidiwa kwa utu.
- Utumiaji wa mikono, wa bonge la theluji. Matoleo yanamtegemea mtu mmoja na ukurasa wa wiki; mazingira yanapotoka na "inafanya kazi kwenye jaribio, inavunjika kwenye uzalishaji" ni ya kawaida. Dawa: CI/CD pamoja na miundombinu-kama-msimbo.
- Vipimo kama fimbo. Nambari za DORA zinatumika kupanga timu, zikiendesha hila na hatari fiche. Dawa: zitumie kama kitambulisho cha ngazi ya mfumo, kulingana na mwongozo wa DORA wenyewe.
- Shughuli zisizoona tahadhari. Hakuna uwezo wa kuonekana, kwa hiyo wagonjwa na wahudumu wa kitabibu wanagundua kushindwa kwanza. Dawa: vipimo, kumbukumbu, njia, na tahadhari za athari kwa mtumiaji.
- Mnyororo wa ugavi uliotelekezwa. Utegemezi usiowekewa viraka na vijenzi visivyochunguzwa huwa uvunjifu. Dawa: uchunguzi endelevu, orodha ya vijenzi vya programu, na mabomba yaliyolindwa.
- Kufichua kwa bahati mbaya. Kuandika msimbo hadharani kwa uzembe, kuvujisha siri au data ya mgonjwa. Dawa: usimamizi wa siri wenye ukali na uchunguzi kabla ya kuchapisha, si kurudi kwenye kufungwa-kwa-chaguo-msingi.
Kielelezo cha ukomavu#
| Kipimo | Kuanzisha | Kuendeleza | Kusawazisha | Kusimamia | Kuratibu |
|---|---|---|---|---|---|
| Ujenzi na toleo | Utumiaji wa mikono, wa nadra, wa mtu mmoja | Uwekaji kiotomatiki wa sehemu; matoleo bado yanakusanywa na kuogopwa | Bomba la CI/CD lenye majaribio na milango ya kiotomatiki | Mara za utumiaji na muda wa kuongoza hufuatiliwa dhidi ya malengo; milango ya bomba inahakikiwa na kukaguliwa | Utoaji endelevu wa mabadiliko madogo; utumiaji ni wa kawaida |
| Mabadiliko na kurudi nyuma | Hakuna mpango wa kurudi nyuma; kushindwa kunadumu | Kurudi nyuma kupo kwenye karatasi, mara chache kunajaribiwa | Kurudi nyuma kulikojaribiwa; matoleo ya kanari/bendera za vipengele | Muda wa kurudi nyuma hupimwa na kuripotiwa; kiwango cha kushindwa kwa mabadiliko kinatawaliwa dhidi ya vizingiti | Kurudi nyuma haraka kama kidhibiti cha usalama wa kitabibu kilichothibitishwa, kilichofanyiwa mazoezi |
| Miundombinu | Seva za bonge la theluji zilizosanidiwa kwa mikono | Maandishi ya msimbo fulani; mazingira yanapotoka | Miundombinu-kama-msimbo, iliyodhibitiwa kwa matoleo | Ugunduzi wa kupotoka na uzingatiaji-kama-msimbo vinalazimishwa; usawa wa mazingira unafuatiliwa kikamilifu | Inayoweza kuzalishwa upya kikamilifu, ya kujihudumia, inayoweza kurejeshwa baada ya maafa |
| Kuendesha na kuona | Timu tofauti ya shughuli; kushindwa kunagunduliwa na watumiaji | Ufuatiliaji wa msingi; kuzima moto kwa kuitikia | Timu inaendesha huduma yake; vipimo, kumbukumbu, njia, tahadhari | SLO na bajeti za makosa hufuatiliwa; tahadhari zinarekebishwa kwa athari kwa mtumiaji na kupitiwa dhidi ya malengo | "Unaijenga, unaiendesha" na SLO na kujifunza bila lawama |
| Mnyororo wa ugavi na uwazi | Utegemezi haujasimamiwa; msimbo wote umefungwa | Uchunguzi wa mikono wa mara kwa mara; uwazi wa ghafla | Uchunguzi wa kiotomatiki, orodha ya vijenzi vya programu; wazi pale ni salama | Mfichuo wa udhaifu hupimwa na kurekebishwa kwa SLA; vidhibiti vya mnyororo wa ugavi vinahakikiwa | Uhakiki endelevu wa mnyororo wa ugavi; wazi-kwa-chaguo-msingi na kutumia tena |
Orodha hakiki#
- Bomba la CI/CD linajenga, kujaribu, na kutumia kila badiliko kupitia njia moja inayokaguliwa, na milango ya usalama/ulinzi/ufikivu imesimbwa.
- Mabadiliko ni madogo, ya mara kwa mara, na yanaweza kubatilishwa kwa kujitegemea (bendera za vipengele, matoleo ya kanari au bluu-kijani).
- Kurudi nyuma kwenye hali inayojulikana kuwa nzuri kunajaribiwa mara kwa mara na kukamilika ndani ya muda ulioandikwa, mfupi.
- Miundombinu na usanidi vimefafanuliwa kama msimbo uliodhibitiwa kwa matoleo; mazingira ya jaribio na uzalishaji yanalingana.
- Vipimo vinne vya DORA vinafuatiliwa kama ishara ya ngazi ya mfumo, havitumiki kupanga watu au timu.
- Timu za utoaji zinamiliki huduma zao katika uzalishaji, na kuwa kwenye simu kwa utu, kufadhiliwa na uwezo wenye maana wa kuonekana (vipimo, kumbukumbu, njia, tahadhari).
- Utegemezi umeorodheshwa na kuchunguzwa kiotomatiki; orodha ya vijenzi vya programu ipo na siri zinalindwa.
- Viwango vya uhandisi, mapitio ya msimbo, na ufafanuzi wa kukamilika vimekubaliwa; deni la kiufundi linafuatiliwa na kulipwa kama kazi iliyopangwa.
- Msimbo mpya wa chanzo ni wazi kwa chaguo-msingi pale ni salama, kukiwa na ukaguzi mkali kwamba hakuna data ya mgonjwa au siri iliyofichuliwa.
- Mazoezi ya uhandisi yameandikwa ili mhandisi mpya, mkaguzi, au afisa wa usalama aweze kuelewa kinachoendeshwa na kwa nini (angalia Mada 10.3).
Vyanzo muhimu#
- Nicole Forsgren, Jez Humble & Gene Kim, Accelerate: The Science of Lean Software and Development and DevOps — utafiti wa DORA na vipimo vinne muhimu.
- DORA (DevOps Research and Assessment) — ripoti za kila mwaka za State of DevOps na orodha ya uwezo — dora.dev.
- Jez Humble & David Farley, Continuous Delivery — bomba la utumiaji na uwekaji kiotomatiki wa matoleo.
- Betsy Beyer et al. (wahariri), Site Reliability Engineering — kitabu cha SRE cha Google kuhusu kuendesha mifumo ya uzalishaji.
- NHS England — NHS Service Standard na NHS Digital Service Manual (ikijumuisha kuandika msimbo hadharani na viwango huria).
- GOV.UK Service Manual / Government Service Standard (GDS) — "fanya msimbo mpya wa chanzo uwe wazi", utoaji endelevu, na kuendesha huduma.
- National Cyber Security Centre (NCSC) — mwongozo kuhusu uendelezaji salama wa programu na usalama wa mnyororo wa ugavi.
- NHS England — viwango vya usimamizi wa hatari za kitabibu vya DCB0129 na DCB0160 (badiliko la uhandisi kama sehemu ya hoja ya usalama wa kitabibu).
Marejeo#
- DevOps — Wikipedia — https://en.wikipedia.org/wiki/DevOps
- CI/CD — Wikipedia — https://en.wikipedia.org/wiki/CI/CD
- Continuous integration — Wikipedia — https://en.wikipedia.org/wiki/Continuous_integration
- Continuous delivery — Wikipedia — https://en.wikipedia.org/wiki/Continuous_delivery
- Version control — Wikipedia — https://en.wikipedia.org/wiki/Version_control
- Infrastructure as code — Wikipedia — https://en.wikipedia.org/wiki/Infrastructure_as_code
- Platform engineering — Wikipedia — https://en.wikipedia.org/wiki/Platform_engineering
- DevOps Research and Assessment (DORA) — Wikipedia — https://en.wikipedia.org/wiki/DevOps_Research_and_Assessment
- Site reliability engineering — Wikipedia — https://en.wikipedia.org/wiki/Site_reliability_engineering
- Observability (software) — Wikipedia — https://en.wikipedia.org/wiki/Observability_(software)
- Supply chain attack — Wikipedia — https://en.wikipedia.org/wiki/Supply_chain_attack
- Open-source software — Wikipedia — https://en.wikipedia.org/wiki/Open-source_software
- Accelerate: The Science of Lean Software and DevOps — Nicole Forsgren, Jez Humble & Gene Kim (IT Revolution) — https://itrevolution.com/product/accelerate/
- DORA — DevOps Research and Assessment — Google Cloud / DORA — https://dora.dev/
- Continuous Delivery — Jez Humble & David Farley — https://continuousdelivery.com/
- Site Reliability Engineering — Google (O'Reilly) — https://sre.google/books/
- NHS Service Standard — NHS England — https://service-manual.nhs.uk/standards-and-technology/service-standard-points
- Making source code open and reusable — Government Digital Service, GOV.UK Service Manual — https://www.gov.uk/service-manual/technology/making-source-code-open-and-reusable
- Secure software development and supply chain security — National Cyber Security Centre (NCSC) — https://www.ncsc.gov.uk/collection/developers-collection
- Clinical risk management standards DCB0129 and DCB0160 — NHS England — https://digital.nhs.uk/services/clinical-safety