InfrastruktÅ«ra kÄ kods: kÄ pÄrvarÄt problÄmas, izmantojot XP
Sveiks, Habr! IepriekÅ” sÅ«dzÄjos par dzÄ«vi InfrastruktÅ«rÄ kÄ koda paradigmÄ un neko nepiedÄvÄju, lai atrisinÄtu esoÅ”o situÄciju. Å odien es atgriezÄ«Å”os, lai pastÄstÄ«tu, kÄdas pieejas un prakses palÄ«dzÄs jums izkļūt no izmisuma bezdibeÅa un virzÄ«t situÄciju pareizajÄ virzienÄ.
IepriekÅ”ÄjÄ rakstÄ "InfrastruktÅ«ra kÄ kods: pirmÄ iepazÄ«Å”anÄs" Es dalÄ«jos savos iespaidos par Å”o jomu, mÄÄ£inÄju pÄrdomÄt paÅ”reizÄjo situÄciju Å”ajÄ jomÄ un pat ierosinÄju, ka varÄtu palÄ«dzÄt visiem izstrÄdÄtÄjiem zinÄma standarta prakse. VarÄtu Ŕķist, ka par dzÄ«vi bija daudz sÅ«dzÄ«bu, bet priekÅ”likumu par izeju no esoÅ”Äs situÄcijas nebija.
Kas mÄs esam, kur mÄs atrodamies un kÄdas problÄmas mums ir
Å obrÄ«d esam Sre Onboarding Team, kurÄ ir seÅ”i programmÄtÄji un trÄ«s infrastruktÅ«ras inženieri. MÄs visi cenÅ”amies rakstÄ«t infrastruktÅ«ru kÄ kodu (IaC). MÄs to darÄm, jo āāpamatÄ zinÄm, kÄ rakstÄ«t kodu, un esam bijuÅ”i āvirs vidÄjÄ lÄ«meÅaā izstrÄdÄtÄji.
Mums ir virkne priekÅ”rocÄ«bu: noteikta pieredze, zinÄÅ”anas par praksi, spÄja rakstÄ«t kodu, vÄlme apgÅ«t jaunas lietas.
Un ir nokarenÄ daļa, kas ir arÄ« mÄ«nuss: zinÄÅ”anu trÅ«kums par infrastruktÅ«ras aparatÅ«ru.
TehnoloÄ£iju kopums, ko izmantojam savÄ IaC.
Terraforma resursu radīŔanai.
IepakotÄjs attÄlu salikÅ”anai. Tie ir Windows, CentOS 7 attÄli.
Jsonnet, lai izveidotu jaudÄ«gu bÅ«vÄjumu vietnÄ drone.io, kÄ arÄ« Ä£enerÄtu pakotnes json un mÅ«su terraform moduļus.
Azura.
IespÄjams, gatavojot attÄlus.
Python palÄ«gpakalpojumiem un nodroÅ”inÄÅ”anas skriptiem.
Un tas viss VSCode ar spraudÅiem, ko koplieto komandas dalÄ«bnieki.
SecinÄjums no mana pÄdÄjais raksts bija Å”Äds: es centos (pirmkÄrt sevÄ«) iedvest optimismu, gribÄju teikt, ka izmÄÄ£inÄsim mums zinÄmÄs pieejas un prakses, lai tiktu galÄ ar grÅ«tÄ«bÄm un sarežģījumiem, kas pastÄv Å”ajÄ jomÄ.
PaÅ”laik mÄs cÄ«nÄmies ar Å”ÄdÄm IaC problÄmÄm:
Koda izstrÄdes rÄ«ku un lÄ«dzekļu nepilnÄ«bas.
LÄna izvietoÅ”ana. InfrastruktÅ«ra ir daļa no reÄlÄs pasaules, un tÄ var bÅ«t lÄna.
Pieeju un prakses trūkums.
MÄs esam jauni un neko daudz nezinÄm.
EkstrÄmÄ programmÄÅ”ana (XP) glÄbÅ”anai
Visi izstrÄdÄtÄji ir iepazinuÅ”ies ar ekstrÄmo programmÄÅ”anu (XP) un ar to saistÄ«to praksi. Daudzi no mums ir strÄdÄjuÅ”i ar Å”o pieeju, un tÄ ir bijusi veiksmÄ«ga. TÄtad, kÄpÄc neizmantot tur noteiktos principus un praksi, lai pÄrvarÄtu infrastruktÅ«ras problÄmas? MÄs nolÄmÄm izmantot Å”o pieeju un redzÄt, kas notiks.
XP pieejas pielietojamÄ«bas pÄrbaude jÅ«su nozarÄTÄlÄk ir sniegts apraksts par vidi, kurai XP ir labi piemÄrota, un kÄ tÄ ir saistÄ«ta ar mums:
1. Dinamiski mainÄ«gas programmatÅ«ras prasÄ«bas. Mums bija skaidrs, kÄds ir gala mÄrÄ·is. Bet detaļas var atŔķirties. MÄs paÅ”i izlemjam, kur mums jÄtakso, tÄpÄc prasÄ«bas periodiski mainÄs (galvenokÄrt paÅ”i). Ja Åemam SRE komandu, kas pati veic automatizÄciju un pati ierobežo prasÄ«bas un darba apjomu, tad Å”is punkts labi iederas.
2. Riski, ko rada noteikta laika projekti, izmantojot jaunas tehnoloÄ£ijas. MÄs varam saskarties ar riskiem, lietojot dažas mums nezinÄmas lietas. Un tas ir 100% mÅ«su gadÄ«jums. Viss mÅ«su projekts bija tÄdu tehnoloÄ£iju izmantoÅ”ana, kuras mÄs lÄ«dz galam nebijÄm pazÄ«stami. KopumÄ tÄ ir pastÄvÄ«ga problÄma, jo... InfrastruktÅ«ras sektorÄ visu laiku parÄdÄs daudzas jaunas tehnoloÄ£ijas.
3,4. Maza, lÄ«dzÄs izvietota paplaÅ”inÄta izstrÄdes komanda. JÅ«su izmantotÄ automatizÄtÄ tehnoloÄ£ija ļauj veikt vienÄ«bu un funkcionÄlos testus. Å ie divi punkti mums nav Ä«sti piemÄroti. PirmkÄrt, mÄs neesam saskaÅota komanda, otrkÄrt, esam deviÅi, ko var uzskatÄ«t par lielu komandu. Lai gan saskaÅÄ ar dažÄm ālielasā komandas definÄ«cijÄm daudz ir 14+ cilvÄki.
ApskatÄ«sim dažas XP metodes un to, kÄ tÄs ietekmÄ atgriezeniskÄs saites Ätrumu un kvalitÄti.
XP atsauksmju cilpas princips
ManÄ izpratnÄ atgriezeniskÄ saite ir atbilde uz jautÄjumu, vai es daru pareizi, vai mÄs tur ejam? XP tam ir dieviŔķa shÄma: laika atgriezeniskÄs saites cilpa. Interesanti ir tas, ka jo zemÄk esam, jo āāÄtrÄk spÄjam panÄkt, lai OS atbild uz nepiecieÅ”amajiem jautÄjumiem.
Å Ä« ir diezgan interesanta tÄma diskusijai, ka mÅ«su IT nozarÄ ir iespÄjams Ätri iegÅ«t OS. IedomÄjieties, cik sÄpÄ«gi ir seÅ”us mÄneÅ”us taisÄ«t projektu un tikai pÄc tam uzzinÄt, ka paÅ”Ä sÄkumÄ ir bijusi kļūda. Tas notiek projektÄÅ”anÄ un jebkurÄ sarežģītu sistÄmu bÅ«vniecÄ«bÄ.
MÅ«su IaC gadÄ«jumÄ atsauksmes mums palÄ«dz. Es nekavÄjoties veicu nelielu korekciju iepriekÅ” redzamajÄ diagrammÄ: izlaiÅ”anas plÄnÄ nav mÄneÅ”a cikla, bet tas notiek vairÄkas reizes dienÄ. Ir dažas prakses, kas saistÄ«tas ar Å”o OS ciklu, kuras mÄs aplÅ«kosim sÄ«kÄk.
SvarÄ«gi: atsauksmes var bÅ«t visu iepriekÅ” minÄto problÄmu risinÄjums. ApvienojumÄ ar XP praksÄm tas var izvilkt jÅ«s no izmisuma bezdibeÅa.
KÄ izvilkt sevi no izmisuma bezdibeÅa: trÄ«s prakses
Testi
XP atgriezeniskÄs saites cilpÄ testi ir minÄti divreiz. Tas nav tikai tÄ. Tie ir ÄrkÄrtÄ«gi svarÄ«gi visai Extreme Programming tehnikai.
Tiek pieÅemts, ka jums ir vienÄ«bas un pieÅemÅ”anas testi. Daži sniedz jums atsauksmes dažu minÅ«Å”u laikÄ, citi dažu dienu laikÄ, tÄpÄc to rakstÄ«Å”ana prasa ilgÄku laiku un tiek pÄrskatÄ«ta retÄk.
Ir klasiska testÄÅ”anas piramÄ«da, kas parÄda, ka testu vajadzÄtu bÅ«t vairÄk.
KÄ Å”Ä« sistÄma attiecas uz mums IaC projektÄ? PatiesÄ«bÄ... nemaz.
VienÄ«bas testu, neskatoties uz to, ka tiem vajadzÄtu bÅ«t daudz, nevar bÅ«t pÄrÄk daudz. Vai arÄ« viÅi kaut ko ļoti netieÅ”i pÄrbauda. PatiesÄ«bÄ mÄs varam teikt, ka mÄs tos vispÄr nerakstÄm. Bet Å”eit ir daži pieteikumi Å”Ädiem testiem, ko mÄs varÄjÄm veikt:
Jsonnet koda pÄrbaude. Tas, piemÄram, ir mÅ«su dronu montÄžas cauruļvads, kas ir diezgan sarežģīts. Jsonnet kods ir labi aptverts ar testiem.
MÄs izmantojam Å”o VienÄ«bu testÄÅ”anas sistÄma Jsonnet.
PÄrbauda skriptus, kas tiek izpildÄ«ti, kad resurss sÄkas. Skripti tiek rakstÄ«ti Python, un tÄpÄc uz tiem var rakstÄ«t testus.
KonfigurÄciju ir iespÄjams pÄrbaudÄ«t testos, bet mÄs to nedarÄm. Ir iespÄjams arÄ« konfigurÄt resursu konfigurÄcijas noteikumu pÄrbaudes, izmantojot tflints. TomÄr pÄrbaudes tur vienkÄrÅ”i ir pÄrÄk vienkÄrÅ”as terraformai, taÄu daudzi testa skripti ir rakstÄ«ti AWS. MÄs izmantojam Azure, tÄpÄc tas atkal neattiecas.
Komponentu integrÄcijas testi: tas ir atkarÄ«gs no tÄ, kÄ jÅ«s tos klasificÄjat un kur tos ievietojat. Bet pamatÄ viÅi strÄdÄ.
Å Ädi izskatÄs integrÄcijas testi.
Å is ir piemÄrs, veidojot attÄlus Drone CI. Lai tos sasniegtu, jums ir jÄgaida 30 minÅ«tes, lÄ«dz tiek izveidots pakotnes attÄls, un pÄc tam vÄl 15 minÅ«tes, lÄ«dz tie pazÅ«d. Bet viÅi pastÄv!
AttÄla pÄrbaudes algoritms
IepakotÄjam vispirms ir pilnÄ«bÄ jÄsagatavo attÄls.
Blakus testam ir terraforma ar vietÄjo stÄvokli, ko mÄs izmantojam Ŕī attÄla izvietoÅ”anai.
Atlokot, tiek izmantots neliels modulis, kas atrodas blakus, lai atvieglotu darbu ar attÄlu.
Kad VM ir izvietots no attÄla, var sÄkties pÄrbaudes. BÅ«tÄ«bÄ pÄrbaudes tiek veiktas ar automaŔīnu. Tas pÄrbauda, āākÄ skripti darbojÄs startÄÅ”anas laikÄ un kÄ darbojas dÄmoni. Lai to izdarÄ«tu, izmantojot ssh vai winrm, mÄs piesakÄmies jaunizveidotajÄ maŔīnÄ un pÄrbaudÄm konfigurÄcijas statusu vai pakalpojumu darbÄ«bu.
LÄ«dzÄ«ga situÄcija ir ar integrÄcijas testiem terraform moduļos. Å eit ir Ä«sa tabula, kurÄ izskaidrotas Å”Ädu testu Ä«paŔības.
Atsauksmes par cauruļvadu ir aptuveni 40 minÅ«tes. Viss notiek ļoti ilgu laiku. To var izmantot regresijai, bet jaunai attÄ«stÄ«bai tas kopumÄ ir nereÄls. Ja esat tam ļoti, ļoti sagatavojies, sagatavojiet palaistos skriptus, tad varat to samazinÄt lÄ«dz 10 minÅ«tÄm. Bet tie joprojÄm nav vienÄ«bas testi, kas veic 5 gabalus 100 sekundÄs.
VienÄ«bu pÄrbaužu trÅ«kums attÄlu vai terraformu moduļu montÄžas laikÄ mudina darbu pÄrcelt uz atseviŔķiem pakalpojumiem, kurus var vienkÄrÅ”i palaist, izmantojot REST, vai uz Python skriptiem.
PiemÄram, mums bija jÄpÄrliecinÄs, ka, startÄjot virtuÄlo maŔīnu, tÄ reÄ£istrÄ sevi pakalpojumÄ MÄrogsFT, un, kad virtuÄlÄ maŔīna tika iznÄ«cinÄta, tÄ pati izdzÄsÄs.
TÄ kÄ mums ir ScaleFT kÄ pakalpojums, mÄs esam spiesti strÄdÄt ar to, izmantojot API. Tur bija rakstÄ«ts iesaiÅojums, ko var pavilkt un teikt: "Ieej un izdzÄsiet to un to." Tas saglabÄ visus nepiecieÅ”amos iestatÄ«jumus un piekļuves.
Par to jau varam rakstÄ«t parastus testus, jo tas ne ar ko neatŔķiras no parastÄs programmatÅ«ras: kaut kÄda apiha tiek izsmieta, tu to pavelc un skaties, kas notiek.
PÄrbaužu rezultÄti: VienÄ«bas testÄÅ”ana, kurai vajadzÄtu dot OS minÅ«tÄ, to nedod. PÄrbaudes veidi, kas atrodas augstÄk piramÄ«dÄ, ir efektÄ«vi, taÄu aptver tikai daļu no problÄmÄm.
PÄru programmÄÅ”ana
PÄrbaudes, protams, ir labas. JÅ«s varat tos rakstÄ«t daudz, tie var bÅ«t dažÄda veida. ViÅi strÄdÄs savÄ lÄ«menÄ« un sniegs mums atsauksmes. Bet problÄma ar sliktiem vienÄ«bas testiem, kas nodroÅ”ina ÄtrÄko OS, paliek. TajÄ paÅ”Ä laikÄ es joprojÄm gribu Ätru OS, ar kuru ir viegli un patÄ«kami strÄdÄt. Nemaz nerunÄjot par iegÅ«tÄ risinÄjuma kvalitÄti. Par laimi, ir metodes, kas var nodroÅ”inÄt pat ÄtrÄku atgriezenisko saiti nekÄ vienÄ«bas testi. Å Ä« ir pÄra programmÄÅ”ana.
Rakstot kodu, vÄlaties pÄc iespÄjas ÄtrÄk saÅemt atsauksmes par tÄ kvalitÄti. JÄ, jÅ«s varat rakstÄ«t visu funkciju zarÄ (lai nevienam neko nesabojÄtu), GithubÄ veikt izvilkÅ”anas pieprasÄ«jumu, pieŔķirt to kÄdam, kura viedoklim ir nozÄ«me, un gaidÄ«t atbildi.
Bet jÅ«s varat gaidÄ«t ilgi. CilvÄki visi ir aizÅemti, un atbilde, pat ja tÄda ir, var nebÅ«t kvalitatÄ«vÄka. PieÅemsim, ka atbilde nÄca uzreiz, recenzents uzreiz saprata visu domu, bet atbilde tomÄr nÄk novÄloti, pÄc fakta. Es vÄlos, lai tas bÅ«tu agrÄk. TieÅ”i uz to ir vÄrsta pÄru programmÄÅ”ana ā uzreiz, rakstÄ«Å”anas laikÄ.
TÄlÄk ir norÄdÄ«ti pÄru programmÄÅ”anas stili un to pielietojamÄ«ba darbÄ ar IaC:
1. Klasika, PieredzÄjis+PieredzÄjis, maiÅa pÄc taimera. Divas lomas ā Å”oferis un navigators. Divi cilvÄki. ViÅi strÄdÄ ar vienu un to paÅ”u kodu un maina lomas pÄc noteikta iepriekÅ” noteikta laika.
ApsvÄrsim mÅ«su problÄmu saderÄ«bu ar stilu:
ProblÄma: koda izstrÄdes rÄ«ku un rÄ«ku nepilnÄ«bas.
NegatÄ«vÄ ietekme: tas attÄ«stÄs ilgÄk, mÄs palÄninÄmies, darba temps/ritms zÅ«d.
KÄ mÄs cÄ«nÄmies: mÄs izmantojam atŔķirÄ«gus rÄ«kus, kopÄ«gu IDE un arÄ« apgÅ«stam saÄ«snes.
ProblÄma: lÄna izvietoÅ”ana.
Negatīva ietekme: palielina laiku, kas nepiecieŔams, lai izveidotu darba koda daļu. Gaidot mums kļūst garlaicīgi, rokas stiepjas, lai gaidot paveiktu ko citu.
KÄ mÄs cÄ«nÄmies: mÄs to nepÄrvarÄjÄm.
ProblÄma: pieejas un prakses trÅ«kums.
NegatÄ«vÄ ietekme: nav zinÄÅ”anu par to, kÄ to izdarÄ«t labi un kÄ to izdarÄ«t slikti. Pagarina atsauksmju saÅemÅ”anu.
KÄ mÄs cÄ«nÄmies: savstarpÄja viedokļu un prakses apmaiÅa pÄru darbÄ gandrÄ«z atrisina problÄmu.
GalvenÄ problÄma, izmantojot Å”o stilu IaC, ir nevienmÄrÄ«gais darba temps. TradicionÄlajÄ programmatÅ«ras izstrÄdÄ jums ir ļoti vienveidÄ«ga kustÄ«ba. JÅ«s varat pavadÄ«t piecas minÅ«tes un rakstÄ«t N. Pavadiet 10 minÅ«tes un rakstiet 2N, 15 minÅ«tes - 3N. Å eit jÅ«s varat pavadÄ«t piecas minÅ«tes un rakstÄ«t N, un pÄc tam pavadÄ«t vÄl 30 minÅ«tes un uzrakstÄ«t desmito daļu no N. Å eit jÅ«s neko nezinÄt, jÅ«s esat iestrÄdzis, stulba. IzmeklÄÅ”ana prasa laiku un novÄrÅ” uzmanÄ«bu no paÅ”as programmÄÅ”anas.
SecinÄjums: tÄ«rÄ veidÄ tas mums nav piemÄrots.
2. Ping-pongs. Å Ä« pieeja paredz, ka viena persona raksta testu, bet cita veic tÄ ievieÅ”anu. Å emot vÄrÄ to, ka ar Unit testiem viss ir sarežģīti, un ir jÄraksta integrÄcijas tests, kura programmÄÅ”ana prasa ilgu laiku, visa pingponga vienkÄrŔība pazÅ«d.
Varu teikt, ka mÄs mÄÄ£inÄjÄm nodalÄ«t atbildÄ«bu par testa skripta izstrÄdi un tÄ koda ievieÅ”anu. Viens dalÄ«bnieks izdomÄja scenÄriju, Å”ajÄ darba daÄ¼Ä viÅÅ” bija atbildÄ«gs, viÅam piederÄja pÄdÄjais vÄrds. Un otrs bija atbildÄ«gs par ievieÅ”anu. Tas izdevÄs labi. Ar Å”o pieeju palielinÄs skripta kvalitÄte.
SecinÄjums: diemžÄl darba temps neļauj izmantot galda tenisu kÄ pÄru programmÄÅ”anas praksi IaC.
3. SpÄcÄ«gs stils.Sarežģīta prakse. Ideja ir tÄda, ka viens dalÄ«bnieks kļūst par direktÄ«vu navigatoru, bet otrs uzÅemas izpildes virzÄ«tÄja lomu. Å ajÄ gadÄ«jumÄ tiesÄ«bas pieÅemt lÄmumus ir tikai navigatoram. VadÄ«tÄjs tikai drukÄ un var ietekmÄt notiekoÅ”o ar vÄrdu. Lomas nemainÄs ilgu laiku.
PiemÄrots mÄcÄ«bÄm, bet prasa spÄcÄ«gas mÄ«kstÄs prasmes. LÅ«k, kur mÄs klibojÄm. Tehnika bija grÅ«ta. Un tas pat nav par infrastruktÅ«ru.
SecinÄjums: to potenciÄli var izmantot, mÄs nepametam mÄÄ£inÄjumus.
4. Mobings, spietoÅ”ana un visi zinÄmie, bet neuzskaitÄ«tie stili MÄs to neuzskatÄm, jo MÄs to neesam mÄÄ£inÄjuÅ”i, un par to nav iespÄjams runÄt mÅ«su darba kontekstÄ.
VispÄrÄ«gi pÄru programmÄÅ”anas rezultÄti:
Mums ir nevienmÄrÄ«gs darba temps, kas rada apjukumu.
MÄs saskÄrÄmies ar nepietiekami labÄm mÄ«kstajÄm prasmÄm. Un priekÅ”metu joma nepalÄ«dz pÄrvarÄt Å”os mÅ«su trÅ«kumus.
Ilgi testi un problÄmas ar rÄ«kiem apgrÅ«tina izstrÄdi pÄrÄ«.
5. Neskatoties uz to, bija panÄkumi. MÄs nÄcÄm klajÄ ar savu metodi āKonverÄ£ence - DiverÄ£enceā. Es Ä«si aprakstÄ«Å”u, kÄ tas darbojas.
Mums ir pastÄvÄ«gi partneri uz dažÄm dienÄm (mazÄk par nedÄļu). MÄs kopÄ veicam vienu uzdevumu. KÄdu laiku pasÄžam kopÄ: viens raksta, otrs sÄž un vÄro atbalsta komandu. PÄc tam kÄdu laiku izklÄ«dinÄm, katrs veic kÄdas patstÄvÄ«gas lietas, tad atkal sanÄkam kopÄ, ļoti Ätri sinhronizÄjamies, kaut ko darÄm kopÄ un atkal izklÄ«dinÄm.
PlÄnoÅ”ana un komunikÄcija
PÄdÄjais prakÅ”u bloks, caur kuru tiek risinÄtas OS problÄmas, ir darba organizÄcija ar paÅ”iem uzdevumiem. Tas ietver arÄ« pieredzes apmaiÅu, kas notiek Ärpus pÄru darba. ApskatÄ«sim trÄ«s prakses:
1. MÄrÄ·i caur mÄrÄ·a koku. MÄs organizÄjÄm kopÄjo projekta vadÄ«bu caur koku, kas bezgalÄ«gi sniedzas nÄkotnÄ. Tehniski izsekoÅ”ana tiek veikta Miro. Ir viens uzdevums ā tas ir starpmÄrÄ·is. No tÄ aiziet vai nu mazÄki mÄrÄ·i, vai uzdevumu grupas. PaÅ”i uzdevumi nÄk no viÅiem. Visi uzdevumi tiek izveidoti un uzturÄti Å”ajÄ dÄlÄ«.
Å Ä« shÄma nodroÅ”ina arÄ« atgriezenisko saiti, kas notiek reizi dienÄ, kad sinhronizÄjamies mÄ«tiÅos. KopÄ«gs plÄns visiem priekÅ”Ä, bet strukturÄts un pilnÄ«gi atklÄts, ļauj ikvienam apzinÄties notiekoÅ”o un to, cik tÄlu esam progresÄjuÅ”i.
Uzdevumu vizuÄlÄ redzÄjuma priekÅ”rocÄ«bas:
CÄloÅsakarÄ«ba. Katrs uzdevums ved uz kÄdu globÄlu mÄrÄ·i. Uzdevumi tiek grupÄti mazÄkos mÄrÄ·os. Pats infrastruktÅ«ras domÄns ir diezgan tehnisks. Ne vienmÄr ir uzreiz skaidrs, kÄda konkrÄta ietekme uz biznesu ir, piemÄram, runbook rakstÄ«Å”ana par migrÄÅ”anu uz citu nginx. Ja mÄrÄ·a karte atrodas tuvumÄ, tas kļūst skaidrÄks.
CÄloÅsakarÄ«ba ir svarÄ«ga problÄmu Ä«paŔība. Tas tieÅ”i atbild uz jautÄjumu: "Vai es daru pareizi?"
ParalÄlisms. MÄs esam deviÅi, un ir vienkÄrÅ”i fiziski neiespÄjami visus mest vienÄ uzdevumÄ. Ne vienmÄr var pietikt arÄ« ar vienas jomas uzdevumiem. MÄs esam spiesti paralÄli strÄdÄt starp mazÄm darba grupÄm. TajÄ paÅ”Ä laikÄ grupas kÄdu laiku sÄž uz savu uzdevumu, tÄs var pastiprinÄt kÄds cits. Dažreiz cilvÄki atkrÄ«t no Ŕīs darba grupas. KÄds dodas atvaļinÄjumÄ, kÄds veido atskaiti DevOps konf., kÄds raksta rakstu par Habr. Ä»oti svarÄ«gi kļūst zinÄt, kÄdus mÄrÄ·us un uzdevumus var veikt paralÄli.
2. RÄ«ta sanÄksmju vadÄ«tÄju nomaiÅa. Pie stÄvÄÅ”anas mums ir tÄda problÄma ā cilvÄki daudzus uzdevumus veic paralÄli. Dažreiz uzdevumi ir brÄ«vi saistÄ«ti, un nav izpratnes par to, kurÅ” ko dara. Un vÄl viena komandas biedra viedoklis ir ļoti svarÄ«gs. Å Ä« ir papildu informÄcija, kas var mainÄ«t problÄmas risinÄÅ”anas gaitu. Protams, parasti kÄds ir lÄ«dzi, bet padomi un padomi vienmÄr noder.
Lai uzlabotu Å”o situÄciju, mÄs izmantojÄm paÅÄmienu āChanging the Leading Stand-Upā. Tagad tie tiek pagriezti saskaÅÄ ar noteiktu sarakstu, un tam ir sava ietekme. Kad pienÄk jÅ«su kÄrta, jÅ«s esat spiests ienirt un saprast, kas notiek, lai novadÄ«tu labu Scrum sanÄksmi.
3. IekÅ”ÄjÄ demonstrÄcija. PalÄ«dzÄ«ba problÄmas risinÄÅ”anÄ no pÄru programmÄÅ”anas, vizualizÄcijas problÄmu kokÄ un palÄ«dzÄ«ba scrum sanÄksmÄs no rÄ«ta ir laba, bet ne ideÄla. KÄ pÄris jÅ«s ierobežo tikai jÅ«su zinÄÅ”anas. Uzdevumu koks palÄ«dz globÄli saprast, kas ko dara. Un vadÄ«tÄjs un kolÄÄ£i rÄ«ta sanÄksmÄ neiedziļinÄs jÅ«su problÄmÄs. ViÅi noteikti varÄtu kaut ko palaist garÄm.
RisinÄjums tika rasts, demonstrÄjot viens otram paveikto un pÄc tam pÄrrunÄjot to. MÄs tiekamies reizi nedÄÄ¼Ä uz stundu un parÄdÄm detalizÄtu informÄciju par pÄdÄjÄs nedÄļas laikÄ paveikto uzdevumu risinÄjumiem.
DemonstrÄcijas laikÄ ir jÄatklÄj uzdevuma detaļas un noteikti jÄdemonstrÄ tÄ darbÄ«ba.
ZiÅojumu var veikt, izmantojot kontrolsarakstu.1. Ieejiet kontekstÄ. No kurienes radÄs uzdevums, kÄpÄc tas vispÄr bija vajadzÄ«gs?
2. KÄ problÄma tika atrisinÄta iepriekÅ”? PiemÄram, bija nepiecieÅ”ams masveida peles klikŔķis, vai arÄ« nebija iespÄjams kaut ko darÄ«t.
3. KÄ mÄs to uzlabojam. PiemÄram: āSkatieties, tagad ir skriptosik, Å”eit ir lasÄ«t mani.ā
4. ParÄdiet, kÄ tas darbojas. Ir ieteicams tieÅ”i ieviest kÄdu lietotÄja scenÄriju. Es gribu X, es daru Y, es redzu Y (vai Z). PiemÄram, es izvietoju NGINX, izsmÄÄ·Äju URL un saÅemu 200 OK. Ja darbÄ«ba ir ilga, sagatavojiet to iepriekÅ”, lai varÄtu to parÄdÄ«t vÄlÄk. Ja tas ir trausls, stundu pirms demonstrÄcijas ir ieteicams to pÄrÄk nesalauzt.
5. Paskaidrojiet, cik veiksmÄ«gi problÄma tika atrisinÄta, kÄdas grÅ«tÄ«bas saglabÄjas, kas nav pabeigts, kÄdi uzlabojumi iespÄjami nÄkotnÄ. PiemÄram, tagad CLI, tad CI bÅ«s pilna automatizÄcija.
Katram runÄtÄjam ieteicams to paturÄt lÄ«dz 5-10 minÅ«tÄm. Ja jÅ«su runa ir acÄ«mredzami svarÄ«ga un prasÄ«s ilgÄku laiku, iepriekÅ” saskaÅojiet to sre-takeover kanÄlÄ.
PÄc klÄtienes daļas pavedienÄ vienmÄr notiek diskusija. Å eit parÄdÄs atgriezeniskÄ saite, kas mums nepiecieÅ”ama par mÅ«su uzdevumiem.
RezultÄtÄ tiek veikta aptauja, lai noskaidrotu notiekoÅ”Ä lietderÄ«bu. TÄ ir atgriezeniskÄ saite par runas bÅ«tÄ«bu un uzdevuma nozÄ«mi.
Gari secinÄjumi un kas tÄlÄk
Var Ŕķist, ka raksta tonis ir nedaudz pesimistisks. Tas ir nepareizi. Darbojas divi zemÄki atgriezeniskÄs saites lÄ«meÅi, proti, testi un pÄru programmÄÅ”ana. Nav tik ideÄls kÄ tradicionÄlajÄ attÄ«stÄ«bÄ, taÄu tam ir pozitÄ«va ietekme.
Testi to paÅ”reizÄjÄ formÄ nodroÅ”ina tikai daļÄju koda pÄrklÄjumu. Daudzas konfigurÄcijas funkcijas netiek pÄrbaudÄ«tas. To ietekme uz faktisko darbu, rakstot kodu, ir zema. TomÄr integrÄcijas testiem ir ietekme, un tie ļauj bezbailÄ«gi veikt pÄrstrukturÄÅ”anu. Tas ir liels sasniegums. TurklÄt, pÄrejot uz attÄ«stÄ«bu augsta lÄ«meÅa valodÄs (mums ir python, go), problÄma pazÅ«d. Un jums nav nepiecieÅ”ams daudz pÄrbaudÄ«t ālÄ«miā, pietiek ar vispÄrÄju integrÄcijas pÄrbaudi.
Darbs pÄros vairÄk atkarÄ«gs no konkrÄtiem cilvÄkiem. Ir uzdevuma faktors un mÅ«su mÄ«kstÄs prasmes. Ar dažiem cilvÄkiem tas izdodas ļoti labi, ar citiem sliktÄk. No tÄ noteikti ir ieguvumi. Skaidrs, ka pat tad, ja netiek pietiekami ievÄroti pÄru darba noteikumi, pats uzdevumu kopÄ«gÄs izpildes fakts pozitÄ«vi ietekmÄ rezultÄta kvalitÄti. PersonÄ«gi man Ŕķiet, ka strÄdÄt pÄros ir vieglÄk un patÄ«kamÄk.
AugstÄka lÄ«meÅa OS ietekmÄÅ”anas veidi - precÄ«za uzdevumu plÄnoÅ”ana un darbs ar tiem rada efektus: kvalitatÄ«va zinÄÅ”anu apmaiÅa un uzlabota izstrÄdes kvalitÄte.
ÄŖsi secinÄjumi vienÄ rindÄ
HR praktiÄ·i strÄdÄ IaC, taÄu ar mazÄku efektivitÄti.
Nostipriniet to, kas darbojas.
IzstrÄdÄjiet savus kompensÄcijas mehÄnismus un praksi.