Faida:
- Uthibitishaji wa tabaka mbili kwa kutengeneza usanidi kwa akili ya bandia na kuthibitisha sintaksia na kuuliza maana.
- Uwezo wa kufanya mteremko wa usanidi uonekane kupitia ulinganisho wa akili ya bandia na kuizuia kwa chanzo cha dhahabu na kanuni ya kiolezo.
- Uwezo wa kuondoa siri kutoka kwa shirika la usanidi, kuchukua nakala rudufu, na kupata nidhamu ya utekelezaji wa taratibu na canary.
Usimamizi wa Usanidi: Kuzalisha, Kuthibitisha, na Kukamata Drift katika Usanidi na AI.
Seva au huduma hupata tabia yake kutoka kwa faili za usanidi: ni mlango gani ambao seva ya wavuti itasikiliza, ni miunganisho mingapi ambayo hifadhidata itakubali, iwe mpangilio wa usalama umewashwa au umezimwa yote yameandikwa katika faili hizi. Usimamizi wa usanidi ni nidhamu ya kuhakikisha kuwa mipangilio hii ni sahihi, thabiti, na sawa katika seva zote. Inaonekana rahisi, lakini katika mazoezi hapa ndipo jinamizi hutoka: mstari mmoja usio sahihi huharibu huduma, mpangilio mmoja usio thabiti husababisha maafa ya "ilikuwa inaendeshwa kwenye mashine yangu". Hapa AI ni haraka sana katika kuunda usanidi, kuelezea kizuizi ngumu cha mipangilio, kulinganisha usanidi mbili, na kupata makosa ya syntax. Lakini kanuni isiyobadilika: AI hutoa mwongozo wa usanidi; Ni wajibu wako kuithibitisha, kuijaribu katika mazingira ya majaribio na kuitekeleza katika uzalishaji.
Katika kitengo hiki, dhana za drift (usanidi wa drift - seva zinazohamia mbali na kila mmoja na kiwango kwa muda), usanidi usio na uwezo, templating na uthibitishaji; Utajifunza uundaji wa usanidi salama na kulinganisha na AI.
Configuration drift: muuaji kimya
Tatizo la usanidi hatari zaidi sio kuanguka kwa ghafla, lakini slaidi ya siri. Drift ni mkengeuko wa seva kutoka kwa kila mmoja na kutoka kwa kiwango kinachohitajika kwa wakati. Mtu hubadilisha mwenyewe mpangilio wa urekebishaji wa dharura usiku mmoja lakini haandishi; mtu mwingine huingiza thamani tofauti kwenye seva nyingine; Seva kumi ambazo zilipaswa kuwa "sawa" miezi baadaye sasa zinaonyesha tabia kumi tofauti. Hatari ya kuteleza ni kwamba haionekani hadi shida itatokea - basi seva moja hufanya tofauti na wengine na utambuzi huchukua masaa. AI inaweza kufanya drift ionekane kwa kuweka usanidi mbili kando na kuorodhesha tofauti. Lakini suluhisho la kweli ni la kitamaduni: kudhibiti usanidi sio kwa mkono, lakini kutoka kwa chanzo kilichotolewa na kinachoweza kurudiwa.
Kidokezo: Tumia kanuni ya "chanzo cha dhahabu": kuwa na toleo moja sahihi, toleo la kila usanidi (kama hazina ya Git). Linganisha mara kwa mara hali halisi kwenye seva na rasilimali hii ya dhahabu; Ikiwa kuna tofauti, ama kurekebisha drift au kusasisha chanzo. AI huharakisha ulinganisho huu.
Hatua kwa hatua: salama mabadiliko ya usanidi
- Hifadhi nakala ya hali ya sasa. Tengeneza nakala ya usanidi kabla ya kuibadilisha. Hii ndiyo dhamana pekee ya kurudi.
- Rasimu ya mabadiliko na AI. Eleza dhamira, kama vile "kuwasha ukandamizaji wa gzip katika nginx kwa aina hizi"; Wacha AI itoe kizuizi kinachofaa. Bainisha ni toleo gani, kwa sababu sintaksia inatofautiana kulingana na toleo.
- Thibitisha sintaksia. Huduma nyingi zina amri ya uthibitishaji (nginx -t, apachectl configtest, sshd -t). Uliza AI kuhusu amri hii na uhakikishe kuiendesha. Usanidi usio sahihi hautaanzisha huduma.
- Thibitisha maana. Syntax inaweza kuwa halali lakini inaweza kufanya jambo baya. Uliza AI "kizuizi hiki hufanya nini hasa, ina athari gani ya usalama au utendaji?"
- Ijaribu katika mazingira ya majaribio. Kwanza tumia mabadiliko katika hatua na upakie upya huduma, angalia tabia.
- Omba hatua kwa hatua na ufuatilie. Usiende kwa uzalishaji mara moja, lakini kwanza utekeleze kwenye seva (canary), uifuatilie, kisha uchapishe. Ikiwa shida zitatokea, rudisha kutoka kwa nakala rudufu.
Data ya kiolezo na ya siri
Mipangilio mara nyingi huwa na maadili ambayo hutofautiana kulingana na mazingira: anwani ya hifadhidata, nenosiri, bandari. Badala ya kuandika maadili haya kama viunga kwenye mwili wa usanidi, tumia templeti na anuwai: mwili unabaki sawa, maadili hutoka nje kulingana na mazingira. Kwa hivyo template hiyo hiyo inafanya kazi katika mtihani na uzalishaji, tofauti pekee ni vigezo. Jambo muhimu: nywila na funguo hazipaswi kuandikwa kwa uwazi katika faili ya usanidi. Pata hizi kutoka kwa msimamizi wa siri au utofauti wa mazingira. Unapouliza AI kwa kiolezo, iagize "kutoa siri kwa kutofautisha, usiwahi kuandika nywila wazi kwenye mwili."
kesi tatu ndogo
Kesi ya 1 - Ulinganisho haukufanyika. Seva moja kati ya nane za wavuti ilikuwa polepole mara kwa mara. Mhandisi alitoa usanidi uliofichwa wa seva nane kwa AI na kuifanya iorodheshe tofauti. AI ilialamisha kikomo kimoja cha muunganisho kwenye seva yenye matatizo kama nusu ya nyingine - mabadiliko ya mwongozo ambayo hayana hati yaliyofanywa miezi iliyopita. Drift alikuwa asiyeonekana; Ulinganisho ulifunua katika dakika 5.
Kesi ya 2 - Amri ya uthibitishaji ilizuia kuacha kufanya kazi. Msimamizi alikuwa anaongeza mpangilio mpya wa ugumu kwenye seva ya SSH. AI ilirudisha kizuizi ambacho kilionekana kuwa sawa. Mhandisi aliendesha uthibitishaji wa sshd -t kabla ya kutuma maombi; Inabadilika kuwa maagizo yaliandikwa tofauti katika toleo hilo la SSH. Ikiwa mabadiliko yalikuwa ya moja kwa moja na huduma ikawashwa tena, ufikiaji wote wa mbali unaweza kukatizwa. Amri ya uthibitishaji ilizuia mkwamo.
Kesi ya 3 - Kiolezo kiliacha kuvuja. Timu ilikuwa inakili usanidi wa hifadhidata kwa kila mazingira na kuandika nenosiri lililofunguliwa kwa faili. Nakala iliisha kwa bahati katika hifadhi iliyoshirikiwa. Kwa usaidizi wa AI, timu ilibadilisha usanidi kuwa kiolezo: nenosiri sasa lilitoka kwa utofauti wa mazingira, likiwa na ${DB_PASSWORD} pekee mwilini. Hatari iliyofuata ya kuvuja haikuwa na madhara kwa sababu hakukuwa na siri kwenye ganda.
Violezo vinne vinavyoweza kunakiliwa
1) Uzalishaji wa kizuizi cha usanidi:
Jukumu lako: mhandisi mkuu wa mifumo. Tengeneza kizuizi cha usanidi cha [huduma + toleo, k.m.nginx 1.24]. Kusudi: [kusudi]. Mikataba: tumia sintaksia inayolingana na toleo; Kamwe usiandike siri kwa mwili, huenda kwa kutofautiana; Eleza kila agizo kwa maelezo mafupi. Kisha nipe amri ya uthibitishaji ambayo ninahitaji kutekeleza kabla ya kutumia mabadiliko haya.
2) Kulinganisha usanidi mbili (drift):
Chini ni usanidi uliofichwa wa seva mbili katika jukumu sawa (A na B). Orodhesha tofauti zote muhimu kati yao katika fomu ya jedwali; Andika athari inayowezekana ya tabia kwa kila tofauti. Alama ni tofauti zipi zinazobeba hatari. Usiongeze maoni, onyesha tu tofauti za kweli. A: [...] B: [...]
3) Maelezo ya usanidi na ukaguzi wa hatari:
Eleza mstari wa kuzuia usanidi ufuatao kwa mstari: kila maagizo hufanya nini, jinsi yanavyotofautiana na chaguo-msingi, ina athari gani ya usalama au utendakazi? Pia weka alama kwenye mipangilio ambayo inaweza kuwa hatari au hatari. Zuia: [usanidi]
4) Ubadilishaji kuwa kiolezo:
Geuza usanidi ufuatao wa thamani isiyobadilika kuwa kiolezo: toa maadili ambayo yanatofautiana kulingana na mazingira (anwani, bandari, nenosiri) kuwa vigeuzi, ondoa siri kutoka kwa mwili kabisa na ubainishe wapi zitatoka (kigeu cha mazingira/kidhibiti cha siri). Usiache nenosiri lolote wazi katika mwili. Usanidi: [config]
Mwongozo dhaifu / Mwongozo thabiti
Agizo dhaifu:
rekebisha usanidi wangu wa nginx. [Bandika usanidi]
"Rekebisha" ni wazi, hakuna toleo, hakuna kusudi, na hakuna kinyago cha usanidi. AI haitajua nini cha kurekebisha, na inaweza hata kuvunja mpangilio wa kufanya kazi.
Agizo lenye nguvu:
Jukumu lako: mhandisi mkuu wa mifumo. Ninatumia nginx 1.24. Katika usanidi uliofichwa hapa chini, nataka kufungua kashe ya kivinjari kwa faili tuli kwa siku 7, lakini bila kuvunja vichwa vya usalama vilivyopo. Nipe: (1) mistari ya kuongeza/kubadilisha, (2) kila mstari hufanya nini, (3) amri ya uthibitishaji ya kutekeleza kabla ya kutumia, (4) hatua ya kurudi nyuma matatizo yakitokea. Sanidi: [iliyofichwa]
Mbinu
Hatari ya kukimbia
kurudi
usalama wa siri
Badilisha seva mwenyewe kwa seva
juu sana
kutokuwa na uhakika
Nenosiri dhaifu, dhahiri
Chanzo cha dhahabu + kiolezo + tofauti
chini
Historia ya toleo
Nguvu, siri iko nje
Programu bila uthibitishaji
-
Huduma inaweza kukatika
-
Hifadhi nakala + uthibitishaji + canary
-
Udhamini
-
Makosa ya kawaida
- Kuruka amri ya uthibitishaji. Usanidi batili uliotumika bila kuendesha nginx -t, sshd -t hautaanza huduma.
- Kubadilisha bila chelezo. Uhakikisho pekee wa kurudi ni nakala ya marekebisho ya awali; Bila hivyo, kila mabadiliko ni kamari.
- Kuandika siri kwa uwazi kwenye mwili. Wakati usanidi ulio na nywila unashirikiwa au kuvuja, ni ukiukaji wa moja kwa moja.
- Kupuuza Drift. Tofauti zisizo na hati kati ya seva huzalisha hitilafu za siri ambazo huongeza uchunguzi kwa saa.
- Bila kubainisha toleo. Sintaksia ya usanidi inatofautiana kulingana na toleo; Usipoiambia AI toleo, inaweza kutoa vizuizi batili.
Tahadhari: Kwa sababu tu usanidi ni halali kisintaksia haimaanishi kuwa ni sahihi. nginx -t inaweza kusema "syntax ok" lakini mpangilio unatumika tabia mbaya bila makosa. Baada ya uthibitishaji wa sintaksia, hakikisha umethibitisha maana na tabia.
Kwa muhtasari
Usimamizi wa usanidi huhakikisha kuwa mipangilio ni sahihi, thabiti, na sawa katika seva zote. Adui mbaya zaidi ni kuteleza: mabadiliko ya mwongozo ambayo hayana hati hutenganisha seva. AI ni mshirika mwenye nguvu katika kuzalisha, kufafanua, na kulinganisha usanidi ili kufanya mteremko uonekane. Hifadhi nakala kabla ya mabadiliko, angalia syntax na amri ya uthibitishaji, uliza maana na AI, tumia hatua kwa hatua katika mazingira ya mtihani na kwa canary. Ondoa siri kutoka kwa mwili na utumie violezo na vigezo. Zuia kuteleza katika nafasi ya kwanza kwa kanuni ya chanzo cha dhahabu.
Jukumu la maombi
Chukua faili ya usanidi ya seva mbili zinazofanana kutoka kwa mazingira yako mwenyewe, funika maeneo nyeti, na uwaambie AI ifanye uchanganuzi wa kuteleza na kiolezo cha "Kulinganisha usanidi mbili" hapo juu. Tathmini tofauti zinazopatikana katika suala la hatari. Kisha ubadilishe mojawapo ya usanidi huu kuwa kiolezo kisicho na siri chenye kiolezo cha "Geuza kuwa kiolezo" na upange ni wapi pa kupata vigeu. Hatimaye, andika mabadiliko madogo na kiolezo cha "Tengeneza kizuizi cha usanidi" na kumbuka amri ya uthibitishaji. Fanya muhtasari wa mchakato katika vipengee 6.
orodha ya ukaguzi
- [ ] Je, nilihifadhi usanidi kabla ya mabadiliko?
- [ ] Je, nilibainisha toleo la huduma kwa AI na kuomba sintaksia inayolingana na toleo?
- [ ] Je, nimeangalia sintaksia na amri ya uthibitishaji (-t n.k.)?
- [ ] Hata kama sintaksia ni halali, je, nimethibitisha zaidi maana na tabia?
- [ ] Je, nilitoa siri kutoka kwa mwili na kutumia variable/template?
- [ ] Je, nimelinganisha mteremko wa seva-vuka na kuoanisha na chanzo cha dhahabu?