Maitiro ekuvaka yakazara-yakazara inhouse kuvandudza uchishandisa DevOps - VTB ruzivo

DevOps maitiro anoshanda. Takava nechokwadi nazvo pachedu patakaderedza nguva yokuisa kubudiswa nekagumi. MuFIS Profile system, yatinoshandisa paVTB, kuiswa ikozvino kunotora maminitsi e10 pane 90. Kusunungurwa kwekuvaka nguva yakaderera kubva kumavhiki maviri kusvika kumazuva maviri. Huwandu hwekuramba huchikanganisa kuita hwadzika kusvika pahushoma. Kuti tibve pa "basa remaoko" uye kubvisa kutsamira kune mutengesi, taifanira kushanda nemadondoro uye kuwana mhinduro dzisingatarisirwi. Pazasi pekuchekwa pane nyaya yakadzama nezve mavakirwo atakaita yakazara-yakazara mukati mekuvandudza.

Maitiro ekuvaka yakazara-yakazara inhouse kuvandudza uchishandisa DevOps - VTB ruzivo
 

Prologue: DevOps uzivi

Mugore rapfuura, takaita basa rakawanda kuronga kuvandudzwa kwemukati uye kuita maitiro eDevOps paVTB:

  • Isu takavaka mukati mekuvandudza maitiro e12 masisitimu;
  • Takatanga mapaipi gumi nemashanu, mana acho akaunzwa kuti agadzirwe;
  • Automated 1445 bvunzo mamiriro;
  • Isu takabudirira kuita akati wandei ekuburitswa akagadzirirwa ne-mu-dzimba zvikwata.

Imwe yeakanyanya kuoma kuronga inhouse kuvandudza uye kuita kweDevSecOps maitiro akazove iyo FIS Profile system - retail chigadzirwa processor pane isiri-yehukama DBMS. Zvakadaro, isu takakwanisa kuvaka budiriro, kuburitsa pombi, kuisa ega-ega-asina-kuburitsa mapakeji pachigadzirwa, uye takadzidza nzira yekuunganidza zvinoburitswa. Basa racho rakanga risiri nyore, asi rinonakidza uye pasina zvirambidzo zviri pachena mukuita: heino sisitimu - iwe unofanirwa kuvaka kusimudzira kweimba. Chimiro chete ndechekushandisa CD pamberi penzvimbo inobereka.

Pakutanga, iyo algorithm yekushandisa yairatidzika nyore uye yakajeka:

  • Isu tinokudziridza hunyanzvi hwekusimudzira uye kuwana nhanho inogamuchirwa yemhando kubva kuchikwata chekodhi pasina hurema hwakakomba;
  • Isu tinobatanidza muzvirongwa zviripo zvakanyanya sezvinobvira;
  • Kuendesa kodhi pakati pematanho akajeka, tinocheka pombi uye tosundira imwe yemagumo ayo mukuenderera mberi.

Munguva ino, timu yekusimudzira yehukuru hunodiwa inofanirwa kukudziridza hunyanzvi uye kuwedzera chikamu chemupiro wayo mukuburitswa kusvika padanho rinogamuchirwa. Uye ndizvozvo, tinogona kufunga nezvebasa rakapedzwa.

Zvingaita sekuti iyi inzira yakakwana-inoshanda kune mhedzisiro inodiwa: heino DevOps, heino maitiro echikwata chemetrics, heino hunyanzvi hwakaunganidzwa ... Asi mukuita, takagamuchira chimwe chisimbiso chekuti DevOps ichiri nezvehuzivi. , uye kwete "yakanamatira kune iyo gitlab process, inonzwisisika, nexus uye nekuwedzera pasi runyorwa."

Mushure mekuongorora zvakare chirongwa chekuita, takaona kuti isu taivaka mhando yemutengesi wekunze mukati medu. Naizvozvo, process reengineering yakawedzerwa kune algorithm yakatsanangurwa pamusoro, pamwe nekuvandudzwa kwehunyanzvi munzira yese yebudiriro kuti uwane basa rinotungamira mukuita uku. Haisi iyo iri nyore sarudzo, asi iyi ndiyo nzira yekuvandudza ideologically.
 

Inhouse development inotangira papi? 

Yakanga isiri iyo hurongwa hwehushamwari hwekushanda nayo. Architecturally, yaive imwe hombe isiri yehukama DBMS, yaive nezvakawanda zvakasiyana zvinogoneka zvinhu (zvinyorwa, maitiro, mabhechi, nezvimwewo), izvo zvakadanwa sezvinodiwa, uye zvakashanda pamusimboti webhokisi dema: rinogamuchira chikumbiro uye nyaya. mhinduro. Mamwe matambudziko anofanirwa kucherechedzwa anosanganisira:

  • Mutauro wekunze (MUMPS);
  • Console interface;
  • Kushaikwa kwekubatanidzwa neanozivikanwa otomatiki maturusi uye masisitimu;
  • Data volume mumakumi eterabytes;
  • Kuremerwa kweanopfuura mamirioni maviri ekushanda paawa;
  • Kukosha - Bhizinesi-Yakakosha.

Panguva imwecheteyo, pakanga pasina sosi kodhi repository parutivi rwedu. Zvachose. Paive nezvinyorwa, asi ruzivo rwese rwakakosha uye kugona kwaive kudivi resangano rekunze.
Isu takatanga kugona kusimudzira sisitimu kunenge kubva kutanga, tichifunga nezve maficha ayo uye yakaderera kugovera. Yakatangwa muna Gumiguru 2018:

  • Akadzidza zvinyorwa uye nheyo dzekugadzira kodhi;
  • Takadzidza kosi pfupi pamusoro pebudiriro yakagamuchirwa kubva kumutengesi;
  • Hunyanzvi hwekutanga hwekuvandudza;
  • Takanyora bhuku rekudzidzisa nhengo itsva dzechikwata;
  • Takabvumirana kuisa timu mu "combat" mode;
  • Yakagadzirisa nyaya yacho nekodhi yemhando yekudzora;
  • Takaronga stand for development.

Takapedza mwedzi mitatu tichigadzira hunyanzvi uye kunyudza isu muhurongwa, uye kubva kutanga kwa2019, kusimudzira kwemukati kwakatanga kufamba kwayo kuenda kune ramangwana rakajeka, dzimwe nguva nekunetseka, asi nechivimbo uye nechinangwa.

Repository migration uye autotests

Yekutanga DevOps basa ndiro repository. Isu takakurumidza kubvumirana nekupa mukana, asi zvaive zvakafanira kutama kubva kune yazvino SVN ine rimwe trunk bazi kuenda kune yedu tarisiro Git neshanduko kune muenzaniso wemapazi akati wandei uye kusimudzira kweGit Flow. Isu tinewo zvikwata zviviri zvine zvivakwa zvavo, pamwe nechikamu chechikwata chevatengesi kunze kwenyika. Ini ndaifanira kugara nemaGits maviri uye nekuona kuwiriranisa. Mumamiriro ezvinhu akadaro, kwaiva kudukusa kwezvakaipa zviviri.

Kutama kweiyo repository kwakadzokororwa kumashure; yakapedzwa chete muna Kubvumbi, nerubatsiro rwevaaishanda navo kubva kumberi. NeGit Flow, isu takasarudza kuchengetedza zvinhu zviri nyore kwekutanga uye kugadzikana pane yekirasi chirongwa nehotfix, gadzira uye kuburitsa. Vakasarudza kusiya master (aka prod-like). Pazasi isu tichatsanangura kuti sei sarudzo iyi yakave yakanakira isu. Nzvimbo yekunze yemutengesi, yakajairika kuzvikwata zviviri, yakashandiswa semushandi. Iyo yakawiriraniswa neyemukati repository zvinoenderana nehurongwa. Zvino neGit neGitlab zvaigoneka kuita otomatiki maitiro.

Nyaya ye autotests yakagadziriswa zvinoshamisa nyore nyore - isu takapihwa neyakagadzirirwa-yakagadzirwa chimiro. Tichifunga nezvezvakasarudzika zvehurongwa, kudana kushanda kwakasiyana kwaive chikamu chinonzwisisika chebhizinesi uye panguva imwechete yakashanda seyeyuniti bvunzo. Zvese zvakasara ndezvekugadzirira data rekuyedza uye kuseta rairo yaidiwa yekudaidza zvinyorwa uye kuongorora mhedzisiro. Sezvo rondedzero yezviitiko, yakaumbwa pahwaro hwehuwandu hwekushanda, kutsoropodza kwemaitiro uye iripo yekudzoreredza nzira, yakazadzwa, otomatiki bvunzo dzakatanga kuoneka. Zvino tinogona kutanga kugadzira pombi.

Zvakanga zvakaita sei: modhi pamberi pe otomatiki

Muenzaniso uripo wekuita maitiro inyaya yakaparadzana. Imwe neimwe shanduko yakafambiswa nemaoko seyakasiyana yekuwedzera yekuisa package. Tevere kwakauya kunyoreswa kwemaoko muJira uye kuisirwa kwemaoko pane zvakatipoteredza. Pamapakeji ega ega, zvese zvaitaridzika zvakajeka, asi nekugadzirira kwekuburitswa, zvinhu zvaive zvakanyanya kuoma.

Gungano rakaitwa pamwero wekutakura kwega, izvo zvaive zvinhu zvakasununguka. Chero shanduko itori nyowani. Pakati pezvimwe zvinhu, 60-70 tekinoroji shanduro dzakawedzerwa kune 10-15 mapakeji eiyo huru yekuburitsa kuumbwa - shanduro dzakawanikwa pakuwedzera kana kusasanganisa chimwe chinhu kubva mukuburitswa uye kuratidza shanduko mukutengesa kunze kwekuburitswa.

Zvishandiso mukati mekutakura zvakapindirana, kunyanya mukodhi inogoneka, yaive isingasviki hafu yakasiyana. Paive nezvakawanda zvinotsamira pairi kodhi yakatoiswa uye pane iyo yekumisikidza yakanga ichangorongwa. 

Kuti uwane shanduro yaidiwa yekodhi, zvaive zvakafanira kunyatsotevera kurongeka kwekuisa, panguva iyo zvinhu zvakanyorwa zvakare mumuviri kakawanda, dzimwe nguva 10-12.

Mushure mekuisa batch yemapakeji, ini ndaifanira kutevedzera mirairo yekutanga zvigadziriso. Kuburitswa kwakaunganidzwa uye kuiswa nemutengesi. Kuumbwa kwekuburitswa kwakajekeswa nguva isati yasvika, iyo inosanganisira kugadzirwa kwe "decoupling" mapakeji. Nekuda kweizvozvo, chikamu chakakosha chemidziyo yakatama kubva pakuburitswa kuenda kusunungurwa nemuswe wayo we "decouplings".

Zvino zvave pachena kuti neiyi nzira - kuunganidza iyo puzzle yekuburitsa padanho repasuru - bazi rimwechete master rakanga risina zvarinoreva. Kuiswa pakugadzira kwakatora kubva paawa imwe nehafu kusvika kumaawa maviri ebasa remaoko. Zvakanaka kuti padanho rekuisa hurongwa hwekugadziriswa kwechinhu hwakatsanangurwa: minda uye zvimiro zvakaiswa pamberi pe data ravo uye maitiro. Nekudaro, izvi zvakangoshanda mukati meimwe package.

Mhedzisiro inonzwisisika yeiyi nzira yaive yekusungirwa kugadzika kukanganisa muchimiro cheakatsveyama zvinyorwa zvezvinhu, kodhi isingakodzeri, mirairo yakashaikwa uye isingaverengeki kuwirirana kwezvinhu, izvo zvakabviswa nefivha mushure mekusunungurwa. 

Magadzirirwo ekutanga: kusangana uye kutumira

Automation yakatanga nekutumira kodhi kuburikidza nepombi munzira iyi:

  • Tora dhiri rakapedzwa kubva pakuchengetwa;
  • Iise panzvimbo yakatsaurirwa;
  • Run autotests;
  • Ongorora mhedzisiro yekuisa;
  • Dana iyo inotevera pombi padivi reyedzo yekuraira.

Iyo pombi inotevera inofanira kunyoresa basa muJira uye kumirira kuti mirairo igoverwe kune yakasarudzwa yekuyedza zvishwe, zvinoenderana nenguva yekuitwa kwebasa. Trigger - tsamba pamusoro pekugadzirira kuendesa kune imwe kero. Hongu, iyi yakanga iri nzira iri pachena, asi ndaifanira kutanga pane imwe nzvimbo. Muna Chivabvu 2019, kuendeswa kwekodhi kwakatanga nekutarisa nharaunda dzedu. Maitiro atanga, chasara kuunza chimiro chakanaka:

  • Kugadziridzwa kwega kwega kunoitwa mubazi rakasiyana, rinoenderana nepakiti yekuisa uye inobatanidza mune inotarirwa tenzi bazi;
  • Iyo pombi yekumisikidza inokonzeresa kutaridzika kwechipimo chitsva mubazi ra master kuburikidza nechikumbiro chekubatanidza, icho chinovharwa nevanochengetedza kubva kuchikwata chemukati;
  • Repositories inofananidzwa kamwe chete pamaminitsi mashanu;
  • Iko kuungana kwepakiti yekuisa inotangwa - uchishandisa assembler yakagamuchirwa kubva kune mutengesi.

Mushure meizvi, pakanga pane matanho atove aripo ekutarisa uye kutumira kodeti, kutanga pombi uye kuungana parutivi rwedu.

Iyi sarudzo yakatangwa muna Chikunguru. Matambudziko ekuchinja akakonzera kusagutsikana pakati pemutengesi uye mutsara wepamberi, asi mumwedzi wakatevera takakwanisa kubvisa mipendero yese yakashata uye kugadzira hurongwa pakati pezvikwata. Iye zvino tava negungano nekuzvipira uye kutumira.
Muna Nyamavhuvhu, takakwanisa kupedzisa kuiswa kwepasuru yakaparadzana pakugadzira tichishandisa pombi yedu, uye kubva munaGunyana, pasina kusarudzika, kuisirwa kwese kwemapakeji asina-kuburitswa kwakaitwa kuburikidza neCD yedu chishandiso. Pamusoro pezvo, isu takakwanisa kuwana chikamu chebasa remukati mu40% yekuburitsa kuumbwa nechikwata chidiki pane mutengesi - uku ndiko kubudirira chaiko. Basa rakanyanyisa rakasara - kuunganidza uye kuisa kusunungurwa.

Mhinduro yekupedzisira: cumulative yekuisa mapakeji 

Isu tainyatsonzwisisa kuti kunyora mirairo yemutengesi yaive so-so automation; taifanira kufunga zvakare maitiro acho. Mhinduro yacho yaive pachena - kuunganidza kuwedzera kubva kubazi rekuburitsa nezvinhu zvese zveshanduro dzinodiwa.

Isu takatanga nehumbowo hwepfungwa: isu takaunganidza-maoko pasuru yekuburitsa zvinoenderana nezviri mukati mekuita kwapfuura uye tikaiisa panzvimbo dzedu. Zvese zvakafamba, iyo pfungwa yakashanduka kuve inoshanda. Tevere, takagadzirisa nyaya yekunyora marongero ekutanga uye nekuvasanganisa mukuita. Isu takagadzira pasuru nyowani uye tikaiedza munzvimbo dzekuyedza sechikamu cheiyo contour update. Kuiswa kwacho kwakabudirira, kunyangwe paine huwandu hwakawanda hwemashoko kubva kuchikwata chekushandisa. Asi chikuru ndechekuti takapihwa mvumo yekuenda mukugadzira mukuburitswa kwaNovember negungano redu.

Kwangosara mwedzi chete, zvinhu zvakatorwa nemaoko zvairatidza kuti nguva yakanga yava kupera. Vakasarudza kugadzira chivakwa kubva kubazi rakaburitswa, asi nei chaifanira kuparadzaniswa? Isu hatina Prod-yakafanana, uye matavi aripo haana kunaka - kune yakawanda isina kufanira kodhi. Isu tinofanirwa kucheka maprod-like nekukurumidza, uye izvi zvinopfuura zviuru zvitatu zvekuzvipira. Kuunganidza nemaoko haisi sarudzo zvachose. Isu takadhirowa script inomhanya kuburikidza neiyo chigadzirwa chekuisa log uye inounganidza inozvipira kubazi. Kechitatu yakashanda zvakanaka, uye pashure pokunge β€œyapedza nefaira” bazi rakanga ragadzirira. 

Takanyora zvedu kuvaka pasuru yekuisa uye takaipedza muvhiki. Ipapo isu taifanira kugadzirisa iyo yekuisa kubva kune yakakosha kushanda kweiyo system, sezvo yakavhurika-sosi. Mushure mekutevedzana kwekutarisa uye kugadziridzwa, mhedzisiro yakaonekwa seyakabudirira. Zvichakadaro, kuumbwa kwekusunungurwa kwakatora chimiro, kuitira kugadzika kwakakodzera kwaidiwa kuenzanisa dunhu rekuedzwa nekugadzirwa, uye script yakasiyana yakanyorerwa izvi.

Sezvingatarisirwa, pakanga paine zvakawanda zvekutaura nezve yekutanga kuisirwa, asi zvakazara kodhi yakashanda. Uye mushure mekuiswa kwechitatu zvese zvakatanga kutaridzika zvakanaka. Kudzora kudzorwa uye kutonga kweshanduro yezvinhu kwakatariswa zvakasiyana mune yemanyorero modhi, iyo panguva ino yaive yakakodzera.

Rimwe dambudziko rakanga riri nhamba huru yezvisina kusunungurwa zvaifanira kurangarirwa. Asi nebazi reProd-rakafanana neRebase, basa rakava pachena.

Nguva yekutanga, nekukurumidza uye pasina zvikanganiso

Takasvika pakusunungurwa nemafungiro ane tariro uye zvinopfuura gumi nemaviri zvakabudirira kuiswa pamasekete akasiyana. Asi chaizvoizvo zuva risati rasvika, zvakazoitika kuti mutengesi akanga asati apedza basa rekugadzirira kusunungurwa kwekuiswa nenzira inogamuchirwa. Kana nokuda kwechimwe chikonzero chivakwa chedu chisingashande, kusunungurwa kuchavhiringidzwa. Uyezve, kuburikidza nekuedza kwedu, izvo zvisingafadzi zvakanyanya. Takanga tisina nzira yekudududza. Naizvozvo, takafunga nezvedzimwe sarudzo, takagadzirira zvirongwa zvekuita uye takatanga kuisirwa.

Zvinoshamisa kuti kusunungurwa kwese, kunosanganisira zvinhu zvinopfuura 800, kwakatanga nemazvo, kekutanga uye mumaminitsi gumi chete. Takapedza awa tichitarisa matanda tichitsvaga zvikanganiso, asi hatina kuwana.

Zuva rose rakatevera pakava nekunyarara muhurukuro yekuburitsa: hapana matambudziko ekuita, shanduro dzakatsveyama kana kodhi "isina kufanira". Kwaitove neimwe nzira. Gare gare, mamwe mazwi akabuda, asi zvichienzaniswa nemamwe masisitimu uye ruzivo rwekare, nhamba yavo uye kukosha kwavo kwakadzikira.

Imwe mhedzisiro kubva kune yakawedzera mhedzisiro yaive kuwedzera kwemhando yekuungana uye kuyedzwa. Nekuda kwekuiswa kwakawanda kwekuburitswa kuzere, zvikanganiso zvekuvaka uye zvikanganiso zvekutumira zvakaonekwa nenguva. Kuedza mukugadziriswa kuzere kwekuburitsa kwakaita kuti zvikwanise kuona zvakare kukanganisa mukuwirirana kwezvinhu zvisina kuoneka panguva yekuwedzera kuiswa. Yakanga iri budiriro, kunyanya kupihwa yedu 57% mupiro mukuburitswa.

Mhedzisiro uye mhedziso

Musingasviki gore takakwanisa:

  • Vakai yakazara-yakazara mukati kuvandudza uchishandisa exotic system;
  • Bvisa kutsamira kwemutengesi kwakakosha;
  • Tanga CI / CD yenhaka isina hushamwari;
  • Simudza maitiro ekushandisa kune imwe nhanho yehunyanzvi;
  • Zvinonyanya kuderedza nguva yekuendesa;
  • Zvinonyanya kuderedza nhamba yezvikanganiso zvekushandisa;
  • Zvivimbe zvizivise iwe senyanzvi inotungamira yebudiriro.

Ehe, zvakawanda zvezvinotsanangurwa zvinotaridzika senge crap chaiyo, asi aya ndiwo maficha ehurongwa uye nekupikiswa kwemaitiro kuripo mairi. Parizvino, shanduko dzakakanganisa IS Profile zvigadzirwa nemasevhisi (master account, makadhi epurasitiki, maakaundi ekuchengetedza, escrow, zvikwereti zvemari), asi zvingangoita nzira yacho inogona kushandiswa kune chero IS iyo basa rekuita maitiro eDevOps rakagadzirirwa. Iyo yekuwedzera modhi inogona kudzokororwa zvakachengeteka kune inotevera kuitisa (kusanganisira isina-kuburitswa) kubva kune akawanda anounzwa.

Source: www.habr.com

Voeg