Momwe mungapangire chitukuko chokwanira cham'nyumba pogwiritsa ntchito chidziwitso cha DevOps - VTB

Zochita za DevOps zimagwira ntchito. Tinatsimikiza za izi ifeyo pamene tinachepetsa nthawi yoikika ndi nthawi 10. Mu dongosolo la FIS Profile, lomwe timagwiritsa ntchito ku VTB, kukhazikitsa tsopano kumatenga mphindi 90 osati 10. Nthawi yomanga yomasulidwa yatsika kuchokera masabata awiri mpaka masiku awiri. Kuchuluka kwa zolakwika zomwe zikupitilira kukhazikitsidwa kwatsika pafupifupi pang'ono. Kuti tichoke ku "ntchito yamanja" ndikuchotsa kudalira wogulitsa, tinayenera kugwira ntchito ndi ndodo ndikupeza njira zosayembekezereka. Pansi pa odulidwawo pali nkhani yatsatanetsatane ya momwe tidapangira chitukuko chamkati.

Momwe mungapangire chitukuko chokwanira cham'nyumba pogwiritsa ntchito chidziwitso cha DevOps - VTB
 

Mawu Oyamba: DevOps ndi filosofi

M'chaka chathachi, tachita ntchito yambiri yokonzekera chitukuko chamkati ndi kukhazikitsa machitidwe a DevOps ku VTB:

  • Tinamanga njira zachitukuko zamkati za machitidwe a 12;
  • Tinayambitsa mapaipi 15, anayi mwa iwo omwe adapangidwa;
  • Makina oyeserera a 1445;
  • Tinagwiritsa ntchito bwino zotulutsa zingapo zokonzedwa ndi magulu amkati.

Chimodzi mwazovuta kwambiri pakukonza chitukuko chamkati ndikukhazikitsa machitidwe a DevSecOps chidakhala FIS Profile system - purosesa yogulitsa malonda pa DBMS yosagwirizana. Komabe, tidatha kupanga chitukuko, kukhazikitsa mapaipi, kukhazikitsa mapaketi omwe sanatulutsidwe pazogulitsa, ndikuphunzira momwe tingasonkhanitsire zotulutsidwa. Ntchitoyi sinali yophweka, koma yosangalatsa komanso yopanda zoletsa zoonekeratu pakukhazikitsa: apa pali dongosolo - muyenera kumanga chitukuko cha m'nyumba. Chokhacho ndicho kugwiritsa ntchito CD isanakhale malo abwino.

Poyamba, algorithm yokhazikitsa idawoneka yosavuta komanso yomveka bwino:

  • Timakulitsa luso lachitukuko choyambirira ndikukwaniritsa mulingo wovomerezeka kuchokera ku gulu la ma code popanda zovuta zazikulu;
  • Timaphatikizana ndi njira zomwe zilipo kale momwe tingathere;
  • Kusamutsa kachidindo pakati pa magawo odziwikiratu, timadula payipi ndikukankhira imodzi mwa malekezero ake kuti tipitirize.

Panthawiyi, gulu lachitukuko la kukula kofunikira liyenera kukulitsa luso ndikuwonjezera gawo la zopereka zake pakumasulidwa kumlingo wovomerezeka. Ndipo ndizo, tikhoza kuganizira ntchito yomwe yatsirizidwa.

Zingawonekere kuti iyi ndi njira yogwiritsira ntchito mphamvu zowonjezera zotsatira zomwe zimafunikira: apa pali DevOps, apa pali ma metrics ogwirira ntchito a gulu, apa pali ukadaulo wosonkhanitsidwa ... , osati "zophatikizidwa ndi ndondomeko ya gitlab, ansible, nexus ndi kupititsa patsogolo mndandanda."

Titapendanso ndondomeko yochitira, tinazindikira kuti tikumanga mtundu wa ogulitsa kunja kwa ife. Choncho, kukonzanso ndondomeko kunawonjezeredwa ku ndondomeko yomwe tafotokozayi, komanso chitukuko cha ukadaulo panjira yonse yachitukuko kuti tikwaniritse gawo lotsogola pantchitoyi. Osati njira yosavuta, koma iyi ndi njira yachitukuko cholondola.
 

Kodi chitukuko cha m'nyumba chimayambira pati? 

Sichinali njira yabwino kwambiri yogwirira ntchito. Zomangamanga, inali DBMS imodzi yayikulu yosagwirizana, yomwe inali ndi zinthu zambiri zomwe zingathe kuchitidwa (zolemba, ndondomeko, magulu, ndi zina zotero), zomwe zimatchedwa zofunikira, ndipo zinagwira ntchito pa mfundo ya bokosi lakuda: limalandira pempho ndi nkhani. yankho. Zovuta zina zofunika kuziganizira ndi izi:

  • Chilankhulo chachilendo (MUMPS);
  • Mawonekedwe a Console;
  • Kupanda kuphatikizika ndi zida zodziwika bwino zama automation ndi ma frameworks;
  • Kuchuluka kwa deta mu makumi a terabytes;
  • Katundu wa ntchito zoposa 2 miliyoni pa ola;
  • Kufunika - Bizinesi-Yofunika Kwambiri.

Pa nthawi yomweyo, panalibe gwero code repository kumbali yathu. Ayi. Panali zolembedwa, koma chidziwitso chonse chofunikira ndi luso zinali kumbali ya bungwe lakunja.
Tinayamba kudziwa bwino chitukuko cha dongosololi pafupifupi kuyambira pachiyambi, poganizira mawonekedwe ake ndi kugawa otsika. Inayamba mu October 2018:

  • Anaphunzira zolemba ndi zoyambira za kupanga ma code;
  • Tinaphunzira maphunziro afupiafupi a chitukuko omwe analandira kuchokera kwa wogulitsa;
  • Wodziwa luso lachitukuko choyambirira;
  • Tinalemba buku lophunzitsira mamembala atsopano;
  • Tinagwirizana kuti tiphatikize gululo mu "nkhondo" mode;
  • Anathetsa nkhaniyi ndi kuwongolera khalidwe la code;
  • Tinapanga chisankho cha chitukuko.

Tidakhala miyezi itatu tikupanga ukadaulo ndikudzilowetsa m'dongosolo, ndipo kuyambira koyambirira kwa 2019, chitukuko chamkati chidayamba kuyenda kutsogolo lowala, nthawi zina movutikira, koma molimba mtima komanso mwadala.

Kusamuka kwa repository ndi autotests

Ntchito yoyamba ya DevOps ndiyosungira. Tinagwirizana mwamsanga kuti tipeze mwayi, koma kunali koyenera kusamuka kuchokera ku SVN yamakono ndi nthambi imodzi ya thunthu kupita ku cholinga chathu Git ndi kusintha kwa chitsanzo cha nthambi zingapo ndi chitukuko cha Git Flow. Tilinso ndi magulu a 2 omwe ali ndi zomangamanga zawo, kuphatikizapo gawo la gulu la ogulitsa kunja. Ndidayenera kukhala ndi ma Gits awiri ndikuwonetsetsa kulumikizana. M’mikhalidwe yoteroyo, chinali chocheperapo pa zoipa ziŵiri.

Kusamuka kwa malo osungiramo zinthu kunaimitsidwa mobwerezabwereza; idamalizidwa kokha mu Epulo, mothandizidwa ndi anzawo akutsogolo. Ndi Git Flow, tidaganiza zopangitsa zinthu kukhala zosavuta poyambira ndikukhazikika pachiwembu chapamwamba chokhala ndi hotfix, kupanga ndi kumasula. Anaganiza zosiya master (aka prod-like). Pansipa tifotokoza chifukwa chake njirayi idakhala yabwino kwa ife. Malo osungira akunja a ogulitsa, odziwika kwa magulu awiri, adagwiritsidwa ntchito ngati wogwira ntchito. Idalumikizidwa ndi chosungira chamkati malinga ndi ndandanda. Tsopano ndi Git ndi Gitlab zinali zotheka kupanga makina.

Nkhani ya autotests inathetsedwa modabwitsa mosavuta - tinapatsidwa dongosolo lokonzekera. Poganizira zochitika za dongosololi, kuyitana ntchito yosiyana inali gawo lomveka la bizinesi ndipo panthawi imodzimodziyo ankakhala ngati kuyesa kwa unit. Zonse zomwe zidatsala zinali kukonzekera deta yoyesera ndikuyika dongosolo lofunidwa loyitana zolemba ndikuwunika zotsatira. Pamene mndandanda wa zochitika, zomwe zinapangidwa pamaziko a ziwerengero za ntchito, kutsutsa kwa njira ndi njira zomwe zilipo kale, zodzazidwa, mayesero odziwikiratu anayamba kuonekera. Tsopano tikhoza kuyamba kupanga mapaipi.

Momwe zinalili: chitsanzo chisanachitike makina

Chitsanzo chomwe chilipo cha ndondomeko yoyendetsera ntchito ndi nkhani yosiyana. Kusintha kulikonse kunasamutsidwa pamanja ngati phukusi lowonjezera lowonjezera. Kenako kunabwera kulembetsa pamanja ku Jira ndikuyika pamanja pamakonzedwe. Kwa phukusi laumwini, chirichonse chinkawoneka bwino, koma ndi kukonzekera kumasulidwa, zinthu zinali zovuta kwambiri.

Msonkhano unachitikira pa mlingo wa zobereka munthu, amene anali odziimira zinthu. Kusintha kulikonse ndikubweretsa kwatsopano. Mwa zina, mitundu 60-70 yaukadaulo idawonjezedwa pamaphukusi a 10-15 azomwe zimatulutsidwa - mitundu yomwe idapezedwa powonjezera kapena kusiya china chake pakumasulidwa ndikuwonetsa kusintha kwa malonda akunja.

Zinthu zomwe zili mkati mwazotumizira zidadutsana, makamaka pama code omwe angathe kukwaniritsidwa, omwe anali osakwana theka lapadera. Panali zodalira zambiri pa code yomwe yaikidwa kale komanso pa yomwe kukhazikitsidwa kwake kunakonzedweratu. 

Kuti mupeze mtundu wofunikira wa kachidindo, kunali koyenera kutsatira mosamalitsa dongosolo la kukhazikitsa, pomwe zinthu zidalembedwanso nthawi zambiri, nthawi zina 10-12.

Nditakhazikitsa gulu la phukusi, ndimayenera kutsatira pamanja malangizo kuti ndiyambe makonda. Kutulutsidwa kunasonkhanitsidwa ndikuyikidwa ndi wogulitsa. Kapangidwe kakumasulidwako kudamveketsedwa pafupifupi nthawi isanakwane, yomwe idaphatikizapo kupanga maphukusi a "decoupling". Chotsatira chake, gawo lalikulu la zinthuzo linasuntha kuchoka kumasulidwa kupita kumasulidwa ndi mchira wake wa "decouplings".

Tsopano zikuwonekeratu kuti ndi njira iyi - kusonkhanitsa chithunzi chomasulidwa pamlingo wa phukusi - nthambi imodzi ya master inalibe tanthauzo lenileni. Kuyika pakupanga kunatenga kuchokera pa ola limodzi ndi theka kufika pa ola lachiwiri la ntchito yamanja. Ndibwino kuti pamlingo woyikirapo dongosolo la kukonza zinthu lidanenedwa: minda ndi zida zidalowetsedwa deta yawo isanachitike ndi njira. Komabe, izi zinangogwira ntchito mkati mwa phukusi losiyana.

Zotsatira zomveka za njira iyi zinali zolakwika zoikamo zomwe zinali zokhotakhota za zinthu, kachidindo kosafunikira, malangizo osowa komanso osadziwika chifukwa cha zinthu zomwe zimakhudzidwa, zomwe zinathetsedwa molimba mtima atamasulidwa. 

Zosintha zoyamba: kukhazikitsa ndi kutumiza

Makinawa adayamba potumiza ma code kudzera papaipi motsatira njira iyi:

  • Kutenga yomaliza yobereka kuchokera kusungirako;
  • Ikani pa malo odzipereka;
  • Pangani ma autotes;
  • Unikani zotsatira unsembe;
  • Imbani mapaipi otsatirawa kumbali ya lamulo loyesa.

Paipi yotsatira iyenera kulembetsa ntchitoyi ku Jira ndikudikirira kuti malamulo agawidwe ku mipukutu yoyesera yosankhidwa, zomwe zimadalira nthawi yomwe ntchitoyo ikugwira ntchito. Choyambitsa - kalata yokhudza kukonzekera kutumizidwa ku adilesi yoperekedwa. Izi, ndithudi, zinali njira yodziwikiratu, koma ndinayenera kuyamba kwinakwake. Mu Meyi 2019, kusamutsa kwa code kudayamba ndi macheke pamadera athu. Ntchitoyi yayamba, chomwe chatsala ndikupangitsa kuti ikhale yabwino:

  • Kusintha kulikonse kumachitidwa munthambi yosiyana, yomwe imagwirizana ndi phukusi loyikirapo ndikuphatikizana ndi nthambi ya mbuye;
  • Choyambitsa choyambitsa mapaipi ndikuwoneka kwa ntchito yatsopano munthambi yayikulu kudzera pa pempho lophatikiza, lomwe limatsekedwa ndi osamalira kuchokera ku gulu lanyumba;
  • Zosungirako zimagwirizanitsidwa kamodzi mphindi zisanu zilizonse;
  • Kusonkhana kwa phukusi loyikirako kumayambika - pogwiritsa ntchito assembler yolandiridwa kuchokera kwa wogulitsa.

Pambuyo pa izi, panali masitepe omwe alipo kale kuti ayang'ane ndi kusamutsa kachidindo, kuyambitsa chitoliro ndikusonkhanitsa kumbali yathu.

Njira iyi idakhazikitsidwa mu Julayi. Zovuta za kusinthaku zinapangitsa kuti pakhale kusakhutira pakati pa ogulitsa ndi kutsogolo, koma mwezi wotsatira tinatha kuchotsa mbali zonse zovuta ndikukhazikitsa ndondomeko pakati pa magulu. Tsopano tili ndi msonkhano podzipereka komanso kutumiza.
Mu Ogasiti, tidatha kumaliza kuyika koyamba kwa phukusi lapadera pakupanga pogwiritsa ntchito payipi yathu, ndipo kuyambira Seputembala, mopanda kuchotserapo, kuyika konse kwa mapaketi omwe sanatulutsidwe kunachitika kudzera pa chida chathu cha CD. Kuonjezera apo, tinakwanitsa kukwaniritsa gawo la ntchito zapakhomo mu 40% ya zomwe zimatulutsidwa ndi gulu laling'ono kusiyana ndi wogulitsa - izi ndizopambana. Ntchito yayikulu kwambiri idatsalira - kusonkhanitsa ndikuyika kumasulidwa.

Yankho lomaliza: maphukusi owonjezera owonjezera 

Tidamvetsetsa bwino lomwe kuti kulemba malangizo a ogulitsa kunali kodzipangira zokha; tidayenera kuganiziranso momwemo. Yankho lake linali lodziwikiratu - kusonkhanitsa zochulukira kuchokera ku nthambi yotulutsidwa ndi zinthu zonse zamitundu yofunikira.

Tinayamba ndi umboni wa lingaliro: tinasonkhanitsa pamanja phukusi lomasulidwa malinga ndi zomwe zakhazikitsidwa kale ndikuziyika pamadera athu. Zonse zidayenda bwino, lingalirolo lidakhala lotheka. Kenako, tinathetsa nkhani yolemba zosintha zoyambira ndikuziphatikiza muzochita. Tinakonza phukusi latsopano ndikuliyesa m'malo oyesera ngati gawo la zosintha za contour. Kuyikako kunali kopambana, ngakhale ndi ndemanga zambiri za gulu lokhazikitsa. Koma chachikulu ndichakuti tinapatsidwa mwayi woti tiyambe kupanga mu Novembala ndi msonkhano wathu.

Patangotsala mwezi umodzi wokha, zinthu zotengedwa pamanja zimasonyeza kuti nthawi yatha. Iwo anaganiza zopanga nyumbayo kuchokera ku nthambi yotulutsidwa, koma n’chifukwa chiyani iyenera kulekanitsidwa? Tilibe Prod-ngati, ndipo nthambi zomwe zilipo sizabwino - pali ma code ambiri osafunikira. Tikufunika mwachangu kudula zokonda, ndipo izi zikupitilira kuchita masauzande atatu. Kusonkhanitsa ndi dzanja sichosankha nkomwe. Tinajambula script yomwe imadutsa mu chipika choyika zinthu ndikusonkhanitsa zomwe zimaperekedwa kunthambi. Kachitatu inagwira ntchito bwino, ndipo “itatha ndi fayilo” nthambi inali itakonzeka. 

Tinalemba zomanga zathu za phukusi loyika ndikumaliza mu sabata. Kenako tidayenera kusintha choyikacho kuchokera pamachitidwe apakatikati adongosolo, popeza ndi gwero lotseguka. Pambuyo pofufuza ndi kusinthidwa kangapo, zotsatira zake zinkaonedwa kuti ndi zopambana. Pakalipano, mapangidwe a kumasulidwawo adapangidwa, kuti akhazikitse bwino lomwe kunali koyenera kugwirizanitsa dera loyesa ndi kupanga, ndipo script inalembedwa pa izi.

Mwachilengedwe, panali ndemanga zambiri zokhuza kukhazikitsa koyamba, koma code yonse idagwira ntchito. Ndipo pambuyo pa kukhazikitsa kwachitatu zonse zinayamba kuwoneka bwino. Kuwongolera kwapangidwe ndi kuwongolera kwamitundu yazinthu kumayang'aniridwa padera pamachitidwe amanja, omwe panthawiyi anali olondola.

Vuto linanso linali kuchuluka kwa zomwe sizinatulutsidwe zomwe ziyenera kuganiziridwa. Koma ndi nthambi ngati Prod ndi Rebase, ntchitoyi idawonekera poyera.

Nthawi yoyamba, mwachangu komanso popanda zolakwika

Tidayandikira kutulutsidwako ndi malingaliro achiyembekezo komanso makhazikitsidwe opitilira khumi ndi awiri ochita bwino pamagawo osiyanasiyana. Koma kwenikweni tsiku lisanafike tsiku lomaliza, zidapezeka kuti wogulitsa sanamalize ntchito yokonzekera kumasulidwa kuti akhazikitsidwe m'njira yovomerezeka. Ngati pazifukwa zina zomanga zathu sizigwira ntchito, kumasulidwa kumasokonekera. Komanso, mwa kuyesetsa kwathu, zomwe zimakhala zosasangalatsa kwambiri. Tinalibe njira yothawira. Chifukwa chake, tidaganizira njira zina, tidakonza mapulani ochitapo kanthu ndikuyamba kukhazikitsa.

Chodabwitsa n'chakuti, kumasulidwa konse, kopangidwa ndi zinthu zoposa 800, kunayamba molondola, nthawi yoyamba ndi mphindi 10 zokha. Tinakhala ola limodzi tikuyang'ana zipika kufunafuna zolakwika, koma sitinapeze.

Tsiku lonse lotsatira panali chete pa macheza omasulidwa: palibe zovuta zokhazikitsa, zokhotakhota kapena "zosayenera" code. Zinali zovuta ngakhale mwanjira ina. Pambuyo pake, ndemanga zina zinatuluka, koma poyerekeza ndi machitidwe ena ndi zochitika zakale, chiwerengero chawo ndi zofunikira zawo zinali zotsika kwambiri.

Chotsatira chowonjezereka kuchokera ku zotsatira zowonjezera chinali kuwonjezeka kwa khalidwe la msonkhano ndi kuyesa. Chifukwa cha kukhazikitsidwa kangapo kwa kutulutsidwa kwathunthu, zolakwika zomanga ndi zolakwika zotumizira zidadziwika munthawi yake. Kuyesa kosinthidwe kotulutsa kwathunthu kunapangitsa kuti zitheke kuzindikiranso zolakwika pakukokerana kwa zinthu zomwe sizinawonekere pakuyika kowonjezera. Zinalidi zopambana, makamaka chifukwa cha zomwe tapereka 57% pakumasulidwa.

Zotsatira ndi zomaliza

Pasanathe chaka tidakwanitsa:

  • Pangani chitukuko chokwanira chamkati pogwiritsa ntchito dongosolo lachilendo;
  • Chotsani kudalira kwambiri kwa ogulitsa;
  • Kukhazikitsa CI / CD kwa cholowa chosasangalatsa kwambiri;
  • Kwezani njira zoyendetsera ntchito pamlingo watsopano waukadaulo;
  • Kuchepetsa kwambiri nthawi yotumizira;
  • Kuchepetsa kwambiri kuchuluka kwa zolakwika zokhazikitsidwa;
  • Dziwonetseni molimba mtima kuti ndinu katswiri wotsogolera chitukuko.

Zoonadi, zambiri zomwe zikufotokozedwa zimawoneka ngati zopanda pake, koma izi ndizochitika za dongosolo ndi zolepheretsa zomwe zilipo. Pakadali pano, zosintha zomwe zidakhudzidwa ndi zinthu ndi ntchito za IS Profile (akaunti apamwamba, makhadi apulasitiki, maakaunti osungira, escrow, ngongole zandalama), koma mwina njirayo ingagwiritsidwe ntchito ku IS iliyonse yomwe ntchito yokhazikitsa machitidwe a DevOps imayikidwa. Mtundu wophatikizidwa ukhoza kutsatiridwa bwino pazotsatira (kuphatikiza zosatulutsidwa) kuchokera kuzinthu zambiri.

Source: www.habr.com

Kuwonjezera ndemanga