ZiÅojumÄ tiks runÄts par dažÄm DevOps praksÄm, taÄu no izstrÄdÄtÄja viedokļa. Parasti visiem inženieriem, kas pievienojas DevOps, jau ir vairÄku gadu administratÄ«vÄ pieredze. Bet tas nenozÄ«mÄ, ka Å”eit nav vietas izstrÄdÄtÄjam. BiežÄk izstrÄdÄtÄji ir aizÅemti ar "nÄkamÄs steidzami kritiskÄs dienas kļūdas" novÄrÅ”anu, un viÅiem nav laika pat Ätri apskatÄ«t DevOps lauku. Autora izpratnÄ DevOps, pirmkÄrt, ir veselais saprÄts. OtrkÄrt, tÄ ir iespÄja bÅ«t efektÄ«vÄkam. Ja esat izstrÄdÄtÄjs, jums ir veselais saprÄts un vÄlaties bÅ«t efektÄ«vÄks kÄ komandas spÄlÄtÄjs, Å”is pÄrskats ir paredzÄts jums.
Ä»aujiet man iepazÄ«stinÄt ar sevi, es pilnÄ«bÄ atzÄ«stu, ka telpÄ ir cilvÄki, kas mani nepazÄ«st. Mani sauc Antons Boiko, es esmu Microsoft Azure MVP. Kas ir MVP? Å is ir modeļa skata prezentÄtÄjs. Model-View-Presenter esmu tieÅ”i es.
TurklÄt Å”obrÄ«d uzÅÄmumÄ Ciklum ieÅemu risinÄjumu arhitekta amatu. Un pavisam nesen nopirku sev tik skaistu domÄnu un atjauninÄju savu e-pastu, ko parasti rÄdu prezentÄcijÄs. Varat man rakstÄ«t uz: me [suns] byokoant.pro. Ar jautÄjumiem varat man sÅ«tÄ«t e-pastu. Es parasti viÅiem atbildu. VienÄ«gais, es nevÄlos saÅemt pa e-pastu jautÄjumus, kas attiecas uz divÄm tÄmÄm: politiku un reliÄ£iju. Par visu pÄrÄjo varat man rakstÄ«t pa e-pastu. Paies kÄds laiks, atbildÄÅ”u.
Daži vÄrdi par sevi:
- Esmu Å”ajÄ jomÄ jau 10 gadus.
- Es strÄdÄju Microsoft.
- Es esmu Ukrainas debeszils kopienas dibinÄtÄjs, kuru mÄs nodibinÄjÄm kaut kur 2014. gadÄ. Un mums tas joprojÄm ir un mÄs to attÄ«stÄm.
- Es esmu arÄ« Azure konferences dibinÄtÄja tÄvs, kuru mÄs rÄ«kojam UkrainÄ.
- Es arÄ« palÄ«dzu organizÄt Global Azure Bootcamp KijevÄ.
- KÄ jau teicu, es esmu Microsoft Azure MVP.
- Es diezgan bieži uzstÄjos konferencÄs. Man ļoti patÄ«k runÄt konferencÄs. PÄdÄjÄ gada laikÄ es varÄju uzstÄties apmÄram 40 reizes. Ja jÅ«s ejat garÄm Ukrainai, Baltkrievijai, Polijai, BulgÄrijai, Zviedrijai, DÄnijai, NÄ«derlandei, SpÄnijai vai dodat vai paÅemat kÄdu citu valsti EiropÄ, tad ir pilnÄ«gi iespÄjams, ka, dodoties uz konferenci, kuras plÅ«smÄ ir mÄkoÅa tÄma, jÅ«s varat redzÄt mani runÄtÄju sarakstÄ.
- Esmu arī Star Trek fane.
ParunÄsim nedaudz par darba kÄrtÄ«bu. MÅ«su darba kÄrtÄ«ba ir ļoti vienkÄrÅ”a:
- MÄs runÄsim par to, kas ir DevOps. ParunÄsim, kÄpÄc tas ir svarÄ«gi. IepriekÅ” DevOps bija atslÄgvÄrds, kuru ierakstÄ«jÄt savÄ CV un uzreiz saÅÄmÄt algu +500$. Tagad CV jÄieraksta, piemÄram, blockchain, lai pie algas saÅemtu +500 dolÄrus.
- Un tad, kad mÄs mazliet sapratÄ«sim, kas tas ir, mÄs runÄsim par to, kas ir DevOps prakse. Bet ne tik daudz DevOps kontekstÄ kopumÄ, bet gan par tÄm DevOps praksÄm, kas varÄtu interesÄt izstrÄdÄtÄjus. Es jums pastÄstÄ«Å”u, kÄpÄc tie varÄtu jÅ«s interesÄt. Es jums pastÄstÄ«Å”u, kÄpÄc jums tas vispÄr jÄdara un kÄ tas var palÄ«dzÄt jums izjust mazÄk sÄpju.
TradicionÄla bilde, ko rÄda daudzi. TÄ tas notiek daudzos projektos. Å ajÄ gadÄ«jumÄ mums ir izstrÄdes un darbÄ«bas nodaļas, kas atbalsta mÅ«su programmatÅ«ru. Un Ŕīs nodaļas savÄ starpÄ nekomunicÄ.
VarbÅ«t, ja jÅ«s to nevarÄjÄt tik skaidri izjust DevOps un operÄciju nodaļÄs, varat izdarÄ«t analoÄ£iju ar Dev un QA departamentiem. Ir cilvÄki, kas izstrÄdÄ programmatÅ«ru, un ir QA cilvÄki, kuri ir slikti no izstrÄdÄtÄju viedokļa. PiemÄram, es ievietoju savu brÄ«niŔķīgo kodu repozitorijÄ, un tur sÄž kÄds nelietis, kurÅ” atdod man Å”o kodu un saka, ka jÅ«su kods ir slikts.
Tas viss notiek tÄpÄc, ka cilvÄki nesazinÄs viens ar otru. Un viÅi izmet viens otram kaut kÄdas pakas, kÄdu aplikÄciju cauri kaut kÄdai pÄrpratuma sienai un mÄÄ£ina ar tÄm kaut ko darÄ«t.
TieÅ”i Ŕīs sienas iznÄ«cinÄÅ”anai ir paredzÄta DevOps kultÅ«ra, t.i. likt cilvÄkiem sazinÄties vienam ar otru un vismaz saprast, ko dara dažÄdi cilvÄki projektÄ un kÄpÄc viÅu darbs ir svarÄ«gs.
Un, kad mÄs runÄjam par DevOps, kÄds jums pateiks, ka DevOps ir tad, kad projektÄ ir nepÄrtraukta integrÄcija; kÄds teiks, ka DevOps ir, ja projektÄ tiek Ä«stenota āinfrastruktÅ«ras kÄ kodaā prakse; kÄds teiks, ka pirmais solis uz DevOps ir funkciju sazaroÅ”ana, funkciju karodziÅi.
BÅ«tÄ«bÄ tas viss ir taisnÄ«ba savÄ veidÄ. Bet tÄ ir tikai labÄkÄ prakse, kas mums ir. Pirms pÄriet pie Ŕīm praksÄm, iesaku apskatÄ«t Å”o slaidu, kurÄ parÄdÄ«ti 3 Dev-Ops metodoloÄ£ijas ievieÅ”anas posmi jÅ«su projektÄ, jÅ«su uzÅÄmumÄ.
Å im slaidam ir arÄ« otrs neoficiÄls nosaukums. Varat meklÄt tieÅ”saistÄ, lai uzzinÄtu, kas ir 3 DevOps musketieri. IespÄjams, ka jÅ«s atradÄ«sit Å”o rakstu. KÄpÄc 3 musketieri? ZemÄk ir rakstÄ«ts: cilvÄki, procesi un produkti, t.i. PPP ā Portosa, Portosa un Portosa. Å eit ir 3 DevOps musketieri. Å ajÄ rakstÄ ir sÄ«kÄk aprakstÄ«ts, kÄpÄc tas ir svarÄ«gi un ko tas ietver.
Kad sÄkat ieviest DevOps kultÅ«ru, ir ļoti svarÄ«gi, lai tÄ tiktu ieviesta Å”ÄdÄ secÄ«bÄ.
SÄkumÄ jums ir jÄrunÄ ar cilvÄkiem. Un jums ir jÄpaskaidro cilvÄkiem, kas tas ir un kÄ viÅi no tÄ var gÅ«t labumu.
MÅ«su konferences nosaukums ir DotNet Fest. Un, kÄ man stÄstÄ«ja organizatori, mÄs Å”eit galvenokÄrt aicinÄjÄm izstrÄdÄtÄju auditoriju, tÄpÄc es ceru, ka lielÄkÄ daļa zÄlÄ esoÅ”o cilvÄku ir iesaistÄ«ti attÄ«stÄ«bÄ.
MÄs runÄsim par cilvÄkiem, mÄs runÄsim par to, ko izstrÄdÄtÄji vÄlas darÄ«t katru dienu. Ko viÅi visvairÄk vÄlas? ViÅi vÄlas uzrakstÄ«t jaunu kodu, izmantot jaunus ietvarus, izveidot jaunas funkcijas. Ko izstrÄdÄtÄji vÄlas vismazÄk? Izlabojiet vecÄs kļūdas. Es ceru, ka jÅ«s man piekrÄ«tat. Tas ir tas, ko vÄlas izstrÄdÄtÄji. ViÅi vÄlas rakstÄ«t jaunas funkcijas, viÅi nevÄlas labot kļūdas.
KonkrÄta izstrÄdÄtÄja radÄ«to kļūdu skaits ir atkarÄ«gs no tÄ, cik taisnas ir viÅa rokas un cik tÄs izaug no pleciem, nevis no dibena kabatÄm. TaÄu, neskatoties uz to, kad mums ir liels projekts, dažreiz gadÄs, ka nav iespÄjams visam izsekot, tÄpÄc bÅ«tu jauki, ja mÄs izmantotu dažas pieejas, kas palÄ«dzÄs mums uzrakstÄ«t stabilÄku un kvalitatÄ«vÄku kodu.
Ko QA vÄlas visvairÄk? Es nezinu, vai viÅi ir zÄlÄ. Man ir grÅ«ti pateikt, ka es vÄlos QA, jo nekad neesmu tÄda bijusi. Un neapvainojiet puiÅ”us, teiks, ka es ceru, ka nekad. Bet ne tÄpÄc, ka uzskatu viÅu darbu par bezjÄdzÄ«gu un bezjÄdzÄ«gu, bet gan tÄpÄc, ka neuzskatu sevi par cilvÄku, kas Å”o darbu varÄtu paveikt efektÄ«vi, tÄpÄc pat nemÄÄ£inÄÅ”u to darÄ«t. Bet, kÄ es saprotu, QA visvairÄk nepatÄ«k iet strÄdÄt no rÄ«tiem, pastÄvÄ«gi veikt kaut kÄdus regresijas testus, uzkÄpt uz tÄm paÅ”Äm kļūdÄm, par kurÄm viÅi ziÅoja izstrÄdÄtÄjiem pirms 3 sprintiem un sakot: "Kad jÅ«s to darÄ«sit , Monsieur D 'Artanjan, izlabojiet Å”o kļūdu. Un Monsieur D'Artanjan viÅam atbild: "JÄ, jÄ, jÄ, es jau to izlaboju." Un kÄ tas notiek, ka es izlaboju vienu kļūdu un pa ceļam uztaisÄ«ju 5.
CilvÄki, kas atbalsta Å”o risinÄjumu ražoÅ”anÄ, vÄlas, lai Å”is risinÄjums darbotos bez kļūdÄm, lai viÅiem nebÅ«tu jÄpÄrstartÄ serveris katru piektdienu, kad visi normÄli cilvÄki dodas uz bÄru. IzstrÄdÄtÄji izvietoja piektdien, administratori sÄž lÄ«dz sestdienai, cenÅ”oties Å”o izvietoÅ”anu sakÄrtot un salabot.
Un, paskaidrojot cilvÄkiem, ka viÅi ir vÄrsti uz to paÅ”u problÄmu risinÄÅ”anu, varat pÄriet uz procesu formalizÄÅ”anu. Tas ir ļoti svarÄ«gi. KÄpÄc? Jo, kad mÄs sakÄm āformalizÄcijaā, jums ir svarÄ«gi aprakstÄ«t, kÄ jÅ«su procesi notiek vismaz kaut kur uz salvetes. Jums jÄsaprot, ka, piemÄram, izvietojot QA vidÄ vai ražoÅ”anas vidÄ, tas vienmÄr notiek Å”ÄdÄ secÄ«bÄ; Å”ajos posmos mÄs veicam, piemÄram, automÄtiskos vienÄ«bu testus un lietotÄja saskarnes testus. PÄc izvietoÅ”anas mÄs pÄrbaudÄm, vai izvietoÅ”ana noritÄja labi vai slikti. TaÄu jums jau ir skaidrs darbÄ«bu saraksts, kuras ir jÄatkÄrto atkal un atkal, kad izvietojat ražoÅ”anu.
Un tikai tad, kad jÅ«su procesi ir formalizÄti, jÅ«s sÄkat izvÄlÄties produktus, kas palÄ«dzÄs automatizÄt Å”os procesus.
DiemžÄl es ļoti bieži redzu, ka tas notiek otrÄdi. TiklÄ«dz kÄds dzird vÄrdu āDevOpsā, viÅÅ” nekavÄjoties iesaka instalÄt Jenkins, jo uzskata, ka, tiklÄ«dz viÅi instalÄs Jenkins, viÅiem bÅ«s DevOps. ViÅi instalÄja Dženkinsu, izlasÄ«ja rakstus āKÄā Dženkinsa vietnÄ, mÄÄ£inÄja iebÄzt procesus Å”ajos āKÄā rakstos, un tad nÄca pie cilvÄkiem un salieca cilvÄkus, sakot, ka grÄmatÄ teikts, ka tas jÄdara Å”Ädi. tÄpÄc mÄs to darÄm Å”ÄdÄ veidÄ.
Nav tÄ, ka Dženkinss ir slikts instruments. Es to nekÄdÄ veidÄ nedomÄju teikt. Bet tas ir tikai viens no produktiem. Un kuru produktu izmantot, tam vajadzÄtu bÅ«t jÅ«su pÄdÄjam lÄmumam un nekÄdÄ gadÄ«jumÄ ne pirmajam. JÅ«su produktu nedrÄ«kst virzÄ«t kultÅ«ras un pieeju Ä«stenoÅ”ana. To ir ļoti svarÄ«gi saprast, tÄpÄc es pavadu tik daudz laika pie Ŕī slaida un tik ilgi to visu skaidroju.
ParunÄsim par DevOps praksi kopumÄ. Kas viÅi ir? KÄda ir atŔķirÄ«ba? KÄ tÄs pielaikot? KÄpÄc tie ir svarÄ«gi?
PirmÄ prakse, par kuru jÅ«s, iespÄjams, dzirdÄjÄt, tiek saukta par nepÄrtrauktu integrÄciju. VarbÅ«t kÄdam projekta dalÄ«bniekam ir nepÄrtraukta integrÄcija (CI).
LielÄkÄ problÄma ir tÄ, ka visbiežÄk, kad es jautÄju cilvÄkam: "Vai jums projektÄ ir CI?" un viÅÅ” saka: āJÄā, tad, kad es jautÄju, ko viÅÅ” dara, viÅÅ” man apraksta pilnÄ«gi visu automatizÄcijas procesu. TÄ nav gluži taisnÄ«ba.
Faktiski CI prakse ir tikai vÄrsta uz dažÄdu cilvÄku rakstÄ«tÄ koda integrÄÅ”anu kaut kÄdÄ vienotÄ koda bÄzÄ. Tas ir viss.
KopÄ ar CI parasti tiek izmantotas arÄ« citas metodes, piemÄram, nepÄrtraukta izvietoÅ”ana, izlaiÅ”anas pÄrvaldÄ«ba, taÄu mÄs par to runÄsim vÄlÄk.
Pati CI mums saka, ka kodu raksta dažÄdi cilvÄki, un Å”is kods ir nepÄrtraukti jÄintegrÄ vienÄ koda bÄzÄ.
Ko tas mums dod un kÄpÄc tas ir svarÄ«gi? Ja mums ir DotNet, tad tas ir labi, tÄ ir kompilÄta valoda, mÄs varam apkopot savu lietojumprogrammu. Ja tas apkopo, tad tÄ jau ir laba zÄ«me. Tas vÄl neko nenozÄ«mÄ, bet tÄ ir pirmÄ labÄ zÄ«me, ko varam vismaz apkopot.
PÄc tam mÄs varam veikt dažus testus, kas arÄ« ir atseviŔķa prakse. PÄrbaudes ir zaļas ā tÄ ir otrÄ labÄ zÄ«me. Bet atkal tas neko nenozÄ«mÄ.
Bet kÄpÄc jÅ«s to darÄ«tu? VisÄm praksÄm, par kurÄm es Å”odien runÄÅ”u, ir aptuveni tÄda pati vÄrtÄ«ba, t.i., aptuveni vienÄdas priekÅ”rocÄ«bas, un tÄs arÄ« tiek mÄrÄ«tas aptuveni vienÄdi.
PirmkÄrt, tas ļauj paÄtrinÄt piegÄdi. KÄ tas ļauj paÄtrinÄt piegÄdi? Kad mÄs veicam dažas jaunas izmaiÅas mÅ«su kodu bÄzÄ, mÄs varam nekavÄjoties mÄÄ£inÄt kaut ko darÄ«t ar Å”o kodu. MÄs negaidÄm, lÄ«dz pienÄks ceturtdiena, jo ceturtdien mÄs to izlaižam QA Environment, mÄs to darÄm tieÅ”i Å”eit un tieÅ”i Å”eit.
Es jums pastÄstÄ«Å”u vienu skumju stÄstu no savas dzÄ«ves. Tas bija sen, kad es vÄl biju jauna un izskatÄ«ga. Tagad esmu jau jauna, skaista un gudra, un pieticÄ«ga. Pirms kÄda laika es piedalÄ«jos projektÄ. Mums bija aptuveni 30 izstrÄdÄtÄju liela komanda. Un mums bija liels, liels uzÅÄmuma projekts, kas attÄ«stÄ«jÄs apmÄram 10 gadus. Un mums bija dažÄdas filiÄles. RepozitorijÄ mums bija filiÄle, kurÄ staigÄja izstrÄdÄtÄji. Un tur bija filiÄle, kurÄ tika parÄdÄ«ta koda versija, kas tiek ražota.
RažoÅ”anas nozare par 3 mÄneÅ”iem atpalika no izstrÄdÄtÄjiem pieejamÄs nozares. Ko tas nozÄ«mÄ? Tas nozÄ«mÄ, ka tiklÄ«dz man kaut kur ir kļūda, kas nonÄk ražoÅ”anÄ izstrÄdÄtÄju vainas dÄļ, jo viÅi to atļÄva, un QA vainas dÄļ, jo viÅi to apskatÄ«ja, tad tas nozÄ«mÄ, ka, ja es saÅemÅ”u uzdevums labojumfailam ražoÅ”anai, tad man ir jÄatceļ pirms 3 mÄneÅ”iem veiktÄs koda izmaiÅas. Man jÄatceras, kas man bija pirms 3 mÄneÅ”iem, un jÄmÄÄ£ina to tur salabot.
Ja jums vÄl nav Å”Ädas pieredzes, varat to izmÄÄ£inÄt savÄ mÄjas projektÄ. Galvenais ir nemÄÄ£inÄt to komerciÄlÄ veidÄ. Uzrakstiet pÄris koda rindiÅas, aizmirstiet par tÄm uz seÅ”iem mÄneÅ”iem un pÄc tam atgriezieties un mÄÄ£iniet Ätri izskaidrot, kas ir Ŕīs koda rindiÅas un kÄ tÄs varat labot vai optimizÄt. TÄ ir ļoti, ļoti aizraujoÅ”a pieredze.
Ja mums ir nepÄrtrauktas integrÄcijas prakse, tad tas ļauj mums to pÄrbaudÄ«t ar vairÄkiem automatizÄtiem rÄ«kiem tieÅ”i Å”eit un tÅ«lÄ«t, tiklÄ«dz esmu uzrakstÄ«jis savu kodu. Tas var nesniegt man pilnÄ«gu priekÅ”statu, bet tomÄr tas novÄrsÄ«s vismaz dažus riskus. Un, ja ir kÄda potenciÄla kļūda, es par to uzzinÄÅ”u tÅ«lÄ«t, tas ir, burtiski pÄc pÄris minÅ«tÄm. Man nebÅ«s jÄatgriež 3 mÄneÅ”i. Man bÅ«s jÄatgriež tikai 2 minÅ«tes. Labam kafijas automÄtam pat nebÅ«s laika pagatavot kafiju 2 minÅ«tÄs, tÄpÄc tas ir diezgan forÅ”i.
Tam ir tÄda vÄrtÄ«ba, ka to var atkÄrtot katru reizi katrÄ projektÄ, t.i. ne tikai tas, kurÄ to iestatÄ«jÄt. Varat atkÄrtot gan paÅ”u praksi, gan arÄ« pati CI tiks atkÄrtota katrÄ jaunajÄ projektÄ veiktajÄ izmaiÅÄ. Tas ļauj optimizÄt resursus, jo jÅ«su komanda strÄdÄ efektÄ«vÄk. Jums vairs nebÅ«s situÄcijas, kad kļūda rodas no koda, ar kuru strÄdÄjÄt pirms 3 mÄneÅ”iem. Jums vairs nebÅ«s konteksta maiÅas, kad sÄdÄsit un pavadÄ«sit pirmÄs divas stundas, mÄÄ£inot saprast, kas tad notika, un iedziļinÄties konteksta bÅ«tÄ«bÄ, pirms sÄkat kaut ko labot.
KÄ mÄs varam novÄrtÄt Ŕīs prakses panÄkumus vai neveiksmes? Ja jÅ«s ziÅojat lielajam priekÅ”niekam, ko mÄs Ä«stenojÄm CI projektÄ, viÅÅ” dzird bla bla bla. MÄs to ieviesÄm, labi, bet kÄpÄc, ko tas mums deva, kÄ mÄs to izmÄrÄm, cik pareizi vai nepareizi mÄs to Ä«stenojam?
Pirmais ir tas, ka, pateicoties CI, mÄs varam izvietot arvien biežÄk un biežÄk tieÅ”i tÄpÄc, ka mÅ«su kods ir potenciÄli stabilÄks. TÄdÄ paÅ”Ä veidÄ tiek samazinÄts mÅ«su laiks kļūdas atraÅ”anai un laiks Ŕīs kļūdas laboÅ”anai tiek samazinÄts tieÅ”i tÄpÄc, ka mÄs saÅemam atbildi no sistÄmas tieÅ”i Å”eit un tÅ«lÄ«t, kas ir nepareizi ar mÅ«su kodu.
VÄl viena mÅ«su prakse ir automatizÄcijas testÄÅ”anas prakse, kas visbiežÄk nÄk kopÄ ar CI praksi. ViÅi iet roku rokÄ.
Kas Å”eit ir svarÄ«gi saprast? Ir svarÄ«gi saprast, ka mÅ«su testi ir atŔķirÄ«gi. Un katra automatizÄtÄ pÄrbaude ir vÄrsta uz savu problÄmu risinÄÅ”anu. Mums ir, piemÄram, vienÄ«bu testi, kas ļauj testÄt moduli atseviŔķi, t.i. KÄ tas darbojas vakuumÄ? Tas ir labi.
Mums ir arÄ« integrÄcijas testi, kas ļauj saprast, kÄ dažÄdi moduļi integrÄjas viens ar otru. Tas ir arÄ« labi.
Mums var bÅ«t UI automatizÄcijas testi, kas ļauj pÄrbaudÄ«t, cik labi darbs ar UI atbilst noteiktÄm klienta izvirzÄ«tajÄm prasÄ«bÄm utt.
KonkrÄtie testi, kurus veicat, var ietekmÄt to izpildes biežumu. VienÄ«bas testi parasti tiek rakstÄ«ti Ä«si un mazi. Un tos var palaist regulÄri.
Ja mÄs runÄjam par lietotÄja interfeisa automatizÄcijas testiem, tad ir labi, ja jÅ«su projekts ir mazs. JÅ«su lietotÄja interfeisa automatizÄcijas testi var aizÅemt pietiekami daudz laika. TaÄu parasti lietotÄja interfeisa automatizÄcijas pÄrbaude liela projekta Ä«stenoÅ”anai aizÅem vairÄkas stundas. Un tas ir labi, ja tas ir dažas stundas. VienÄ«gais ir tas, ka nav jÄgas tos palaist katrai bÅ«vei. Ir jÄga tos palaist naktÄ«. Un, kad visi no rÄ«ta ieradÄs darbÄ: gan testÄtÄji, gan izstrÄdÄtÄji, viÅi saÅÄma kaut kÄdu ziÅojumu, ka mÄs naktÄ« veicÄm lietotÄja interfeisa automÄtisko testu un saÅÄmÄm Å”os rezultÄtus. Un Å”eit stunda servera, kurÅ” pÄrbaudÄ«s, vai jÅ«su produkts atbilst kaut kÄdÄm prasÄ«bÄm, bÅ«s daudz lÄtÄks nekÄ tÄ paÅ”a QA inženiera darba stunda, pat ja tas ir Junior QA inženieris, kurÅ” strÄdÄ par pÄrtiku un paldies. TomÄr maŔīnas darbÄ«bas stunda bÅ«s lÄtÄka. TÄpÄc ir jÄga tajÄ ieguldÄ«t.
Man ir vÄl viens projekts, pie kura esmu strÄdÄjis. Mums bija divu nedÄļu sprints Å”ajÄ projektÄ. Projekts bija liels, svarÄ«gs finanÅ”u sektoram, un kļūdu nevarÄja pieļaut. Un pÄc divu nedÄļu sprinta izstrÄdes ciklam sekoja testÄÅ”anas process, kas aizÅÄma vÄl 4 nedÄļas. MÄÄ£iniet iedomÄties traÄ£Ädijas mÄrogu. MÄs rakstÄm kodu divas nedÄļas, pÄc tam darÄm to Ala CodeFreeze, iepakojam to jaunÄ lietojumprogrammas versijÄ un izlaižam testÄtÄjiem. TestÄtÄji to testÄ vÄl 4 nedÄļas, t.i. KamÄr viÅi to testÄ, mums ir laiks sagatavot viÅiem vÄl divas versijas. Å is ir patieÅ”Äm bÄdÄ«gs gadÄ«jums.
Un mÄs viÅiem teicÄm, ka, ja vÄlaties bÅ«t produktÄ«vÄks, ir lietderÄ«gi ieviest automatizÄtÄs testÄÅ”anas praksi, jo tieÅ”i tas jums sÄp tieÅ”i Å”eit, tieÅ”i tagad.
PraktizÄjiet nepÄrtrauktu izvietoÅ”anu. Lieliski, jÅ«s esat pabeidzis bÅ«vniecÄ«bu. Tas jau ir labi. JÅ«su kods ir apkopots. Tagad bÅ«tu jauki izvietot Å”o bÅ«vÄjumu kÄdÄ vidÄ. Teiksim izstrÄdÄtÄju vidÄ.
KÄpÄc tas ir svarÄ«gi? PirmkÄrt, varat apskatÄ«t, cik veiksmÄ«gs jums ir pats izvietoÅ”anas process. Esmu sastapis Å”Ädus projektus, kad jautÄju: āKÄ jÅ«s izvietojat jaunu aplikÄcijas versiju?ā, puiÅ”i man saka: āMÄs to samontÄjam un iesaiÅojam zip arhÄ«vÄ. NosÅ«tÄm adminam pa pastu. Administrators lejupielÄdÄ un izvÄrÅ” Å”o arhÄ«vu. Un viss birojs sÄk lÅ«gties, lai serveris uzÅemtu jauno versiju.
SÄksim ar kaut ko vienkÄrÅ”u. PiemÄram, viÅi aizmirsa arhÄ«vÄ ievietot CSS vai aizmirsa mainÄ«t tÄmturi java-script faila nosaukumÄ. Un, kad mÄs iesniedzam pieprasÄ«jumu serverim, pÄrlÅ«kprogramma uzskata, ka tai jau ir Å”is java-script fails, un nolemj to nelejupielÄdÄt. Un bija veca versija, kaut kÄ pietrÅ«ka. KopumÄ var bÅ«t daudz problÄmu. TÄpÄc nepÄrtrauktÄs izvietoÅ”anas prakse ļauj vismaz pÄrbaudÄ«t, kas notiktu, ja uzÅemtu tÄ«ru atsauces attÄlu un augÅ”upielÄdÄtu to pilnÄ«gi tÄ«rÄ jaunÄ vidÄ. JÅ«s varat redzÄt, kur tas noved.
TÄpat, integrÄjot kodu savÄ starpÄ, t.i. starp komandu, tas ļauj arÄ« redzÄt, kÄ tÄ izskatÄs lietotÄja saskarnÄ.
Viena no problÄmÄm, kas rodas, ja tiek izmantots daudz vaniļas java skriptu, ir tas, ka divi izstrÄdÄtÄji loga objektÄ nepÄrdomÄti deklarÄja mainÄ«go ar tÄdu paÅ”u nosaukumu. Un tad, atkarÄ«bÄ no jÅ«su veiksmes. Kura java skripta fails tiek izvilkts otrais, tas pÄrrakstÄ«s otra faila izmaiÅas. Tas ir arÄ« ļoti aizraujoÅ”i. Tu ienÄc: viena lieta der vienam, cita neder citam. Un tas ir ābrÄ«niŔķīgiā, kad tas viss tiek izdots ražoÅ”anÄ.
NÄkamÄ mÅ«su prakse ir automÄtiskÄs atjaunoÅ”anas prakse, proti, atgrieÅ”anÄs pie iepriekÅ”ÄjÄs lietojumprogrammas versijas.
KÄpÄc tas ir svarÄ«gi izstrÄdÄtÄjiem? JoprojÄm ir tÄdi, kas atceras tÄlos, tÄlos 90. gadus, kad datori bija lieli un programmas mazas. Un vienÄ«gais veids, kÄ izstrÄdÄt tÄ«mekļa vietni, bija PHP. Nav tÄ, ka PHP ir slikta valoda, lai gan tÄ ir.
Bet problÄma bija cita. Kad mÄs izvietojÄm jaunu php vietnes versiju, kÄ mÄs to izvietojÄm? VisbiežÄk mÄs atvÄrÄm Far Manager vai ko citu. Un augÅ”upielÄdÄja Å”os failus FTP. Un mÄs pÄkÅ”Åi sapratÄm, ka mums ir kÄda maza, maza kļūda, piemÄram, mÄs aizmirsÄm ievietot semikolu vai aizmirsÄm nomainÄ«t datu bÄzes paroli, un ir datu bÄzes parole, kas atrodas vietÄjÄ resursdatorÄ. Un mÄs nolemjam Ätri izveidot savienojumu ar FTP un rediÄ£Ät failus tieÅ”i tur. Å Ä« ir tikai uguns! Tas bija populÄrs 90. gados.
Bet, ja neesat skatÄ«jies kalendÄrÄ, 90. gadi bija gandrÄ«z pirms 30 gadiem. Tagad viss notiek mazliet savÄdÄk. Un mÄÄ£iniet iztÄloties traÄ£Ädijas mÄrogu, kad viÅi jums saka: āMÄs izvÄrsÄm ražoÅ”anu, taÄu tur kaut kas nogÄja greizi. Å eit ir jÅ«su FTP pieteikumvÄrds un parole, izveidojiet savienojumu ar ražoÅ”anu un Ätri izlabojiet to. Ja jÅ«s esat Äaks Noriss, tas darbosies. Ja nÄ, tad jÅ«s riskÄjat, ka, izlabojot vienu kļūdu, jÅ«s izveidosit vÄl 10. TieÅ”i tÄpÄc Ŕī prakse atgriezties pie iepriekÅ”ÄjÄs versijas ļauj sasniegt daudz.
Pat ja kaut kas slikts kaut kur ir iekļuvis prod, tad tas ir slikti, bet ne letÄli. Varat atgriezties pie iepriekÅ”ÄjÄs versijas. Sauciet to par rezerves kopiju, ja to ir vieglÄk uztvert Å”ajÄ terminoloÄ£ijÄ. Varat atgriezties pie Ŕīs iepriekÅ”ÄjÄs versijas, un lietotÄji joprojÄm varÄs strÄdÄt ar jÅ«su produktu, un jums bÅ«s pietiekams bufera laiks. Varat to visu mierÄ«gi, bez steigas paÅemt un pÄrbaudÄ«t lokÄli, salabot un pÄc tam augÅ”upielÄdÄt jaunu versiju. Tas patieÅ”Äm ir jÄga to darÄ«t.
Tagad mÄÄ£inÄsim kaut kÄ apvienot abas iepriekÅ”ÄjÄs prakses kopÄ. MÄs iegÅ«sim treÅ”o ar nosaukumu Release Management.
Kad mÄs runÄjam par nepÄrtrauktu izvietoÅ”anu tÄs klasiskajÄ formÄ, mÄs sakÄm, ka mums ir jÄizvelk kods no kÄdas filiÄles no repozitorija, tas jÄapkopo un jÄizvieto. Ir labi, ja mums ir vienÄda vide. Ja mums ir vairÄkas vides, tas nozÄ«mÄ, ka mums katru reizi ir jÄizvelk kods, pat no vienas un tÄs paÅ”as darbÄ«bas. MÄs to izvilksim katru reizi, mÄs to uzbÅ«vÄsim katru reizi un izvietosim jaunÄ vidÄ. PirmkÄrt, Å”is ir laiks, jo, lai izveidotu projektu, ja jums ir liels un nÄcis no 90. gadiem, tas var aizÅemt vairÄkas stundas.
TurklÄt ir vÄl viens skumjas. Kad veidosiet pat tajÄ paÅ”Ä maŔīnÄ, veidosiet tos paÅ”us avotus, jums joprojÄm nav garantijas, ka Ŕī iekÄrta ir tÄdÄ paÅ”Ä stÄvoklÄ«, kÄdÄ tÄ bija pÄdÄjÄs bÅ«ves laikÄ.
PieÅemsim, ka kÄds ieradÄs un atjauninÄja DotNet jÅ«su vietÄ vai, gluži pretÄji, kÄds nolÄma kaut ko izdzÄst. Un tad jums ir kognitÄ«vÄ disonanse, ka no Ŕīs saistÄ«bas pirms divÄm nedÄļÄm mÄs veidojÄm bÅ«vniecÄ«bu un viss bija kÄrtÄ«bÄ, bet tagad Ŕķiet, ka tÄ pati maŔīna, tÄ pati commit, tas pats kods, ko mÄs cenÅ”amies izveidot, bet tas nedarbojas. . JÅ«s ar to saskarsities ilgu laiku, un tas nav fakts, ka jÅ«s to izdomÄsit. Vismaz jÅ«s ļoti sabojÄsit savus nervus.
TÄpÄc laidienu pÄrvaldÄ«bas prakse iesaka ieviest papildu abstrakciju, ko sauc par artefaktu krÄtuvi vai galeriju vai bibliotÄku. JÅ«s varat to saukt, kÄ vÄlaties.
GalvenÄ ideja ir tÄda, ka, tiklÄ«dz mums ir kaut kÄda veida commit tur, teiksim, filiÄlÄ, kuru mÄs esam gatavi izvietot savÄs dažÄdÄs vidÄs, mÄs apkopojam lietojumprogrammas no Ŕīs saistÄ«bas un visu, kas nepiecieÅ”ams Å”ai lietojumprogrammai, mÄs to iesaiÅojam. zip arhÄ«vÄ un saglabÄjiet to uzticamÄ krÄtuvÄ. Un no Ŕīs krÄtuves mÄs varam iegÅ«t Å”o zip arhÄ«vu jebkurÄ laikÄ.
PÄc tam mÄs to Åemam un automÄtiski izvietojam izstrÄdÄtÄja vidÄ. MÄs tur braucam, un, ja viss ir labi, tad izvietojamies uz skatuves. Ja viss ir kÄrtÄ«bÄ, tad mÄs izvietojam to paÅ”u arhÄ«vu ražoÅ”anÄ, tos paÅ”us binÄros failus, kas apkopoti tieÅ”i vienu reizi.
TurklÄt, ja mums ir Å”Äda galerija, tÄ arÄ« palÄ«dz mums novÄrst riskus, par kuriem mÄs runÄjÄm pÄdÄjÄ slaidÄ, kad runÄjÄm par atgrieÅ”anu uz iepriekÅ”Äjo versiju. Ja nejauÅ”i izvietojÄt kaut ko nepareizi, vienmÄr varat paÅemt jebkuru citu iepriekÅ”Äjo versiju no Ŕīs galerijas un atsaukt to Å”ajÄs vidÄs tÄdÄ paÅ”Ä veidÄ. Tas ļauj viegli atgriezties pie iepriekÅ”ÄjÄs versijas, ja kaut kas noiet greizi.
Ir vÄl viena lieliska prakse. MÄs visi saprotam, ka, atgriežot savas lietojumprogrammas uz iepriekÅ”Äjo versiju, tas var nozÄ«mÄt, ka mums ir nepiecieÅ”ama arÄ« iepriekÅ”ÄjÄs versijas infrastruktÅ«ra.
Kad mÄs runÄjam par virtuÄlo infrastruktÅ«ru, daudzi cilvÄki domÄ, ka tas ir kaut kas tÄds, ko iestata administratori. Un, ja jums ir nepiecieÅ”ams, teiksim, iegÅ«t jaunu serveri, kurÄ vÄlaties pÄrbaudÄ«t jaunu savas lietojumprogrammas versiju, jums ir jÄuzraksta biļete administratoriem vai devops. Devops tam bÅ«s nepiecieÅ”amas 3 nedÄļas. Un pÄc 3 nedÄļÄm viÅi jums pateiks, ka esam jums instalÄjuÅ”i virtuÄlo maŔīnu ar vienu kodolu, diviem gigabaitiem RAM un Windows serveri bez DotNet. JÅ«s sakÄt: "Bet es gribÄju DotNet." ViÅi: "Labi, atgriezieties pÄc 3 nedÄļÄm."
Ideja ir tÄda, ka, izmantojot infrastruktÅ«ru kÄ kodu, jÅ«s varat uzskatÄ«t savu virtuÄlo infrastruktÅ«ru tikai par citu resursu.
IespÄjams, ja kÄds no jums izstrÄdÄ lietojumprogrammas vietnÄ DotNet, iespÄjams, esat dzirdÄjis par bibliotÄku ar nosaukumu Entity Framework. Un jÅ«s, iespÄjams, pat esat dzirdÄjuÅ”i, ka Entity Framework ir viena no pieejÄm, ko Microsoft aktÄ«vi virza. Darbam ar datu bÄzi Ŕī ir pieeja, ko sauc par Code First. Tas ir tad, kad kodÄ aprakstÄt, kÄ vÄlaties izskatÄ«ties jÅ«su datu bÄzei. Un tad jÅ«s izvietojat lietojumprogrammu. Tas pieslÄdzas datu bÄzei, pats nosaka, kuras tabulas ir un kuras nav, un izveido visu nepiecieÅ”amo.
JÅ«s varat darÄ«t to paÅ”u ar savu infrastruktÅ«ru. Nav atŔķirÄ«bas starp to, vai projektam ir nepiecieÅ”ama datu bÄze vai projektam ir nepiecieÅ”ams Windows serveris. Tas ir tikai resurss. Un jÅ«s varat automatizÄt Ŕī resursa izveidi, jÅ«s varat automatizÄt Ŕī resursa konfigurÄciju. AttiecÄ«gi katru reizi, kad vÄlaties pÄrbaudÄ«t kÄdu jaunu koncepciju, jaunu pieeju, jums nebÅ«s jÄraksta biļete uz devops, jÅ«s varat vienkÄrÅ”i izvietot izolÄtu infrastruktÅ«ru sev no gatavÄm veidnÄm, no gataviem skriptiem un to ieviest. tur ir visi jÅ«su eksperimenti. Varat to izdzÄst, iegÅ«t dažus rezultÄtus un ziÅot par to tÄlÄk.
NÄkamÄ prakse, kas arÄ« pastÄv un ir arÄ« svarÄ«ga, bet kuru izmanto tikai daži cilvÄki, ir lietojumprogrammu veiktspÄjas uzraudzÄ«ba.
Es gribÄju teikt tikai vienu lietu par lietojumprogrammu veiktspÄjas uzraudzÄ«bu. Kas Å”ajÄ praksÄ ir vissvarÄ«gÄkais? Lietojumprogrammu veiktspÄjas uzraudzÄ«ba ir aptuveni tas pats, kas dzÄ«vokļa remonts. Tas nav galÄ«gais stÄvoklis, tas ir process. Jums tas jÄdara regulÄri.
LabÄ nozÄ«mÄ bÅ«tu labi veikt lietojumprogrammu veiktspÄjas uzraudzÄ«bu gandrÄ«z katrÄ versijÄ, lai gan, kÄ jÅ«s saprotat, tas ne vienmÄr ir iespÄjams. Bet vismaz tas ir jÄveic katrai izlaiÅ”anai.
KÄpÄc tas ir svarÄ«gi? Jo, ja pÄkÅ”Åi rodas veiktspÄjas kritums, tad jums ir skaidri jÄsaprot, kÄpÄc. Ja jÅ«su komandai ir, teiksim, divu nedÄļu sprints, tad vismaz reizi divÄs nedÄļÄs jums vajadzÄtu izvietot savu lietojumprogrammu kÄdÄ atseviÅ”Ä·Ä serverÄ«, kur jums ir skaidri fiksÄts procesors, RAM, diski utt. Un palaist tos paÅ”us veiktspÄjas testus. . JÅ«s saÅemat rezultÄtu. Skatiet, kÄ tas ir mainÄ«jies salÄ«dzinÄjumÄ ar iepriekÅ”Äjo sprinta laiku.
Un, ja uzzinÄsiet, ka izÅemÅ”ana kaut kur strauji samazinÄjÄs, tas nozÄ«mÄs, ka tas notika tikai pÄdÄjo divu nedÄļu laikÄ notikuÅ”o izmaiÅu dÄļ. Tas ļaus jums daudz ÄtrÄk noteikt un novÄrst problÄmu. Un atkal Å”ie ir aptuveni tie paÅ”i rÄdÄ«tÄji, pÄc kuriem varat novÄrtÄt, cik veiksmÄ«gi jÅ«s to paveicÄt.
NÄkamÄ mÅ«su prakse ir konfigurÄcijas pÄrvaldÄ«bas prakse. Ir ļoti maz tÄdu, kas to uztver nopietni. Bet ticiet man, tÄ patiesÄ«bÄ ir ļoti nopietna lieta.
Nesen bija smieklÄ«gs stÄsts. PuiÅ”i pienÄca pie manis un teica: "PalÄ«dziet mums veikt mÅ«su lietojumprogrammas droŔības auditu." KopÄ ilgi skatÄ«jÄmies kodu, stÄstÄ«ja par aplikÄciju, zÄ«mÄja diagrammas. Un plus mÄ«nus viss bija loÄ£iski, saprotami, droÅ”i, bet bija viens BET! ViÅu avota kontrolÄ bija konfigurÄcijas faili, tostarp tie, kas iegÅ«ti no ražoÅ”anas ar IP datu bÄzi, ar pieteikumvÄrdiem un parolÄm, lai izveidotu savienojumu ar Ŕīm datu bÄzÄm utt.
Un es saku: āPuiÅ”i, labi, jÅ«s esat aizvÄris savu ražoÅ”anas vidi ar ugunsmÅ«ri, bet tas, ka jums ir tieÅ”i avota vadÄ«klÄ un jebkurÅ” izstrÄdÄtÄjs var to izlasÄ«t, jau ir milzÄ«gs droŔības risks. . Un neatkarÄ«gi no tÄ, cik ļoti droÅ”a ir jÅ«su lietojumprogramma no koda viedokļa, ja atstÄjat to avota kontrolÄ, jÅ«s nekad nekur neizturÄsit auditu. Tas ir tas par ko es runÄju.
KonfigurÄcijas pÄrvaldÄ«ba. Mums var bÅ«t dažÄdas konfigurÄcijas dažÄdÄs vidÄs. PiemÄram, mums var bÅ«t dažÄdi pieteikumvÄrdi un paroles datu bÄzÄm kvalitÄtes nodroÅ”inÄÅ”anai, demonstrÄcijai, ražoÅ”anas videi utt.
Å o konfigurÄciju var arÄ« automatizÄt. Tam vienmÄr jÄbÅ«t atseviŔķi no paÅ”as lietojumprogrammas. KÄpÄc? TÄ kÄ lietojumprogrammu veidojÄt vienreiz, un tad lietojumprogrammai ir vienalga, vai izveidojat savienojumu ar SQL serveri, izmantojot Å”Ädu un tÄdu IP vai tÄdu un tÄdu IP, tai vajadzÄtu darboties tÄpat. TÄpÄc, ja pÄkÅ”Åi kÄds no jums joprojÄm stingri iekodÄ savienojuma virkni kodÄ, atcerieties, ka es jÅ«s atradÄ«Å”u un sodÄ«Å”u, ja jÅ«s atradÄ«sities vienÄ projektÄ ar mani. Tas vienmÄr tiek ievietots atseviÅ”Ä·Ä konfigurÄcijÄ, piemÄram, Web.config.
Un Ŕī konfigurÄcija jau tiek pÄrvaldÄ«ta atseviŔķi, t.i., tas ir tieÅ”i tas brÄ«dis, kad izstrÄdÄtÄjs un administrators var nÄkt un sÄdÄt vienÄ telpÄ. Un izstrÄdÄtÄjs var teikt: āLÅ«k, Å”eit ir manas lietojumprogrammas binÄrie faili. ViÅi strÄdÄ. Lai lietojumprogramma darbotos, nepiecieÅ”ama datu bÄze. Å eit blakus binÄrajiem failiem ir fails. Å ajÄ failÄ Å”is lauks ir atbildÄ«gs par pieteikÅ”anos, tas ir par paroli, tas ir par IP. Izvietojiet to jebkur." Un tas ir vienkÄrÅ”i un skaidrs administratoram. PÄrvaldot Å”o konfigurÄciju, viÅÅ” to var izvietot jebkur.
Un pÄdÄjÄ prakse, par kuru es vÄlÄtos runÄt, ir prakse, kas ir ļoti, ļoti saistÄ«ta ar mÄkoÅiem. Un tas sniedz maksimÄlu efektu, ja strÄdÄjat mÄkonÄ«. Å Ä« ir jÅ«su vides automÄtiska noÅemÅ”ana.
Es zinu, ka Å”ajÄ konferencÄ ir vairÄki cilvÄki no komandÄm, ar kurÄm es strÄdÄju. Un ar visÄm komandÄm, ar kurÄm es strÄdÄju, mÄs izmantojam Å”o praksi.
KÄpÄc? Protams, bÅ«tu lieliski, ja katram izstrÄdÄtÄjam bÅ«tu virtuÄlÄ maŔīna, kas strÄdÄtu 24/7. Bet varbÅ«t tas jums ir jaunums, iespÄjams, jÅ«s nepievÄrsÄt uzmanÄ«bu, bet pats izstrÄdÄtÄjs nestrÄdÄ 24/7. IzstrÄdÄtÄjs parasti strÄdÄ 8 stundas dienÄ. Pat ja viÅÅ” nÄk uz darbu agri, viÅam ir lielas pusdienas, kuru laikÄ viÅÅ” dodas uz sporta zÄli. Lai tÄs bÅ«tu 12 stundas dienÄ, kad izstrÄdÄtÄjs faktiski izmanto Å”os resursus. SaskaÅÄ ar mÅ«su likumdoÅ”anu mums ir 5 no 7 dienÄm nedÄļÄ, kas tiek uzskatÄ«tas par darba dienÄm.
AttiecÄ«gi darba dienÄs Å”ai maŔīnai nevajadzÄtu strÄdÄt 24 stundas, bet tikai 12, un brÄ«vdienÄs Å”ai iekÄrtai nevajadzÄtu strÄdÄt vispÄr. Å Ä·iet, ka viss ir ļoti vienkÄrÅ”i, bet ko Å”eit ir svarÄ«gi pateikt? IevieÅ”ot Å”o vienkÄrÅ”o praksi Å”ajÄ pamata grafikÄ, tas ļauj samazinÄt Å”o vidi uzturÄÅ”anas izmaksas par 70%, t.i., jÅ«s paÅÄmÄt sava izstrÄdÄtÄja, kvalitÄtes nodroÅ”inÄÅ”anas, demonstrÄcijas, vides cenu un dalÄ«jÄt to ar 3.
JautÄjums, ko darÄ«t ar atlikuÅ”o naudu? PiemÄram, izstrÄdÄtÄjiem vajadzÄtu iegÄdÄties ReSharper, ja viÅi to vÄl nav izdarÄ«juÅ”i. Vai arÄ« sarÄ«ko kokteiļu ballÄ«ti. Ja jums iepriekÅ” bija viena vide, kurÄ ganÄ«jÄs gan izstrÄdÄtÄjs, gan QA, un tas arÄ« viss, tagad varat izveidot 3 dažÄdas, kas bÅ«s izolÄtas un cilvÄki netraucÄs viens otram.
RunÄjot par slaidu ar nepÄrtrauktu veiktspÄjas mÄrÄ«Å”anu, kÄ mÄs varam salÄ«dzinÄt veiktspÄju, ja projektÄ datu bÄzÄ bija 1 ierakstu, bet divus mÄneÅ”us vÄlÄk ir miljons? KÄ saprast, kÄpÄc un kÄda ir veiktspÄjas mÄrÄ«Å”anas jÄga?
Tas ir labs jautÄjums, jo vienmÄr ir jÄmÄra veiktspÄja ar tiem paÅ”iem resursiem. Tas nozÄ«mÄ, ka jÅ«s izlaižat jaunu kodu, novÄrtÄjat jaunÄ koda veiktspÄju. PiemÄram, jums ir jÄpÄrbauda dažÄdi veiktspÄjas scenÄriji, pieÅemsim, ka vÄlaties pÄrbaudÄ«t, kÄ lietojumprogramma darbojas ar nelielu slodzi, kur ir 1 lietotÄju un datu bÄzes izmÄrs ir 000 gigabaiti. JÅ«s to izmÄrÄ«jÄt un saÅÄmÄt skaitļus. TÄlÄk mÄs pieÅemam citu scenÄriju. PiemÄram, 5 lietotÄju, datu bÄzes izmÄrs 5 terabaits. MÄs saÅÄmÄm rezultÄtus un atcerÄjÄmies tos.
Kas Å”eit ir svarÄ«gs? Å eit svarÄ«gi ir tas, ka atkarÄ«bÄ no scenÄrija, datu apjoma, vienlaicÄ«go lietotÄju skaita utt. var rasties noteikti ierobežojumi. PiemÄram, lÄ«dz tÄ«kla kartes ierobežojumam, vai lÄ«dz cietÄ diska ierobežojumam, vai lÄ«dz procesora iespÄju robežai. Tas ir tas, kas jums ir svarÄ«gi saprast. DažÄdos scenÄrijos jÅ«s saskaraties ar noteiktiem ierobežojumiem. Un jums ir jÄsaprot skaitļi, kad tos trÄpÄ«jat.
Vai mÄs runÄjam par veiktspÄjas mÄrÄ«Å”anu Ä«paÅ”Ä testa vidÄ? Tas ir, tÄ nav ražoÅ”ana?
JÄ, Ŕī nav ražoÅ”ana, tÄ ir testa vide, kas vienmÄr ir vienÄda, lai jÅ«s varÄtu to salÄ«dzinÄt ar iepriekÅ”Äjiem mÄrÄ«jumiem.
Sapratu paldies!
Ja nav jautÄjumu, es domÄju, ka varam pabeigt. Paldies!
Avots: www.habr.com