SakritÄ«bas ir nejauÅ”as, un tÄ patieÅ”Äm notika uz citas planÄtas...
VÄlos padalÄ«ties ar trÄ«s veiksmes un neveiksmju stÄstiem par to, kÄ aizmugursistÄmas izstrÄdÄtÄjs strÄdÄ komandÄ ar administratoriem.
StÄsts viens.
Web studija, darbinieku skaitu var saskaitÄ«t ar vienu roku. Å odien jÅ«s esat maketÄtÄjs, rÄ«t jÅ«s esat aizmugure, parÄ«t jÅ«s esat administrators. No vienas puses, jÅ«s varat iegÅ«t milzÄ«gu pieredzi. No otras puses, trÅ«kst kompetences visÄs jomÄs. Es joprojÄm atceros pirmo darba dienu, joprojÄm esmu zaļŔ, priekÅ”nieks saka: "AtvÄrt Å”pakteli", bet es nezinu, kas tas ir. SaziÅa ar adminiem ir izslÄgta, jo tu pats esi admins. ApsvÄrsim Ŕīs situÄcijas plusus un mÄ«nusus.
+ Viss spÄks ir tavÄs rokÄs.
+ Nav nepiecieŔams nevienam lūgt piekļuvi serverim.
+ Ätrs reakcijas laiks visos virzienos.
+ Labi uzlabo prasmes.
+ Pilnīga izpratne par produkta arhitektūru.
ā Augsta atbildÄ«ba.
ā RažoÅ”anas pÄrrÄvuma risks.
ā Ir grÅ«ti bÅ«t labam speciÄlistam visÄs jomÄs.
NeinteresÄ, ejam tÄlÄk
Otrais stÄsts.
Liels uzÅÄmums, liels projekts. Ir administrÄcijas nodaļa ar 5-7 darbiniekiem un vairÄkas attÄ«stÄ«bas grupas. AtnÄkot strÄdÄt Å”ÄdÄ uzÅÄmumÄ, katrs admins domÄ, ka neesi Å”eit ieradies, lai strÄdÄtu pie produkta, bet lai kaut ko salauztu. Ne parakstÄ«tais NDA, ne atlase intervijÄ neliecina par pretÄjo. NÄ, Å”is vÄ«rietis ieradÄs Å”eit ar savÄm netÄ«rajÄm mazajÄm rociÅÄm, lai sabojÄtu mÅ«su skÅ«pstu produkciju. TÄpÄc ar Å”Ädu personu jums ir nepiecieÅ”ams minimÄls saziÅas lÄ«menis; vismaz varat uzlÄ«mÄt atbildi. Neatbildiet uz jautÄjumiem par projekta arhitektÅ«ru. Ieteicams nepieŔķirt piekļuvi, kamÄr komandas vadÄ«tÄjs nav jautÄjis. Un, kad viÅÅ” lÅ«gs, viÅÅ” to atdos ar vÄl mazÄkÄm privilÄÄ£ijÄm, nekÄ viÅi prasÄ«ja. GandrÄ«z visu saziÅu ar Å”Ädiem administratoriem absorbÄ melnais caurums starp attÄ«stÄ«bas nodaļu un administrÄcijas nodaļu. ProblÄmas nav iespÄjams Ätri atrisinÄt. Bet jÅ«s nevarat ierasties personÄ«gi ā administratori ir pÄrÄk aizÅemti visu diennakti. (Ko jÅ«s visu laiku darÄt?) Daži veiktspÄjas raksturlielumi:
- VidÄjais izvietoÅ”anas laiks ražoÅ”anÄ ir 4-5 stundas
- MaksimÄlais izvietoÅ”anas laiks ražoÅ”anÄ 9 stundas
- IzstrÄdÄtÄjam lietojumprogramma ražoÅ”anÄ ir melnÄ kaste, tÄpat kÄ pats ražoÅ”anas serveris. Cik to kopÄ ir?
- Zema izlaidumu kvalitÄte, biežas kļūdas
- IzstrÄdÄtÄjs nepiedalÄs izlaiÅ”anas procesÄ
Nu ko es gaidÄ«ju, protams, jaunus cilvÄkus ražoÅ”anÄ nelaiž. Nu, labi, ieguvuÅ”i pacietÄ«bu, mÄs sÄkam iegÅ«t citu uzticÄ«bu. Bet nez kÄpÄc ar adminiem viss nav tik vienkÄrÅ”i.
1. darbība. Administrators ir neredzams.
IzdoÅ”anas diena, izstrÄdÄtÄjs un administrators nesazinÄs. Administratoram nav jautÄjumu. Bet kÄpÄc jÅ«s sapratÄ«sit vÄlÄk. Admins ir principiÄls cilvÄks, viÅam nav ziÅneÅ”u, nevienam neizdod savu telefona numuru, kÄ arÄ« nav profila sociÄlajos tÄ«klos. Nekur nav pat viÅa fotoattÄla, kÄ tu izskaties? MÄs apjukumÄ sÄžam kopÄ ar atbildÄ«go vadÄ«tÄju apmÄram 15 minÅ«tes, mÄÄ£inot izveidot saziÅu ar Å”o Voyager 1, tad korporatÄ«vajÄ e-pastÄ parÄdÄs ziÅojums, ka viÅÅ” ir pabeidzis. Vai mÄs sarakstÄ«simies pa pastu? KÄpÄc ne? Ärti, vai ne? Nu labi, atvÄsinÄsimies. Process jau notiek, atpakaļceļa vairs nav. Izlasiet ziÅojumu vÄlreiz. "ES pabeidzu". Ko tu pabeidzi? Kur? Kur man tevi meklÄt? Å eit jÅ«s saprotat, kÄpÄc 4 stundas atbrÄ«voÅ”anai ir normÄli. MÄs saÅemam attÄ«stÄ«bas Å”oku, bet mÄs pabeidzam izlaidumu. Nav vairs nekÄdas vÄlÄÅ”anÄs atbrÄ«vot.
2. akts. Ne tÄ versija.
NÄkamais izlaidums. IegÅ«stot pieredzi, mÄs sÄkam veidot serverim nepiecieÅ”amÄs programmatÅ«ras un bibliotÄku sarakstus administratoriem, dažiem norÄdot versijas. KÄ vienmÄr saÅemam vÄju radio signÄlu, ka admins tur kaut ko ir pabeidzis. SÄkas regresijas tests, kas pats par sevi aizÅem apmÄram stundu. Å Ä·iet, ka viss darbojas, taÄu ir viena kritiska kļūda. SvarÄ«ga funkcionalitÄte nedarbojas. NÄkamÄs stundas bija dejas ar tamburÄ«niem, zÄ«lÄÅ”ana uz kafijas biezumiem un detalizÄts katra koda fragmenta apskats. Administrators saka, ka ir izdarÄ«jis visu. Greizo izstrÄdÄtÄju rakstÄ«tÄ aplikÄcija nestrÄdÄ, bet serveris strÄdÄ. Vai viÅam ir jautÄjumi? Stundas beigÄs mÄs pieprasÄm, lai administrators tÄrzÄÅ”anas un bingo programmÄ nosÅ«tÄ«tu bibliotÄkas versiju ražoÅ”anas serverÄ« ā tÄ nav mums vajadzÄ«ga. LÅ«dzam administratoru instalÄt nepiecieÅ”amo versiju, taÄu atbildÄ saÅemam, ka viÅÅ” to nevar izdarÄ«t, jo Ŕīs versijas nav OS pakotÅu pÄrvaldniekÄ. LÅ«k, no atmiÅas padziļinÄjumiem vadÄ«tÄjs atceras, ka cits admins Å”o problÄmu jau bija atrisinÄjis, vienkÄrÅ”i ar rokÄm samontÄjot vajadzÄ«go versiju. Bet nÄ, mÅ«sÄjie to nedarÄ«s. Noteikumi aizliedz. KÄrli, mÄs te sÄžam vairÄkas stundas, kÄds ir laika limits?! MÄs saÅemam kÄrtÄjo Å”oku un kaut kÄ pabeidzam izlaidumu.
3. cÄliens, Ä«ss
Steidzama biļete, atslÄgas funkcionalitÄte nedarbojas vienam no lietotÄjiem ražoÅ”anÄ. PÄris stundas pavadÄm ÄubinÄt un pÄrbaudot. AttÄ«stÄ«bas vidÄ viss darbojas. Ir skaidra izpratne, ka bÅ«tu ieteicams izpÄtÄ«t php-fpm žurnÄlus. TajÄ laikÄ projektÄ nebija tÄdu baļķu sistÄmu kÄ ELK vai Prometheus. MÄs atveram biļeti administrÄcijas nodaļai, lai viÅi varÄtu piekļūt servera php-fpm žurnÄliem. Å eit jums jÄsaprot, ka mÄs lÅ«dzam piekļuvi iemesla dÄļ, vai jÅ«s neatceraties par melno caurumu un administratoriem, kas ir aizÅemti visu diennakti? Ja palÅ«dziet paÅ”iem apskatÄ«t baļķus, tad Å”is ir uzdevums ar prioritÄti āne Å”ajÄ dzÄ«vÄā. Biļete tika izveidota, saÅÄmÄm tÅ«lÄ«tÄju atbildi no administrÄcijas nodaļas vadÄ«tÄja: "Jums nevajadzÄtu piekļūt ražoÅ”anas žurnÄliem, rakstiet bez kļūdÄm." Aizkars.
4. cÄliens un tÄlÄk
MÄs joprojÄm apkopojam desmitiem problÄmu ražoÅ”anÄ dažÄdu bibliotÄku versiju, nekonfigurÄtas programmatÅ«ras, nesagatavotas servera ielÄdes un citu problÄmu dÄļ. Protams, ir arÄ« koda kļūdas, mÄs nevainosim adminus visos grÄkos, mÄs tikai pieminÄsim vÄl vienu tipisku darbÄ«bu Å”im projektam. Mums bija diezgan daudz fona darbinieku, kas tika palaisti ar uzrauga starpniecÄ«bu, un daži skripti bija jÄpievieno cron. Dažreiz Å”ie paÅ”i darbinieki pÄrtrauca darbu. Rindas servera slodze pieauga zibens ÄtrumÄ, un bÄdÄ«gi lietotÄji skatÄ«jÄs uz griežamo iekrÄvÄju. Lai Ätri salabotu Å”Ädus darbiniekus, pietika ar to vienkÄrÅ”u restartÄÅ”anu, taÄu atkal to varÄja izdarÄ«t tikai administrators. KamÄr tika veikta tÄda pamata operÄcija, varÄja paiet vesela diena. Å eit, protams, ir vÄrts atzÄ«mÄt, ka greizajiem programmÄtÄjiem vajadzÄtu rakstÄ«t strÄdniekus, lai tie nesaskrien, bet, kad viÅi nokrÄ«t, bÅ«tu jauki saprast, kÄpÄc, kas dažkÄrt nav iespÄjams, jo nav piekļuves ražoÅ”anai, protams, un lÄ«dz ar to izstrÄdÄtÄja žurnÄlu trÅ«kums.
PÄrveidoÅ”anÄs.
To visu izturot diezgan ilgi, kopÄ ar komandu sÄkÄm stÅ«rÄt sev veiksmÄ«gÄkÄ virzienÄ. RezumÄjot, ar kÄdÄm problÄmÄm mÄs saskÄrÄmies?
- KvalitatÄ«vas komunikÄcijas trÅ«kums starp izstrÄdÄtÄjiem un administrÄcijas nodaļu
- Administratori, izrÄdÄs(!), nemaz nesaprot, kÄ aplikÄcija ir strukturÄta, kÄdas tai ir atkarÄ«bas un kÄ tÄ darbojas.
- IzstrÄdÄtÄji nesaprot, kÄ darbojas ražoÅ”anas vide, un lÄ«dz ar to nevar efektÄ«vi reaÄ£Ät uz problÄmÄm.
- IzvietoÅ”anas process aizÅem pÄrÄk ilgu laiku.
- Nestabila izlaidumi.
Ko mÄs esam izdarÄ«juÅ”i?
Katram laidienam tika izveidots izlaiduma piezÄ«mju saraksts, kurÄ bija iekļauts to darbu saraksts, kas jÄveic serverÄ«, lai nÄkamais laidiens darbotos. SarakstÄ bija vairÄkas sadaļas, darbs, kas jÄveic administratoram, par izlaiÅ”anu atbildÄ«gajai personai un izstrÄdÄtÄjam. IzstrÄdÄtÄji saÅÄma ne-root piekļuvi visiem ražoÅ”anas serveriem, kas paÄtrinÄja attÄ«stÄ«bu kopumÄ un jo Ä«paÅ”i problÄmu risinÄÅ”anu. IzstrÄdÄtÄjiem ir arÄ« izpratne par to, kÄ notiek ražoÅ”ana, kÄdos pakalpojumos tÄ ir sadalÄ«ta, kur un cik maksÄ replikas. Dažas no kaujas slodzÄm ir kļuvuÅ”as skaidrÄkas, kas neapÅ”aubÄmi ietekmÄ koda kvalitÄti. SaziÅa izlaiÅ”anas procesa laikÄ notika viena tÅ«lÄ«tÄjÄ ziÅojuma sniedzÄja tÄrzÄÅ”anÄ. PirmkÄrt, mums bija visu darbÄ«bu žurnÄls, otrkÄrt, komunikÄcija notika tuvÄkÄ vidÄ. DarbÄ«bu vÄsture ne reizi vien ir ļÄvusi jaunajiem darbiniekiem ÄtrÄk atrisinÄt problÄmas. Tas ir paradokss, taÄu tas bieži palÄ«dzÄja paÅ”iem administratoriem. Es neuzÅemÅ”os to droÅ”i teikt, bet man Ŕķiet, ka administratori ir sÄkuÅ”i vairÄk saprast, kÄ projekts darbojas un kÄ tas ir uzrakstÄ«ts. Dažreiz mÄs pat dalÄ«jÄmies savÄ starpÄ ar dažÄm detaļÄm. VidÄjais izlaiÅ”anas laiks ir samazinÄts lÄ«dz stundai. DažkÄrt bijÄm galÄ 30-40 minÅ«tÄs. Kļūdu skaits ir ievÄrojami samazinÄjies, ja ne desmit reizes. Protams, izlaiÅ”anas laika samazinÄÅ”anos ietekmÄja arÄ« citi faktori, piemÄram, automÄtiskÄs pÄrbaudes. PÄc katras izlaiduma mÄs sÄkÄm rÄ«kot retrospekcijas. Lai visai komandai bÅ«tu priekÅ”stats par to, kas jauns, kas ir mainÄ«ts un kas ir noÅemts. DiemžÄl ne vienmÄr pie viÅiem nÄca admini, nu, admini ir aizÅemti... Mans kÄ izstrÄdÄtÄja gandarÄ«jums par darbu neapÅ”aubÄmi ir palielinÄjies. Kad jÅ«s varat Ätri atrisinÄt gandrÄ«z jebkuru problÄmu, kas ir jÅ«su kompetences jomÄ, jÅ«s jÅ«taties labÄk. VÄlÄk es sapratÄ«Å”u, ka zinÄmÄ mÄrÄ mÄs ieviesÄm devops kultÅ«ru, protams, ne pilnÄ«bÄ, bet pat tas pÄrvÄrtÄ«bu sÄkums bija iespaidÄ«gs.
TreÅ”ais stÄsts
UzsÄkt. Viens admins, maza izstrÄdes nodaļa. Ierodoties esmu pilnÄ«ga nulle, jo... Man nav piekļuves nekur, izÅemot no pasta. MÄs rakstÄm administratoram un lÅ«dzam piekļuvi. TurklÄt ir informÄcija, ka viÅÅ” ir informÄts par jauno darbinieku un nepiecieÅ”amÄ«bu izsniegt pieteikumvÄrdus/paroles. Tie nodroÅ”ina piekļuvi no repozitorija un VPN. KÄpÄc pieŔķirt piekļuvi wiki, teamcity, rundesk? BezjÄdzÄ«gas lietas cilvÄkam, kurÅ” tika aicinÄts uzrakstÄ«t visu backend daļu. Tikai laika gaitÄ mÄs iegÅ«stam piekļuvi dažiem rÄ«kiem. IeraÅ”anÄs, protams, tika uzÅemta ar neuzticÄ«bu. Es cenÅ”os lÄnÄm izjust, kÄ darbojas projekta infrastruktÅ«ra, izmantojot tÄrzÄÅ”anu un vadoÅ”os jautÄjumus. PrincipÄ es neko neatpazÄ«stu. RažoÅ”ana ir tÄda pati melnÄ kaste kÄ iepriekÅ”. TaÄu pat testÄÅ”anai izmantotie skatuves serveri ir melnÄ kaste. MÄs nevaram darÄ«t neko citu, kÄ vien izvietot filiÄli no Git. MÄs arÄ« nevaram konfigurÄt savu lietojumprogrammu, piemÄram, .env failus. Piekļuve Å”ÄdÄm darbÄ«bÄm netiek pieŔķirta. Jums ir jÄlÅ«dz, lai testa servera lietojumprogrammas konfigurÄcijÄ tiktu mainÄ«ta rinda. (PastÄv teorija, ka administratoriem ir ļoti svarÄ«gi justies svarÄ«giem projektÄ; ja viÅiem netiek lÅ«gts mainÄ«t rindiÅas konfigurÄcijÄs, tÄs vienkÄrÅ”i nebÅ«s vajadzÄ«gas). Nu, kÄ vienmÄr, vai tas nav Ärti? Tas Ätri kļūst garlaicÄ«gi, pÄc tieÅ”as sarunas ar adminu uzzinÄm, ka izstrÄdÄtÄji ir dzimuÅ”i, lai rakstÄ«tu sliktu kodu, pÄc bÅ«tÄ«bas ir nekompetenti indivÄ«di un labÄk viÅus turÄt tÄlÄk no ražoÅ”anas. Bet te arÄ« no testa serveriem, katram gadÄ«jumam. Konflikts strauji saasinÄs. Nav saziÅas ar adminu. SituÄciju pasliktina tas, ka viÅÅ” ir viens. TÄlÄk ir parÄdÄ«ts tipisks attÄls. AtbrÄ«vot. Noteikta funkcionalitÄte nedarbojas. Mums ir nepiecieÅ”ams ilgs laiks, lai saprastu, kas notiek, ÄatÄ tiek iemesta dažÄdas izstrÄdÄtÄju idejas, taÄu administrators Å”ÄdÄ situÄcijÄ parasti pieÅem, ka vainÄ«gi ir izstrÄdÄtÄji. Tad viÅÅ” raksta ÄatÄ, pagaidi, es viÅu izlaboju. Kad tiek lÅ«gts atstÄt stÄstu ar informÄciju par problÄmas cÄloni, mÄs saÅemam toksiskus attaisnojumus. PiemÄram, nebÄz savu degunu tur, kur tas neder. IzstrÄdÄtÄjiem ir jÄraksta kods. SituÄcija, kad projektÄ daudzas Ä·ermeÅa kustÄ«bas iet caur vienu cilvÄku un tikai viÅam ir iespÄja veikt visiem nepiecieÅ”amÄs operÄcijas, ir ÄrkÄrtÄ«gi skumja. TÄds cilvÄks ir Å”ausmÄ«gs saÅ”aurinÄjums. Ja Devops idejas cenÅ”as samazinÄt laiku lÄ«dz tirdzniecÄ«bai, tad Å”Ädi cilvÄki ir Devops ideju ļaunÄkais ienaidnieks. DiemžÄl Å”eit priekÅ”kars aizveras.
P.S. PÄc tam, kad tÄrzÄÅ”anÄ ar cilvÄkiem nedaudz runÄju par izstrÄdÄtÄjiem un administratoriem, es satiku cilvÄkus, kuri dalÄ«jÄs manÄs sÄpÄs. TaÄu bija arÄ« tÄdi, kas teica, ka ar ko tÄdu nav saskÄruÅ”ies. VienÄ devops konferencÄ es pajautÄju Antonam IsaÅinam (Alfa Bank), kÄ viÅi risina problÄmas, kas raduÅ”Äs administratoru formÄ, uz ko viÅÅ” atbildÄja: "MÄs tos aizstÄjÄm ar pogÄm." Starp citu
Avots: www.habr.com