Labing maayo nga mga gawi sa DevOps alang sa mga developer. Anton Boyko (2017)

Labing maayo nga mga gawi sa DevOps alang sa mga developer. Anton Boyko (2017)

Ang taho maghisgot bahin sa pipila ka mga gawi sa DevOps, apan gikan sa punto sa panglantaw sa developer. Kasagaran, ang tanan nga mga inhenyero nga miapil sa DevOps adunay daghang mga tuig nga kasinatian sa pagdumala sa ilawom sa ilang bakus. Apan wala kini magpasabut nga wala’y lugar alang sa developer dinhi. Mas kasagaran kay sa dili, ang mga developers nagkapuliki sa pag-ayo sa "sunod nga dinalian nga kritikal nga bug sa adlaw," ug wala sila'y panahon sa pagtan-aw dayon sa DevOps field. Sa pagsabot sa tagsulat, ang DevOps mao, una, sentido komon. Ikaduha, kini usa ka oportunidad nga mahimong mas epektibo. Kung ikaw usa ka developer, adunay sentido komon ug gusto nga mahimong mas epektibo isip usa ka magdudula sa team, kini nga taho alang kanimo.

Let me introduce myself, I fully admit nga naay mga tao sa room nga wa nakaila nako. Ang akong ngalan mao si Anton Boyko, usa ako ka Microsoft Azure MVP. Unsa ang MVP? Kini mao ang Model-View-Presenter. Model-View-Presenter mao gyud ako.

Dugang pa, ako karon naghupot sa posisyon sa solusyon nga arkitekto sa Ciklum. Ug bag-o lang gipalit nako ang akong kaugalingon nga usa ka matahum nga domain, ug gi-update nako ang akong email, nga kasagaran nakong gipakita sa mga presentasyon. Mahimo kang magsulat kanako sa: me [dog] byokoant.pro. Mahimo nimong email kanako ang mga pangutana. Kanunay ko silang tubagon. Ang bugtong butang mao nga dili ko gusto nga makadawat og mga pangutana pinaagi sa email nga may kalabutan sa duha ka mga hilisgutan: politika ug relihiyon. Mahimo nimong sulatan ako bahin sa tanan pinaagi sa email. Molabay ang panahon, tubagon ko.

Labing maayo nga mga gawi sa DevOps alang sa mga developer. Anton Boyko (2017)

Pipila ka mga pulong mahitungod sa akong kaugalingon:

  • 10 ka tuig na ko niini nga field.
  • Nagtrabaho ko sa Microsoft.
  • Ako ang nagtukod nga amahan sa Ukrainian Azure nga komunidad, nga among gitukod sa usa ka dapit sa 2014. Ug naa gihapon namo kini ug gipalambo kini.
  • Ako usab ang amahan sa nagtukod sa komperensya sa Azure, nga among gi-host sa Ukraine.
  • Nagtabang usab ako sa pag-organisar sa Global Azure Bootcamp sa Kyiv.
  • Sama sa akong giingon, usa ako ka Microsoft Azure MVP.
  • Kanunay kong mamulong sa mga komperensya. Ganahan kaayo ko nga mamulong sa mga komperensya. Sa miaging tuig nakahimo ako sa pagpasundayag mga 40 ka beses. Kung moagi ka sa Ukraine, Belarus, Poland, Bulgaria, Sweden, Denmark, Netherlands, Spain o paghatag o pagkuha sa laing nasud sa Europe, nan posible nga kung moadto ka sa usa ka komperensya nga adunay tema sa panganod sa sapa niini, basin makakita ka nako sa listahan sa mga mamumulong.
  • Usa usab ako ka fan sa Star Trek.

Labing maayo nga mga gawi sa DevOps alang sa mga developer. Anton Boyko (2017)

Maghisgot ta gamay bahin sa Agenda. Ang among Agenda yano ra kaayo:

  • Atong hisgutan kung unsa ang DevOps. Hisgotan nato kon nganong importante kini. Kaniadto, ang DevOps usa ka keyword nga imong gisulat sa imong resume ug nakadawat dayon ug +$500 nga suweldo. Karon kinahanglan nimo nga isulat, pananglitan, blockchain sa imong resume aron makuha ang +500 dolyar sa imong suweldo.
  • Ug unya, kung nakasabut kami gamay kung unsa kini, hisgutan namon kung unsa ang mga gawi sa DevOps. Apan dili kaayo sa konteksto sa DevOps sa kinatibuk-an, apan bahin sa mga gawi sa DevOps nga mahimong interesado sa mga developer. Sultihan ko ikaw kung ngano nga mahimo silang interesado kanimo. Isulti ko kanimo kung ngano nga kinahanglan nimo kini buhaton ug kung giunsa kini makatabang kanimo nga makasinati og gamay nga kasakit.

Labing maayo nga mga gawi sa DevOps alang sa mga developer. Anton Boyko (2017)

Usa ka tradisyonal nga hulagway nga gipakita sa daghang mga tawo. Mao kini ang mahitabo sa daghang mga proyekto. Kini kung kita adunay mga departamento sa pag-uswag ug operasyon nga nagsuporta sa atong software. Ug kini nga mga departamento wala magkomunikar sa usag usa.

Tingali, kung dili nimo kini mabati nga klaro sa DevOps ug mga departamento sa operasyon, mahimo kang magdrowing og analohiya sa mga departamento sa Dev ug QA. Adunay mga tawo nga nag-develop sa software ug adunay mga QA nga mga tawo nga dili maayo gikan sa punto sa panglantaw sa mga developers. Pananglitan, akong gitugyan ang akong nindot nga code ngadto sa repository, ug adunay pipila ka scoundrel nga naglingkod didto nga mibalik niini nga code kanako ug nag-ingon nga ang imong code dili maayo.

Kining tanan mahitabo tungod kay ang mga tawo dili makigkomunikar sa usag usa. Ug ilang gilabay ang pipila ka mga pakete, pipila ka aplikasyon sa usag usa pinaagi sa pipila ka bungbong sa dili pagsinabtanay ug naningkamot sa pagbuhat sa usa ka butang uban kanila.

Kini mao ang tukma nga kuta nga DevOps kultura gidisenyo sa paglaglag, i.e. pugson ang mga tawo nga makigkomunikar sa usag usa ug labing menos masabtan kung unsa ang gibuhat sa lain-laing mga tawo sa proyekto ug nganong importante ang ilang trabaho.

Labing maayo nga mga gawi sa DevOps alang sa mga developer. Anton Boyko (2017)

Ug kung maghisgot kami bahin sa DevOps, adunay mosulti kanimo nga ang DevOps kung ang proyekto adunay padayon nga panagsama; adunay moingon nga ang DevOps kung ang proyekto nagpatuman sa praktis nga "imprastraktura ingon code"; adunay moingon nga ang unang lakang sa DevOps mao ang feature branching, feature flags.

Labing maayo nga mga gawi sa DevOps alang sa mga developer. Anton Boyko (2017)

Sa tinuud, kini tanan tinuod sa kaugalingon nga paagi. Apan kini mao lamang ang katapusang mga buhat nga naa kanato. Sa wala pa ipadayon kini nga mga gawi, gisugyot nako ang pagtan-aw sa kini nga slide, nga nagpakita sa 3 nga mga yugto sa pagpatuman sa pamaagi sa Dev-Ops sa imong proyekto, sa imong kompanya.

Kini nga slide adunay usab ikaduha nga dili opisyal nga ngalan. Makapangita ka online aron mahibal-an kung unsa ang 3 Musketeers sa DevOps. Posible nga makit-an nimo kini nga artikulo. Nganong 3 Musketeers? Ubos kini nag-ingon: mga tawo, mga proseso ug mga produkto, i.e. PPP - Porthos, Porthos ug Porthos. Ania ang 3 musketeers sa DevOps. Gihubit niining artikuloha ang mas detalyado kon nganong importante kini ug unsay nalangkit niini.

Kung nagsugod ka sa pagpatuman sa usa ka kultura sa DevOps, hinungdanon kaayo nga kini ipatuman sa sunod nga han-ay.

Sa sinugdan kinahanglan nimo nga makigsulti sa mga tawo. Ug kinahanglan nimong ipasabut sa mga tawo kung unsa kini ug kung giunsa nila makuha ang pipila nga mga benepisyo gikan niini.

Ang among komperensya gitawag nga DotNet Fest. Ug ingon sa gisulti kanako sa mga nag-organisar, nag-una kami nagdapit sa usa ka mamiminaw sa mga developers dinhi, mao nga nanghinaut ko nga kadaghanan sa mga tawo sa hawanan nalambigit sa kalamboan.

Maghisgot kami bahin sa mga tawo, maghisgot kami kung unsa ang gusto nga buhaton sa mga developer matag adlaw. Unsa ang labing gusto nila? Gusto nila nga magsulat og bag-ong code, mogamit og bag-ong mga frameworks, maghimo og bag-ong mga feature. Unsa ang labing gusto sa mga developer? Ayuhon ang daan nga mga bug. Unta mosugot ka nako. Kini ang gusto sa mga developer. Gusto nila nga magsulat bag-ong mga bahin, dili nila gusto nga ayohon ang mga bug.

Ang gidaghanon sa mga bug nga gihimo sa usa ka developer nagdepende kung unsa ka tul-id ang iyang mga bukton ug kung unsa kadaghan ang pagtubo niini gikan sa iyang mga abaga, ug dili gikan sa iyang mga bulsa sa butt. Apan bisan pa niana, kung kita adunay usa ka dako nga proyekto, usahay mahitabo nga imposible nga masubay ang tanan, mao nga maayo alang kanato nga mogamit sa pipila ka mga pamaagi nga makatabang kanato sa pagsulat sa mas lig-on ug mas taas nga kalidad nga code.

Unsa ang gusto sa mga QA? Wala ko kabalo kung naa ba sila sa hall. Lisud alang kanako nga isulti nga gusto nako ang usa ka QA, tungod kay wala pa ako nahimo. Ug no offense sa mga bayot, ingnon ta nga I hope dili gyud. Apan dili tungod sa rason nga giisip nako nga walay kahulogan ug walay pulos ang ilang trabaho, apan tungod kay wala nako isipa ang akong kaugalingon nga usa ka tawo nga makahimo niini nga trabaho sa episyente, busa dili ko gani sulayan nga buhaton kini. Apan gikan sa akong nasabtan, ang dili ganahan sa QA mao ang pagtrabaho sa buntag, kanunay nga nagdagan sa usa ka matang sa mga pagsulay sa pagbalik, nga nagtunob sa parehas nga mga bug nga ilang gitaho sa mga developer 3 sprints ang milabay ug nag-ingon: "Kanus-a ka , Monsieur D 'Artagnan, ayoha kining bug.' Ug gitubag siya ni Monsieur D'Artagnan: "Oo, oo, oo, giayo ko na kini." Ug kung giunsa kini nahitabo nga akong giayo ang usa ka bug ug gihimo ang 5 sa dalan.

Ang mga tawo nga nagsuporta sa kini nga solusyon sa produksiyon gusto nga kini nga solusyon molihok nga wala’y mga bug, aron dili nila kinahanglan nga i-reboot ang server matag Biyernes, kung ang tanan nga normal nga mga tawo moadto sa bar. Gi-deploy ang mga developer kaniadtong Biyernes, ang mga admin naglingkod hangtod sa Sabado, naningkamot nga makuha kini nga pag-deploy ug ayohon.

Ug kung ipasabut nimo sa mga tawo nga gitumong nila ang pagsulbad sa parehas nga mga problema, mahimo ka magpadayon sa pagpormal sa mga proseso. Importante kaayo kini. Ngano man? Tungod kay kung giingon namon ang "pagpormal," hinungdanon alang kanimo nga ihulagway kung giunsa ang imong mga proseso mahitabo bisan sa usa ka lugar sa usa ka napkin. Kinahanglan nimo nga masabtan nga kung ikaw, pananglitan, mag-deploy sa usa ka palibot sa QA o usa ka palibot sa produksiyon, nan kini kanunay nga mahitabo sa kini nga han-ay; sa kini nga mga yugto kami nagpadagan, pananglitan, mga awtomatikong pagsulay sa yunit ug mga pagsulay sa UI. Pagkahuman sa pag-deploy, among susihon kung maayo ba o dili maayo ang pag-deploy. Apan ikaw adunay usa ka tin-aw nga lista sa mga aksyon nga kinahanglan nga balik-balikon kung mag-deploy ka sa produksiyon.

Ug kung pormal na ang imong mga proseso, magsugod ka ba sa pagpili sa mga produkto nga makatabang kanimo nga ma-automate kini nga mga proseso.

Ikasubo, kanunay nakong makita nga kini mahitabo nga baliskad. Sa diha nga adunay makadungog sa pulong nga "DevOps", ila dayon nga gisugyot ang pag-instalar sa Jenkins, tungod kay sila nagtuo nga sa diha nga sila nag-instalar sa Jenkins, sila adunay DevOps. Gi-install nila si Jenkins, gibasa ang mga artikulo nga "Unsaon" sa website sa Jenkins, gisulayan nga isulod ang mga proseso sa kini nga mga artikulo sa How to, ug dayon miadto sa mga tawo ug giduko ang mga tawo, nga nag-ingon nga ang libro nag-ingon nga kinahanglan nimo nga buhaton kini nga paagi, mao nga atong buhaton kini nga paagi.

Dili kini nga si Jenkins usa ka dili maayo nga himan. Dili ko buot isulti kana sa bisan unsang paagi. Apan kini usa lamang sa mga produkto. Ug kung unsa nga produkto ang imong gigamit kinahanglan nga imong katapusan nga desisyon, ug dili gyud ang imong una. Ang imong produkto kinahanglan dili madasig sa pagpatuman sa kultura ug mga pamaagi. Kini hinungdanon kaayo nga masabtan, mao nga naggugol ako og daghang oras sa kini nga slide ug gipatin-aw kining tanan sa dugay nga panahon.

Labing maayo nga mga gawi sa DevOps alang sa mga developer. Anton Boyko (2017)

Maghisgot kita bahin sa mga gawi sa DevOps sa kinatibuk-an. Unsa sila? Unsa ang kalainan? Unsaon pagsulay kanila? Nganong importante sila?

Labing maayo nga mga gawi sa DevOps alang sa mga developer. Anton Boyko (2017)

Ang una nga praktis nga mahimo nimong nadungog mao ang gitawag nga Padayon nga Paghiusa. Tingali adunay usa sa proyekto nga adunay Continuous Integration (CI).

Ang pinakadako nga problema mao nga kasagaran kung mangutana ako sa usa ka tawo: "Aduna ka bay CI sa proyekto?" ug siya miingon: "Oo," unya sa diha nga ako mangutana kon unsa ang iyang gibuhat, siya naghulagway kanako sa hingpit sa tibuok proseso sa automation. Dili kini hingpit nga tinuod.

Sa tinuud, ang praktis sa CI gitumong lamang sa pag-integrate sa code nga gisulat sa lain-laing mga tawo ngadto sa usa ka matang sa single code base. Mao ra.

Kauban sa CI, kasagaran adunay uban pang mga gawi sa dalan - sama sa Padayon nga Pag-deploy, Pagdumala sa Pagpagawas, apan hisgutan namon kana sa ulahi.

Ang CI mismo nagsulti kanato nga lain-laing mga tawo ang nagsulat og code ug kini nga code kinahanglang padayon nga i-integrate ngadto sa usa ka code base.

Unsa ang gihatag niini kanato ug nganong importante kini? Kung naa tay DotNet, then maayo na, compiled nga lengguwahe, pwede nato i-compile atong application. Kung kini mag-compile, nan kini usa na ka maayong timailhan. Wala pa kini gipasabut bisan unsa, apan kini ang una nga maayong timailhan nga mahimo naton nga makolekta.

Unya mahimo namong modagan ang pipila ka mga pagsulay, nga lahi usab nga praktis. Ang mga pagsulay tanan berde - kini ang ikaduha nga maayong timailhan. Apan pag-usab, kini wala magpasabot bisan unsa.

Apan nganong buhaton nimo kini? Ang tanan nga mga praktis nga akong hisgutan karon nagdala sa gibana-bana nga parehas nga kantidad, i.e. gibana-bana nga parehas nga mga benepisyo ug gisukod usab sa parehas nga paagi.

Una, kini nagtugot kanimo sa pagpadali sa pagpadala. Giunsa kini nagtugot kanimo sa pagpadali sa pagpadala? Kung maghimo kami mga bag-ong pagbag-o sa among base sa code, mahimo dayon namon nga sulayan nga buhaton ang usa ka butang sa kini nga code. Wa na mi maghuwat nga moabot ang Huwebes kay sa Huwebes namo i-release sa QA Environment, diri ug dinhi mismo.

Isulti ko nimo ang usa ka makapasubo nga istorya sa akong kinabuhi. Dugay na ang milabay, sa bata pa ko ug guwapo. Karon bata pa ko, gwapa ug maalamon, ug kasarangan. Kaniadto naa ko sa usa ka proyekto. Kami adunay usa ka dako nga grupo sa mga 30 ka developer. Ug kami adunay usa ka dako, dako nga proyekto sa Enterprise nga naugmad sa mga 10 ka tuig. Ug lainlain mig branch. Sa repository kami adunay usa ka sanga diin ang mga developer naglakaw. Ug adunay usa ka sanga nga nagpakita sa bersyon sa code nga anaa sa produksyon.

Ang sanga sa produksiyon 3 ka bulan sa luyo sa sanga nga magamit sa mga developer. Unsay buot ipasabot niini? Kini nagpasabut nga sa diha nga ako adunay usa ka bug sa usa ka lugar nga moadto sa produksiyon tungod sa sayup sa mga nag-develop, tungod kay gitugotan nila kini, ug tungod sa sayup sa QA, tungod kay gitan-aw nila kini, nan kini nagpasabut nga kung makadawat ako usa ka buluhaton para sa hotfix para sa produksiyon, unya kinahanglan nakong ibalik ang akong mga pagbag-o sa code 3 ka bulan ang milabay. Kinahanglan nakong hinumdoman kung unsa ang naa nako 3 ka bulan ang milabay ug pagsulay nga ayohon kini didto.

Kung wala ka pa niini nga kasinatian, mahimo nimong sulayan kini sa imong proyekto sa balay. Ang panguna nga butang mao, ayaw pagsulay kini sa usa ka komersyal. Pagsulat og usa ka magtiayon nga linya sa code, kalimti kini sulod sa unom ka bulan, ug unya balik ug sulayi nga ipasabut dayon kung unsa ang mga linya sa code ug kung giunsa nimo kini ayohon o ma-optimize. Kini usa ka kulbahinam kaayo nga kasinatian.

Kung kita adunay usa ka Padayon nga Pag-apil nga praktis, nan kini nagtugot kanato sa pagsusi niini uban sa usa ka gidaghanon sa mga automated nga mga himan dinhi ug karon, sa diha nga akong gisulat ang akong code. Mahimong dili kini makahatag kanako sa tibuok nga hulagway, apan bisan pa niana, kini magwagtang sa labing menos pipila ka mga risgo. Ug kung adunay bisan unsang potensyal nga bug, mahibal-an ko kini karon, kana, literal sa pipila ka minuto. Dili nako kinahanglan nga ibalik ang 3 ka bulan. Kinahanglan ra nako nga ibalik ang 2 minuto. Ang usa ka maayo nga makina sa kape wala’y oras sa paghimo og kape sa 2 minuto, mao nga cool kana.

Kini adunay bili nga kini mahimong balik-balikon sa matag proyekto, i.e. dili lang ang imong gibutangan niini. Mahimo nimong balikon ang praktis mismo ug ang CI mismo ang masubli alang sa matag bag-ong pagbag-o nga imong gihimo sa proyekto. Gitugotan ka niini nga ma-optimize ang mga kapanguhaan tungod kay ang imong team nagtrabaho nga mas episyente. Wala ka nay sitwasyon diin ang usa ka bug moabut kanimo gikan sa code nga imong gitrabahoan 3 ka bulan ang milabay. Wala ka nay pagbag-o sa konteksto kung naglingkod ka ug gigugol ang una nga duha ka oras nga naningkamot nga masabtan kung unsa ang nahitabo kaniadto ug mosulod sa esensya sa konteksto sa wala ka magsugod sa pagtul-id sa usa ka butang.

Unsaon nato pagsukod ang kalampusan o kapakyasan niini nga praktis? Kung i-report nimo sa big boss kung unsa ang among gi-implementar sa CI project, makadungog siya nga blah blah blah. Among gipatuman kini, OK, apan ngano, unsa ang gidala niini kanato, giunsa nato kini pagsukod, unsa ka husto o sayop ang atong pagpatuman niini?

Ang una mao nga, salamat sa CI, mahimo namong i-deploy ang mas kanunay, ug mas kanunay nga tukma tungod kay ang among code lagmit nga mas lig-on. Sa samang paagi, ang atong panahon sa pagpangita sa usa ka sayop gipakunhod ug ang panahon sa pagtul-id niini nga sayop mao ang pagkunhod sa tukma tungod sa rason nga kita makadawat og tubag gikan sa sistema dinhi ug karon, unsa ang sayop sa atong code.

Labing maayo nga mga gawi sa DevOps alang sa mga developer. Anton Boyko (2017)

Ang laing praktis nga naa namo mao ang praktis sa Pagsulay sa Automation, nga kasagaran moabut uban sa praktis sa CI. Nagkuyog sila.

Unsa ang importante nga masabtan dinhi? Importante nga masabtan nga lahi ang atong mga pagsulay. Ug ang matag awtomatiko nga pagsulay gitumong sa pagsulbad sa kaugalingon nga mga problema. Kami adunay, pananglitan, mga pagsulay sa yunit nga nagtugot kanamo sa pagsulay sa usa ka module nga gilain, i.e. Giunsa kini pagtrabaho sa usa ka vacuum? Maayo ni.

Adunay usab kami mga pagsulay sa panagsama nga nagtugot kanamo nga masabtan kung giunsa ang lainlaing mga module naghiusa sa usag usa. Maayo usab kini.

Mahimong adunay kami mga pagsulay sa automation sa UI nga nagtugot kanamo sa pagsusi kung unsa ka maayo ang pagtrabaho sa UI nga nakab-ot ang piho nga mga kinahanglanon nga gitakda sa kustomer, ug uban pa.

Ang piho nga mga pagsulay nga imong gipadagan mahimong makaapekto kung unsa ka sagad nimo kini gipadagan. Ang mga pagsulay sa yunit sagad gisulat nga mubo ug gamay. Ug sila mahimong ilunsad kanunay.

Kung naghisgot kami bahin sa mga pagsulay sa automation sa UI, nan maayo kung gamay ang imong proyekto. Ang imong mga pagsulay sa automation sa UI mahimong magkinahanglan og igong oras. Apan kasagaran ang usa ka pagsulay sa automation sa UI usa ka butang nga nagkinahanglag daghang oras sa usa ka dako nga proyekto. Ug kini maayo kung kini pipila ka oras. Ang bugtong butang mao nga walay kapuslanan ang pagpadagan niini alang sa matag pagtukod. Makataronganon ang pagpadagan kanila sa gabii. Ug sa diha nga ang tanan miadto sa pagtrabaho sa buntag: ang mga tigsulay ug mga developers, sila nakadawat sa usa ka matang sa taho nga among gipadagan ang UI autotest sa gabii ug nakuha kini nga mga resulta. Ug dinhi, ang usa ka oras nga pagtrabaho sa usa ka server nga magsusi nga ang imong produkto nakab-ot sa pipila ka mga kinahanglanon mas barato kaysa usa ka oras nga trabaho sa parehas nga QA engineer, bisan kung siya usa ka Junior QA engineer nga nagtrabaho alang sa pagkaon ug salamat. Ang tanan parehas, ang usa ka oras nga operasyon sa makina mahimong mas barato. Mao kini ang hinungdan nga makatarunganon nga mamuhunan niini.

Duna koy laing proyekto nga akong gitrabaho. Kami adunay duha ka semana nga mga sprint niini nga proyekto. Ang proyekto dako, importante alang sa pinansyal nga sektor, ug ang usa ka sayop dili mahimo. Ug pagkahuman sa usa ka duha ka semana nga sprint, ang siklo sa pag-uswag gisundan sa usa ka proseso sa pagsulay, nga mikabat sa laing 4 ka semana. Sulayi paghanduraw ang gidak-on sa trahedya. Gisulat namo ang code sulod sa duha ka semana, dayon among buhaton kini nga ala CodeFreeze, i-package kini ngadto sa bag-ong bersyon sa aplikasyon, ug i-roll kini ngadto sa mga tester. Gisulayan kini sa mga tester sa laing 4 ka semana, i.e. Samtang gisulayan nila kini, aduna kami panahon sa pag-andam og duha pa ka bersyon alang kanila. Kini usa ka makapasubo nga kaso.

Ug gisultihan namo sila nga kung gusto nimo nga mahimong mas produktibo, makatarunganon alang kanimo nga ipatuman ang mga gawi sa Automated Testing, tungod kay kini ang nakapasakit kanimo dinhi, karon.

Labing maayo nga mga gawi sa DevOps alang sa mga developer. Anton Boyko (2017)

Pagpraktis sa Padayon nga Pag-deploy. Maayo, nahuman na nimo ang pagtukod. Maayo na kini. Na-compile na ang imong code. Karon maayo nga i-deploy kini nga pagtukod sa pipila ka palibot. Ingnon ta sa usa ka palibot alang sa mga developer.

Nganong importante kini? Una, mahimo nimong tan-awon kung unsa ka ka malampuson sa proseso sa pag-deploy mismo. Nahimamat nako ang mga proyekto nga sama niini, kung nangutana ako: "Giunsa nimo pag-deploy ang usa ka bag-ong bersyon sa aplikasyon?", Gisultihan ako sa mga lalaki: "Gi-assemble namo kini ug giputos kini sa zip archive. Gipadala namo kini sa admin pinaagi sa koreo. Ang admin nag-download ug nagpalapad niini nga archive. Ug ang tibuuk nga opisina nagsugod sa pag-ampo nga makuha sa server ang bag-ong bersyon. ”

Magsugod ta sa simple nga butang. Pananglitan, nakalimot sila sa pagbutang sa CSS sa archive o nakalimot sa pag-ilis sa hashtag sa java-script file name. Ug kung maghimo kami usa ka hangyo sa server, ang browser naghunahuna nga naa na kini nga java-script file ug nakahukom nga dili kini i-download. Ug adunay daan nga bersyon, adunay kulang. Sa kinatibuk-an, mahimong adunay daghang mga problema. Busa, ang praktis sa Continuous Deployment nagtugot kanimo sa labing menos pagsulay kung unsa ang mahitabo kung imong gikuha ang usa ka limpyo nga reference nga imahe ug gi-upload kini sa usa ka hingpit nga limpyo nga bag-ong palibot. Makita nimo kung asa kini padulong.

Usab, sa diha nga kamo integrate code tali sa usag usa, i.e. tali sa sugo, kini nagtugot kanimo nga makita usab kung unsa ang hitsura niini sa UI.

Usa sa mga problema nga mahitabo kung diin gigamit ang daghang vanilla java-script mao nga ang duha ka mga developer dali nga nagpahayag sa usa ka variable nga adunay parehas nga ngalan sa butang sa bintana. Ug unya, depende sa imong swerte. Kansang java-script file ang gikuha sa ikaduha nga mag-overwrite sa mga pagbag-o sa lain. Exciting pud kaayo. Mosulod ka: usa ka butang ang mosalir sa usa ka tawo, ang lain dili mogana sa lain. Ug kini "katingalahan" kung kini tanan mogawas sa produksiyon.

Labing maayo nga mga gawi sa DevOps alang sa mga developer. Anton Boyko (2017)

Ang sunod nga praktis nga naa namo mao ang praktis sa Automatic Restore, nga mao ang pag-roll balik sa miaging bersyon sa aplikasyon.

Ngano nga kini hinungdanon alang sa mga nag-develop? Naa pa gyuy nakahinumdom sa layo, layo nga dekada 90, sa dihang ang mga kompyuter dagko ug ang mga programa gamay pa. Ug ang bugtong paagi sa pagpalambo sa web mao ang PHP. Dili nga ang PHP usa ka dili maayo nga pinulongan, bisan kung kini mao.

Apan lahi ang problema. Sa dihang nag-deploy kami og bag-ong bersyon sa among php site, giunsa namo kini pag-deploy? Kasagaran giablihan namon ang Far Manager o uban pa. Ug gi-upload kini nga mga file sa FTP. Ug kalit namong naamgohan nga kami adunay gamay, gamay nga bug, pananglitan, nakalimot kami sa pagbutang og semicolon o nakalimot sa pag-usab sa password alang sa database, ug adunay usa ka password alang sa database, nga anaa sa lokal nga host. Ug nakahukom kami nga dali nga makonektar sa FTP ug i-edit ang mga file didto mismo. Kini usa lamang ka kalayo! Mao kini ang popular sa dekada 90.

Apan, kung wala nimo tan-awa ang kalendaryo, ang 90s hapit 30 ka tuig na ang milabay. Karon ang tanan nahitabo medyo lahi. Ug sulayi paghanduraw ang gidak-on sa trahedya sa dihang gisultihan ka nila: "Nag-deploy kami sa produksiyon, apan adunay nahitabo nga sayup didto. Ania ang imong FTP login ug password, kumonekta sa produksiyon ug dali kini ayuhon didto.” Kung ikaw si Chuck Norris, kini molihok. Kung dili, nan peligro ka nga kung imong ayohon ang usa ka bug, makahimo ka pa nga 10. Mao gyud kini kung ngano nga kini nga praktis sa pag-roll balik sa miaging bersyon nagtugot kanimo nga makab-ot ang daghan.

Bisan kung ang usa ka butang nga dili maayo sa usa ka paagi nahulog sa usa ka lugar, nan kini dili maayo, apan dili makamatay. Mahimo nimong i-roll balik ang miaging bersyon nga naa nimo. Tawga kini nga usa ka backup, kung mas dali nga masabtan kini sa kana nga terminolohiya. Mahimo nimong ibalik ang miaging bersyon, ug ang mga tiggamit makahimo gihapon sa pagtrabaho sa imong produkto, ug adunay ka igong oras sa buffer. Mahimo nimo nga kalmado, nga walay pagdali, kuhaa kining tanan ug sulayan kini sa lokal, ayohon kini, ug dayon mag-upload og bag-ong bersyon. Makataronganon gayod ang pagbuhat niini.

Labing maayo nga mga gawi sa DevOps alang sa mga developer. Anton Boyko (2017)

Karon atong sulayan ang paghiusa sa usa ka paagi sa duha ka nangaging mga praktis. Makuha namon ang ikatulo nga gitawag nga Pagdumala sa Pagpagawas.

Kung maghisgot kita bahin sa Padayon nga Pag-deploy sa klasikal nga porma niini, giingon namon nga kinahanglan naton ibitad ang code gikan sa pipila nga sanga gikan sa repository, i-compile kini ug i-deploy kini. Maayo kung parehas ta sa palibot. Kung kita adunay daghang mga palibot, kini nagpasabut nga kinahanglan naton ibira ang code matag higayon, bisan gikan sa parehas nga pasalig. Among ibira kini sa matag higayon, ato kining tukoron matag higayon ug ipakatap namo kini sa bag-ong palibot. Una, kini ang panahon, tungod kay aron magtukod usa ka proyekto, kung adunay ka dako ug gikan sa 90s, mahimo’g daghang oras.

Gawas pa, naa pay laing kaguol. Kung magtukod ka, bisan sa parehas nga makina, magtukod ka sa parehas nga gigikanan, wala ka gihapon garantiya nga kini nga makina naa sa parehas nga kahimtang sama sa panahon sa katapusan nga pagtukod.

Ingnon ta nga adunay misulod ug nag-update sa DotNet alang kanimo o, sa kasukwahi, adunay nakahukom sa pagtangtang sa usa ka butang. Ug unya ikaw adunay cognitive dissonance nga gikan sa kini nga commit duha ka semana ang milabay nagtukod kami usa ka pagtukod ug maayo ang tanan, apan karon ingon og parehas nga makina, parehas nga pasalig, parehas nga code nga gisulayan namon nga tukuron, apan wala kini molihok. . Mag-atubang ka niini sa dugay nga panahon ug dili kini usa ka kamatuoran nga mahibal-an nimo kini. Sa labing gamay, madaot nimo ang imong mga nerbiyos.

Busa, ang Release Management practice nagsugyot sa pagpaila ug dugang abstraction nga gitawag ug artifact repository o gallery o library. Mahimo nimo kini nga tawagan kung unsa ang gusto nimo.

Ang nag-unang ideya mao nga sa diha nga kami adunay usa ka matang sa pasalig didto, ingon, sa usa ka sanga nga kami andam nga i-deploy sa among lain-laing mga palibot, kami mangolekta og mga aplikasyon gikan niini nga pasalig ug ang tanan nga among gikinahanglan alang niini nga aplikasyon, among giputos kini. ngadto sa zip archive ug i-save kini sa pipila ka kasaligan nga storage. Ug gikan sa kini nga pagtipig makuha namon kini nga zip archive bisan unsang orasa.

Dayon gikuha namo kini ug awtomatiko nga i-deploy kini sa dev environment. Naglumba kami didto, ug kung maayo ang tanan, nan kami nag-deploy sa entablado. Kung maayo ang tanan, nan among i-deploy ang parehas nga archive sa produksiyon, parehas nga mga binary, nga gihugpong sa eksakto kausa.

Dugang pa, kung kami adunay usa ka gallery nga sama niini, makatabang usab kini kanamo nga matubag ang mga peligro nga among gitubag sa katapusan nga slide sa dihang naghisgot kami bahin sa rollback sa miaging bersyon. Kung wala ka tuyoa nga naka-deploy sa usa ka butang nga sayup, mahimo nimong makuha ang bisan unsang nauna nga bersyon gikan sa kini nga gallery ug i-undeploy kini sa kini nga mga palibot sa parehas nga paagi. Kini nagtugot kanimo sa dali nga pag-roll balik sa miaging bersyon kung adunay sayup.

Labing maayo nga mga gawi sa DevOps alang sa mga developer. Anton Boyko (2017)

Adunay laing maayo nga praktis. Ikaw ug ako tanan nakasabut nga kung among ibalik ang among mga aplikasyon sa miaging bersyon, mahimo’g nagpasabut kini nga kinahanglan usab namon ang imprastraktura sa miaging bersyon.

Kung maghisgot kita bahin sa virtual nga imprastraktura, daghang mga tawo ang naghunahuna nga kini usa ka butang nga gipahimutang sa mga admin. Ug kung kinahanglan nimo, ingnon ta, aron makakuha usa ka bag-ong server diin gusto nimo sulayan ang usa ka bag-ong bersyon sa imong aplikasyon, nan kinahanglan ka magsulat usa ka tiket sa mga admin o devops. Ang mga devops mokabat ug 3 ka semana alang niini. Ug pagkahuman sa 3 ka semana isulti nila kanimo nga nag-install kami usa ka virtual nga makina alang kanimo, nga adunay usa ka core, duha ka gigabytes sa RAM ug usa ka Windows server nga wala ang DotNet. Moingon ka: "Apan gusto ko ang DotNet." Sila: "Ok, balik sa 3 ka semana."

Ang ideya mao nga pinaagi sa paggamit sa Infrastruktura isip mga gawi sa Code, mahimo nimong tagdon ang imong virtual nga imprastraktura nga usa ra ka kapanguhaan.

Tingali, kung adunay bisan kinsa kaninyo nga nagpalambo sa mga aplikasyon sa DotNet, tingali nakadungog ka bahin sa usa ka librarya nga gitawag Entity Framework. Ug tingali nakadungog ka pa nga ang Entity Framework usa sa mga pamaagi nga aktibo nga giduso sa Microsoft. Alang sa pagtrabaho sa usa ka database, kini usa ka pamaagi nga gitawag nga Code First. Kini kung imong gihulagway sa code kung unsa ang gusto nimo nga hitsura sa imong database. Ug unya imong i-deploy ang aplikasyon. Nagkonektar kini sa database, kini mismo ang nagtino kung unsang mga lamesa ang naa ug kung unsang mga lamesa ang wala, ug gimugna ang tanan nga imong kinahanglan.

Mahimo nimo ang parehas sa imong imprastraktura. Walay kalainan tali sa kung kinahanglan nimo ang usa ka database alang sa usa ka proyekto o kung kinahanglan nimo ang usa ka Windows server alang sa usa ka proyekto. Resource lang ni. Ug mahimo nimong i-automate ang paghimo niini nga kapanguhaan, mahimo nimong i-automate ang pag-configure niini nga kapanguhaan. Tungod niini, sa matag higayon nga gusto nimong sulayan ang pipila ka bag-ong konsepto, pipila ka bag-ong pamaagi, dili nimo kinahanglan nga magsulat usa ka tiket sa mga devops, mahimo ka nga mag-deploy sa usa ka nahilit nga imprastraktura alang sa imong kaugalingon gikan sa andam nga mga template, gikan sa andam nga mga script ug ipatuman kini. didto ang tanan nimong mga eksperimento. Mahimo nimong papason kini, pagkuha og pipila ka mga resulta ug ireport ang dugang bahin niini.

Labing maayo nga mga gawi sa DevOps alang sa mga developer. Anton Boyko (2017)

Ang sunod nga praktis, nga anaa usab ug importante usab, apan nga pipila ka mga tawo ang naggamit, mao ang Application Performance Monitoring.

Gusto nakong isulti ang usa ra ka butang bahin sa Pag-monitor sa Pagganap sa Aplikasyon. Unsa ang labing hinungdanon bahin niini nga praktis? Mao kini ang Application Performance Monitoring halos sama sa pag-ayo sa usa ka apartment. Kini dili usa ka katapusan nga kahimtang, kini usa ka proseso. Kinahanglan nimo nga buhaton kini kanunay.

Sa maayo nga paagi, maayo nga himuon ang Pag-monitor sa Pagganap sa Aplikasyon sa halos matag pagtukod, bisan kung, sa imong nasabtan, dili kini kanunay nga posible. Apan, sa labing gamay, kini kinahanglan nga buhaton alang sa matag pagpagawas.

Nganong importante kini? Tungod kay kung kalit ka nga makasinati usa ka pagkunhod sa pasundayag, nan kinahanglan nimo nga tin-aw nga masabtan kung ngano. Kung ang imong team adunay, ingnon ta, duha ka semana nga mga sprint, nan labing menos kausa sa matag duha ka semana kinahanglan nimo nga i-deploy ang imong aplikasyon sa pipila nga lahi nga server, diin ikaw adunay usa ka tin-aw nga naayos nga processor, RAM, mga disk, ug uban pa. Ug ipadagan ang parehas nga mga pagsulay sa pasundayag. . Makuha nimo ang resulta. Tan-awa kung giunsa kini nabag-o gikan sa miaging sprint.

Ug kung nahibal-an nimo nga ang drawdown nahulog sa usa ka lugar, nagpasabut kini nga tungod lang sa mga pagbag-o nga nahitabo sa miaging duha ka semana. Kini magtugot kanimo sa pag-ila ug pag-ayo sa problema nga mas paspas. Ug usab, kini halos parehas nga mga sukatan diin imong masukod kung giunsa nimo kini nahimo.

Labing maayo nga mga gawi sa DevOps alang sa mga developer. Anton Boyko (2017)

Ang sunod nga praktis nga naa namo mao ang Configuration Management practice. Diyutay ra kaayo ang nagseryoso niini. Apan tuohi ako, kini usa ka seryoso kaayo nga butang.

Adunay usa ka kataw-anan nga istorya karong bag-o. Ang mga lalaki miduol kanako ug miingon: "Tabangi kami sa paghimo sa usa ka security audit sa among aplikasyon." Gitan-aw namon ang code sa dugay nga panahon, gisultihan nila ako bahin sa aplikasyon, nag-drawing og mga diagram. Ug plus o minus ang tanan makatarunganon, masabtan, luwas, apan adunay usa PERO! Adunay sila mga file sa pag-configure sa ilang kontrol sa gigikanan, lakip ang mga gikan sa produksiyon nga adunay IP database, nga adunay mga login ug password alang sa pagkonektar niini nga mga database, ug uban pa.

Ug ingon ko: "Mga lalaki, okay, gisirhan nimo ang imong palibot sa produksiyon gamit ang usa ka firewall, apan ang kamatuoran nga ikaw adunay login ug password alang sa database sa produksiyon diha mismo sa kontrol sa gigikanan ug bisan kinsa nga developer ang makabasa niini usa na ka dako nga peligro sa seguridad. . Ug bisan unsa pa ka kasigurohan ang imong aplikasyon gikan sa punto sa panglantaw sa code, kung ibilin nimo kini sa kontrol sa gigikanan, nan dili ka makapasar sa bisan unsang pag-audit bisan asa. Mao na akong gi storyahan.

Pagdumala sa pag-configure. Mahimong adunay lain-laing mga configuration sa lain-laing mga palibot. Pananglitan, mahimo kaming adunay lainlaing mga login ug password alang sa mga database alang sa QA, demo, palibot sa produksiyon, ug uban pa.

Kini nga pag-configure mahimo usab nga awtomatiko. Kinahanglan nga kini kanunay nga bulag sa aplikasyon mismo. Ngano man? Tungod kay imong gitukod ang aplikasyon sa makausa, ug unya ang aplikasyon wala magtagad kung magkonektar ka sa SQL server pinaagi sa ingon ug ingon nga usa ka IP o ingon ug ingon nga usa ka IP, kinahanglan kini molihok nga parehas. Busa, kung sa kalit ang usa kaninyo nag-hardcode pa sa koneksyon nga string sa code, nan hinumdumi nga pangitaon ko ikaw ug silotan ka kung makit-an nimo ang imong kaugalingon sa parehas nga proyekto uban kanako. Kanunay kini nga gibutang sa usa ka bulag nga configuration, pananglitan, sa web.config.

Ug kini nga pag-configure gidumala na nga gilain, i.e. mao gyud kini ang higayon nga ang usa ka developer ug usa ka administrador mahimong moabut ug molingkod sa parehas nga kwarto. Ug ang developer makaingon: "Tan-awa, ania ang mga binary sa akong aplikasyon. Nagtrabaho sila. Ang aplikasyon nanginahanglan usa ka database aron molihok. Dinhi sa tupad sa mga binary adunay usa ka file. Sa kini nga file, kini nga uma ang responsable sa pag-login, kini alang sa password, kini alang sa IP. Ibutang kini bisan asa." Ug kini yano ug klaro sa admin. Mahimo niya kining i-deploy bisan asa pinaagi sa pagdumala niini nga configuration.

Labing maayo nga mga gawi sa DevOps alang sa mga developer. Anton Boyko (2017)

Ug ang katapusan nga praktis nga gusto nakong hisgutan mao ang usa ka praktis nga may kalabutan kaayo sa mga panganod. Ug nagdala kini labing taas nga epekto kung nagtrabaho ka sa panganod. Kini mao ang Awtomatikong pagtangtang sa imong palibot.

Nahibal-an ko nga adunay daghang mga tawo sa kini nga komperensya gikan sa mga team nga akong gitrabahoan. Ug sa tanan nga mga team nga akong gitrabahoan, among gigamit kini nga praktis.

Ngano man? Siyempre, kini maayo kung ang matag developer adunay usa ka virtual nga makina nga molihok 24/7. Apan tingali kini usa ka balita kanimo, tingali wala ka magtagad, apan ang developer mismo dili molihok 24/7. Ang usa ka developer kasagaran nagtrabaho 8 oras sa usa ka adlaw. Bisag sayo siya moanhi sa trabaho, duna siyay dakong paniudto diin moadto siya sa gym. Himoa nga 12 ka oras sa usa ka adlaw kung gigamit gyud sa developer kini nga mga kapanguhaan. Sumala sa atong lehislasyon, aduna kitay 5 sa 7 ka adlaw sa usa ka semana nga giisip nga mga adlaw sa pagtrabaho.

Busa, sa mga adlaw sa semana kini nga makina kinahanglan dili molihok 24 oras, apan 12 ra, ug sa katapusan sa semana kini nga makina kinahanglan dili molihok. Ingon og ang tanan yano ra kaayo, apan unsa ang hinungdanon nga isulti dinhi? Pinaagi sa pagpatuman niining yano nga praktis niining batakang iskedyul, kini nagtugot kanimo sa pagpakunhod sa gasto sa pagmentinar niini nga mga palibot sa 70%, i.e. imong gikuha ang presyo sa imong dev, QA, demo, palibot ug gibahin kini sa 3.

Ang pangutana, unsa ang buhaton sa nahabilin nga kuwarta? Pananglitan, ang mga nag-develop kinahanglan nga mopalit sa ReSharper kung wala pa sila. O adunay usa ka cocktail party. Kung kaniadto adunay ka usa ka palibot diin ang dev ug QA nanibsib, ug mao kana, karon makahimo ka ug 3 nga lainlain nga mag-inusara, ug ang mga tawo dili manghilabot sa usag usa.

Labing maayo nga mga gawi sa DevOps alang sa mga developer. Anton Boyko (2017)

Mahitungod sa slide nga adunay padayon nga pagsukod sa performance, unsaon nato pagtandi ang performance kung aduna kitay 1 ka mga rekord sa database sa proyekto, duha ka bulan ang milabay adunay usa ka milyon? Giunsa masabtan kung ngano ug unsa ang punto sa pagsukod sa pasundayag?

Maayo kini nga pangutana, tungod kay kinahanglan nimo nga sukdon kanunay ang pasundayag sa parehas nga mga kapanguhaan. Kana mao, imong gilusad ang bag-ong code, imong gisukod ang performance sa bag-ong code. Pananglitan, kinahanglan nimo nga sulayan ang lainlaing mga senaryo sa pasundayag, ingnon ta nga gusto nimo sulayan kung giunsa ang paglihok sa aplikasyon sa usa ka gaan nga karga, diin adunay 1 nga tiggamit ug ang gidak-on sa database 000 gigabytes. Gisukod nimo kini ug nakuha ang mga numero. Sunod atong kuhaan ang laing senaryo. Pananglitan, 5 ka tiggamit, database gidak-on 5 terabyte. Among nadawat ang mga resulta ug gihinumdoman kini.

Unsa ang importante dinhi? Ang importante nga butang dinhi mao nga depende sa senaryo, ang gidaghanon sa datos, ang gidaghanon sa dungan nga mga tiggamit, ug uban pa, mahimo kang modagan sa pipila ka mga limitasyon. Pananglitan, sa limitasyon sa network card, o sa limitasyon sa hard drive, o sa limitasyon sa kapabilidad sa processor. Kini ang importante nga imong masabtan. Sa lain-laing mga senaryo modagan ka sa pipila ka mga limitasyon. Ug kinahanglan nimo nga masabtan ang mga numero kung naigo nimo kini.

Naghisgot ba kami bahin sa pagsukod sa pasundayag sa usa ka espesyal nga palibot sa pagsulay? Sa ato pa, dili kini produksiyon?

Oo, dili kini produksiyon, kini usa ka palibot sa pagsulay, nga kanunay parehas aron mahimo nimo kini itandi sa nangaging mga pagsukod.

Nakasabot salamat!

Kung wala’y mga pangutana, sa akong hunahuna mahimo naton mahuman. Salamat!

Source: www.habr.com

Idugang sa usa ka comment