Izstrādātāji ir no Marsa, administratori ir no Venēras

Izstrādātāji ir no Marsa, administratori ir no Venēras

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 apraide ar viņa lÄ«dzdalÄ«bu. Gribētos ticēt, ka labu adminu ir daudz vairāk nekā ienaidnieku. Un jā, bilde sākumā ir Ä«sta sarakste.

Avots: www.habr.com

Pievieno komentāru