Bii o ṣe le kọ idagbasoke inu ile ni kikun ni lilo DevOps - iriri VTB

Awọn iṣe DevOps ṣiṣẹ. A ni idaniloju eyi funrara wa nigba ti a dinku akoko fifi sori ẹrọ nipasẹ awọn akoko 10. Ninu eto Profaili FIS, eyiti a lo ni VTB, fifi sori bayi gba iṣẹju mẹwa 90 ju 10. Akoko kikọ silẹ ti dinku lati ọsẹ meji si ọjọ meji. Nọmba awọn abawọn imuse itẹramọṣẹ ti lọ silẹ si o kere ju. Lati lọ kuro ni “iṣẹ afọwọṣe” ati imukuro igbẹkẹle si ataja, a ni lati ṣiṣẹ pẹlu awọn crutches ati wa awọn ojutu airotẹlẹ. Ni isalẹ gige jẹ itan alaye nipa bawo ni a ṣe kọ idagbasoke inu kikun-kikun.

Bii o ṣe le kọ idagbasoke inu ile ni kikun ni lilo DevOps - iriri VTB
 

Ọrọ Iṣaaju: DevOps jẹ imoye kan

Ni ọdun to kọja, a ti ṣe ọpọlọpọ iṣẹ lati ṣeto idagbasoke inu ati imuse ti awọn iṣe DevOps ni VTB:

  • A kọ awọn ilana idagbasoke inu fun awọn ọna ṣiṣe 12;
  • A ṣe ifilọlẹ awọn opo gigun ti 15, mẹrin ninu eyiti a mu wa si iṣelọpọ;
  • Awọn oju iṣẹlẹ idanwo 1445 adaṣe;
  • A ṣe aṣeyọri imuse nọmba awọn idasilẹ ti a pese sile nipasẹ awọn ẹgbẹ inu ile.

Ọkan ninu eyiti o nira julọ lati ṣeto idagbasoke inu ile ati imuse ti awọn iṣe DevSecOps ti jade lati jẹ eto Profaili FIS - ero isise ọja soobu lori DBMS ti kii ṣe ibatan. Sibẹsibẹ, a ni anfani lati kọ idagbasoke naa, ṣe ifilọlẹ opo gigun ti epo, fi sori ẹrọ awọn idii ti kii ṣe idasilẹ kọọkan lori ọja naa, ati kọ ẹkọ bi a ṣe le ṣajọ awọn idasilẹ. Iṣẹ naa ko rọrun, ṣugbọn awọn iyanilenu ati laisi awọn ihamọ han ni imuse: eyi ni eto naa - o nilo lati kọ idagbasoke ile kan. Ipo kanṣoṣo ni lati lo CD ṣaaju agbegbe ti iṣelọpọ.

Ni akọkọ, algorithm imuse dabi ẹni pe o rọrun ati kedere:

  • A ṣe idagbasoke imọran idagbasoke akọkọ ati ṣaṣeyọri ipele itẹwọgba ti didara lati ẹgbẹ koodu laisi awọn abawọn nla;
  • A ṣepọ sinu awọn ilana ti o wa tẹlẹ bi o ti ṣee;
  • Lati gbe koodu laarin awọn ipele ti o han gbangba, a ge opo gigun ti epo ati Titari ọkan ninu awọn opin rẹ si itesiwaju.

Lakoko yii, ẹgbẹ idagbasoke ti iwọn ti o nilo gbọdọ dagbasoke awọn ọgbọn ati mu ipin ti ilowosi rẹ pọ si si awọn idasilẹ si ipele itẹwọgba. Ati pe eyi ni, a le ṣe akiyesi iṣẹ-ṣiṣe ti o pari.

Yoo dabi pe eyi jẹ ọna agbara-agbara patapata si abajade ti o nilo: nibi ni DevOps, nibi ni awọn metiriki iṣẹ ṣiṣe ti ẹgbẹ, eyi ni oye ti akojo… Ṣugbọn ni iṣe, a gba ijẹrisi miiran pe DevOps tun jẹ nipa imọ-jinlẹ. , ati pe ko “so si ilana gitlab, aibikita, nexus ati siwaju si isalẹ atokọ naa.”

Lekan si tun ṣe atupale eto iṣe naa, a rii pe a n kọ iru olutaja ita kan laarin ara wa. Nitorinaa, atunṣe ilana ni a ṣafikun si algorithm ti a ṣalaye loke, bakanna bi idagbasoke ti oye pẹlu gbogbo ipa ọna idagbasoke lati ṣaṣeyọri ipa asiwaju ninu ilana yii. Kii ṣe aṣayan ti o rọrun julọ, ṣugbọn eyi ni ọna ti idagbasoke idagbasoke ti o tọ.
 

Nibo ni idagbasoke inu ile bẹrẹ? 

O je ko julọ ore eto lati ṣiṣẹ pẹlu awọn. Ni ayaworan, o jẹ DBMS nla kan ti kii ṣe ibatan, ti o ni ọpọlọpọ awọn nkan ṣiṣe ti o yatọ (awọn iwe afọwọkọ, awọn ilana, awọn ipele, ati bẹbẹ lọ), eyiti a pe bi o ṣe nilo, ati ṣiṣẹ lori ipilẹ ti apoti dudu: o gba ibeere ati awọn ọran. idahun. Awọn iṣoro miiran ti o yẹ ki o ṣe akiyesi pẹlu:

  • Èdè àjèjì (MUMPS);
  • Ni wiwo console;
  • Aini iṣọpọ pẹlu awọn irinṣẹ adaṣe olokiki ati awọn ilana;
  • Iwọn data ni mewa ti terabytes;
  • Awọn iṣẹ ṣiṣe ti o ju 2 million lọ fun wakati kan;
  • Pataki - Business-Critical.

Ni akoko kanna, ko si ibi ipamọ koodu orisun ni ẹgbẹ wa. Rara. Awọn iwe-ipamọ wa, ṣugbọn gbogbo imọ pataki ati awọn oye wa ni ẹgbẹ ti agbari ita kan.
A bẹrẹ Titunto si idagbasoke ti eto naa fẹrẹ lati ibere, ni akiyesi awọn ẹya rẹ ati pinpin kekere. Bẹrẹ ni Oṣu Kẹwa ọdun 2018:

  • Ṣe iwadi awọn iwe ati awọn ipilẹ ti ipilẹṣẹ koodu;
  • A kọ ẹkọ kukuru lori idagbasoke ti a gba lati ọdọ ataja;
  • Titunto si awọn ọgbọn idagbasoke akọkọ;
  • A ṣe akojọpọ iwe ikẹkọ fun awọn ọmọ ẹgbẹ tuntun;
  • A gba lati ṣafikun ẹgbẹ naa ni ipo “ija”;
  • Ti yanju ọrọ naa pẹlu iṣakoso didara koodu;
  • A ṣeto imurasilẹ fun idagbasoke.

A lo oṣu mẹta ni idagbasoke imọ-jinlẹ ati ibọmi ara wa ninu eto naa, ati lati ibẹrẹ ọdun 2019, idagbasoke inu ile bẹrẹ gbigbe rẹ si ọjọ iwaju didan, nigbakan pẹlu iṣoro, ṣugbọn ni igboya ati ni ipinnu.

Ibi ipamọ ijira ati autotests

Iṣẹ DevOps akọkọ jẹ ibi ipamọ. A gba ni kiakia lati pese iraye si, ṣugbọn o jẹ dandan lati jade lati SVN lọwọlọwọ pẹlu ẹka ẹhin mọto kan si Git ibi-afẹde wa pẹlu iyipada si awoṣe ti awọn ẹka pupọ ati idagbasoke ti Git Flow. A tun ni awọn ẹgbẹ 2 pẹlu awọn amayederun tiwọn, pẹlu apakan ti ẹgbẹ ataja ni okeere. Mo ni lati gbe pẹlu Gits meji ati rii daju imuṣiṣẹpọ. Ni iru ipo bẹẹ, o jẹ kere ti awọn ibi meji.

Iṣiwa ti ibi ipamọ naa ti sun siwaju leralera; o ti pari ni Oṣu Kẹrin nikan, pẹlu iranlọwọ ti awọn ẹlẹgbẹ lati laini iwaju. Pẹlu Git Flow, a pinnu lati jẹ ki awọn nkan rọrun fun ibẹrẹ ati yanju lori ero Ayebaye pẹlu hotfix, dagbasoke ati idasilẹ. Wọn pinnu lati kọ oluwa silẹ (aka prod-like). Ni isalẹ a yoo ṣe alaye idi ti aṣayan yii ti jade lati jẹ aipe fun wa. Ibi ipamọ ita ti o jẹ ti ataja, ti o wọpọ fun awọn ẹgbẹ meji, ni a lo bi oṣiṣẹ. O muṣiṣẹpọ pẹlu ibi ipamọ inu ni ibamu si iṣeto kan. Bayi pẹlu Git ati Gitlab o ṣee ṣe lati ṣe adaṣe awọn ilana.

Ọrọ ti awọn adaṣe adaṣe ni a yanju iyalẹnu ni irọrun - a pese pẹlu ilana ti a ti ṣetan. Ni akiyesi awọn ẹya ara ẹrọ ti eto naa, pipe iṣẹ ti o yatọ jẹ apakan ti oye ti ilana iṣowo ati ni akoko kanna ṣiṣẹ bi idanwo ẹyọkan. Gbogbo ohun ti o ku ni lati ṣeto data idanwo ati ṣeto aṣẹ ti o fẹ ti pipe awọn iwe afọwọkọ ati iṣiro awọn abajade. Gẹgẹbi atokọ ti awọn oju iṣẹlẹ, ti a ṣẹda lori ipilẹ awọn iṣiro iṣiṣẹ, pataki ti awọn ilana ati ilana ipadasẹhin ti o wa, ti kun, awọn idanwo adaṣe bẹrẹ lati han. Bayi a le bẹrẹ kikọ opo gigun ti epo.

Bii o ṣe jẹ: awoṣe ṣaaju adaṣe

Awoṣe ti o wa tẹlẹ ti ilana imuse jẹ itan lọtọ. Iyipada kọọkan ni a gbe lọ pẹlu ọwọ bi idii fifi sori ẹrọ afikun lọtọ. Nigbamii ti wa iforukọsilẹ afọwọṣe ni Jira ati fifi sori afọwọṣe lori awọn agbegbe. Fun awọn idii kọọkan, ohun gbogbo dabi kedere, ṣugbọn pẹlu igbaradi ti itusilẹ, awọn nkan jẹ idiju diẹ sii.

Apejọ ni a ṣe ni ipele ti awọn ifijiṣẹ kọọkan, eyiti o jẹ awọn ohun elo ominira. Eyikeyi iyipada jẹ ifijiṣẹ tuntun. Lara awọn ohun miiran, awọn ẹya imọ-ẹrọ 60 – 70 ni a ṣafikun si awọn idii 10-15 ti akopọ itusilẹ akọkọ - awọn ẹya ti o gba nigba fifi kun tabi laisi ohunkan lati itusilẹ ati afihan awọn ayipada ninu awọn idasilẹ ni ita.

Awọn nkan laarin awọn ifijiṣẹ ni lqkan pẹlu kọọkan miiran, paapa ni awọn executable koodu, eyi ti o jẹ kere ju idaji oto. Ọpọlọpọ awọn igbẹkẹle wa mejeeji lori koodu ti a ti fi sii tẹlẹ ati lori eyiti fifi sori rẹ ti gbero. 

Lati gba ẹya ti o nilo ti koodu naa, o jẹ dandan lati tẹle ilana fifi sori ẹrọ, lakoko eyiti a ti kọwe awọn nkan ti ara ni ọpọlọpọ igba, diẹ ninu awọn akoko 10-12.

Lẹhin fifi sori ipele ti awọn idii, Mo ni lati tẹle awọn ilana pẹlu ọwọ lati bẹrẹ awọn eto naa. Itusilẹ ti ṣajọpọ ati fi sori ẹrọ nipasẹ olutaja. Awọn akopọ ti itusilẹ ti ṣalaye fẹrẹ to akoko imuse, eyiti o fa ẹda ti awọn idii “decoupling”. Bi abajade, apakan pataki ti awọn ipese gbe lati itusilẹ lati tu silẹ pẹlu iru tirẹ ti “decouplings”.

Bayi o han gbangba pe pẹlu ọna yii - apejọ adojuru idasilẹ ni ipele package - ẹka ọga kan kan ko ni itumọ to wulo. Fifi sori ẹrọ lori iṣelọpọ gba lati ọkan ati idaji si wakati meji ti iṣẹ afọwọṣe. O dara pe o kere ju ni ipele insitola aṣẹ ti sisẹ nkan ti wa ni pato: awọn aaye ati awọn ẹya ti tẹ ṣaaju data fun wọn ati awọn ilana. Sibẹsibẹ, eyi ṣiṣẹ nikan laarin package ọtọtọ.

Abajade ọgbọn ti ọna yii ni awọn abawọn fifi sori ọranyan ni irisi awọn ẹya wiwọ ti awọn nkan, koodu ti ko wulo, awọn ilana ti o padanu ati aibikita fun awọn ipa ipa-ẹgbẹ ti awọn nkan, eyiti a yọkuro ni ibaje lẹhin itusilẹ. 

Awọn imudojuiwọn akọkọ: apejọ apejọ ati ifijiṣẹ

Adaṣiṣẹ bẹrẹ nipasẹ gbigbe koodu nipasẹ paipu kan ni ipa ọna yii:

  • Gbe ifijiṣẹ ti pari lati ibi ipamọ;
  • Fi sori ẹrọ lori agbegbe iyasọtọ;
  • Ṣiṣe awọn autotests;
  • Ṣe iṣiro abajade fifi sori ẹrọ;
  • Pe opo gigun ti epo atẹle ni ẹgbẹ ti aṣẹ idanwo naa.

Opo gigun ti o tẹle yẹ ki o forukọsilẹ iṣẹ-ṣiṣe ni Jira ati duro fun awọn aṣẹ lati pin si awọn iyipo idanwo ti o yan, eyiti o da lori akoko imuse iṣẹ-ṣiṣe. Nfa - lẹta kan nipa imurasilẹ fun ifijiṣẹ si adirẹsi ti a fun. Eyi, nitorinaa, jẹ ohun ti o han gbangba, ṣugbọn Mo ni lati bẹrẹ ibikan. Ni Oṣu Karun ọdun 2019, gbigbe koodu bẹrẹ pẹlu awọn sọwedowo lori awọn agbegbe wa. Ilana naa ti bẹrẹ, gbogbo ohun ti o ku ni lati mu wa si apẹrẹ to dara:

  • Atunṣe kọọkan ni a ṣe ni ẹka ti o yatọ, eyiti o ni ibamu si package fifi sori ẹrọ ati dapọ si eka titunto si ibi-afẹde;
  • Ifilọlẹ opo gigun ti epo jẹ hihan ifaramo tuntun ni ẹka titunto si nipasẹ ibeere iṣọpọ, eyiti o wa ni pipade nipasẹ awọn olutọju lati ẹgbẹ inu ile;
  • Awọn ibi ipamọ ti wa ni mimuuṣiṣẹpọ lẹẹkan ni gbogbo iṣẹju marun;
  • Apejọ ti package fifi sori ẹrọ ti bẹrẹ - lilo apejọ ti a gba lati ọdọ olutaja naa.

Lẹhin eyi, awọn igbesẹ ti wa tẹlẹ lati ṣayẹwo ati gbigbe koodu naa, lati ṣe ifilọlẹ paipu ati pejọ ni ẹgbẹ wa.

Aṣayan yii ti ṣe ifilọlẹ ni Oṣu Keje. Awọn iṣoro ti iyipada naa yorisi diẹ ninu ainitẹlọrun laarin olutaja ati laini iwaju, ṣugbọn ni oṣu ti n bọ a ṣakoso lati yọ gbogbo awọn egbegbe ti o ni inira ati ṣeto ilana kan laarin awọn ẹgbẹ. A ni apejọ bayi nipasẹ ifaramo ati ifijiṣẹ.
Ni Oṣu Kẹjọ, a ṣakoso lati pari fifi sori ẹrọ akọkọ ti package lọtọ lori iṣelọpọ nipa lilo opo gigun ti epo wa, ati lati Oṣu Kẹsan, laisi iyasọtọ, gbogbo awọn fifi sori ẹrọ ti awọn idii ti kii ṣe idasilẹ kọọkan ni a ṣe nipasẹ ohun elo CD wa. Ni afikun, a ṣakoso lati ṣaṣeyọri ipin kan ti awọn iṣẹ inu ile ni 40% ti akopọ itusilẹ pẹlu ẹgbẹ ti o kere ju olutaja lọ - eyi jẹ aṣeyọri to daju. Iṣẹ ṣiṣe to ṣe pataki julọ wa - lati pejọ ati fi sori ẹrọ itusilẹ naa.

Ojutu ikẹhin: awọn idii fifi sori ẹrọ akopọ 

A loye daradara pe kikọ awọn ilana ataja jẹ adaṣe bẹ-bẹ; a ni lati tun ronu ilana naa funrararẹ. Ojutu naa han gbangba - lati gba ipese ikojọpọ lati ẹka itusilẹ pẹlu gbogbo awọn nkan ti awọn ẹya ti o nilo.

A bẹrẹ pẹlu ẹri ti imọran: a fi ọwọ ṣe apejọ idasilẹ ni ibamu si awọn akoonu ti imuse ti o kọja ati fi sii lori awọn agbegbe wa. Ohun gbogbo ti ṣiṣẹ jade, imọran ti jade lati jẹ ṣiṣeeṣe. Nigbamii ti, a yanju ọran ti kikọ iwe afọwọkọ awọn eto ipilẹṣẹ ati pẹlu wọn ninu ifaramo naa. A pese idii tuntun kan ati idanwo ni awọn agbegbe idanwo gẹgẹbi apakan ti imudojuiwọn elegbegbe. Fifi sori jẹ aṣeyọri, botilẹjẹpe pẹlu ọpọlọpọ awọn asọye lati ọdọ ẹgbẹ imuse. Ṣugbọn ohun akọkọ ni pe a fun wa ni aṣẹ lati lọ si iṣelọpọ ni idasilẹ November pẹlu apejọ wa.

Pẹlu oṣu kan ti o ku, awọn ipese ti a fi ọwọ mu ṣe afihan ni kedere pe akoko ti n lọ. Wọ́n pinnu láti kọ́ ẹ̀ka iléeṣẹ́ tí wọ́n ti tú u sílẹ̀, àmọ́ kí nìdí tó fi yẹ kí wọ́n yà á sọ́tọ̀? A ko ni Prod-like, ati awọn ẹka ti o wa tẹlẹ ko dara - ọpọlọpọ koodu ti ko wulo wa. A nilo ni kiakia lati ge awọn ayanfẹ prod, ati pe eyi ti kọja ẹgbẹrun mẹta awọn iṣe. Ṣiṣepọ pẹlu ọwọ kii ṣe aṣayan rara. A ṣe apẹrẹ iwe afọwọkọ kan ti o ṣiṣẹ nipasẹ akọọlẹ fifi sori ọja ati gba awọn adehun si ẹka naa. Ìgbà kẹta ó ṣiṣẹ́ bó ṣe yẹ, àti lẹ́yìn tí “fáìlì kan bá parí” ẹ̀ka ọ́fíìsì náà ti ṣe tán. 

A kowe ara wa fun package fifi sori ẹrọ ati pari ni ọsẹ kan. Lẹhinna a ni lati yipada insitola lati iṣẹ ṣiṣe pataki ti eto naa, nitori o jẹ orisun-ìmọ. Lẹhin lẹsẹsẹ awọn sọwedowo ati awọn iyipada, abajade ni a gba pe o ṣaṣeyọri. Lakoko, akopọ ti itusilẹ gba apẹrẹ, fun fifi sori ẹrọ ti o pe eyiti o jẹ dandan lati ṣe deede Circuit idanwo pẹlu ọkan iṣelọpọ, ati pe a kọ iwe afọwọkọ lọtọ fun eyi.

Nipa ti, ọpọlọpọ awọn asọye wa nipa fifi sori akọkọ, ṣugbọn lapapọ koodu naa ṣiṣẹ. Ati lẹhin nipa fifi sori kẹta ohun gbogbo bẹrẹ lati dara. Iṣakoso ohun kikọ ati iṣakoso ẹya ti awọn nkan ni a ṣe abojuto lọtọ ni ipo afọwọṣe, eyiti o jẹ idalare ni ipele yii ni ipele yii.

Ipenija afikun ni nọmba nla ti awọn idasilẹ ti kii ṣe idasilẹ ti o ni lati ṣe akiyesi. Ṣugbọn pẹlu ẹka Prod-like ati Rebase, iṣẹ-ṣiṣe naa di mimọ.

Ni igba akọkọ, ni kiakia ati laisi awọn aṣiṣe

A sunmọ itusilẹ pẹlu iwa ireti ati diẹ sii ju awọn fifi sori ẹrọ aṣeyọri mejila lori awọn iyika oriṣiriṣi. Ṣugbọn gangan ọjọ kan ṣaaju ki o to akoko ipari, o han pe olutaja ko ti pari iṣẹ naa lati ṣeto igbasilẹ fun fifi sori ẹrọ ni ọna ti o gba. Ti o ba jẹ fun idi kan kikọ wa ko ṣiṣẹ, itusilẹ yoo ni idilọwọ. Pẹlupẹlu, nipasẹ awọn igbiyanju wa, eyiti o jẹ aifẹ paapaa. A ko ni ọna lati pada sẹhin. Nitorinaa, a ronu nipasẹ awọn aṣayan yiyan, awọn ero iṣe ti a pese ati bẹrẹ fifi sori ẹrọ.

Iyalenu, gbogbo itusilẹ, ti o ni diẹ sii ju awọn nkan 800, bẹrẹ ni deede, akoko akọkọ ati ni iṣẹju mẹwa 10. A lo wakati kan ṣayẹwo awọn akọọlẹ n wa awọn aṣiṣe, ṣugbọn ko ri eyikeyi.

Ni gbogbo ọjọ keji o wa ni ipalọlọ ninu iwiregbe itusilẹ: ko si awọn iṣoro imuse, awọn ẹya wiwọ tabi koodu “ko yẹ”. O je ani bakan àìrọrùn. Nigbamii, diẹ ninu awọn asọye farahan, ṣugbọn akawe si awọn eto miiran ati iriri iṣaaju, nọmba wọn ati pataki wọn jẹ akiyesi kekere.

Ipa afikun lati ipa ikojọpọ jẹ ilosoke ninu didara apejọ ati idanwo. Nitori awọn fifi sori ẹrọ pupọ ti itusilẹ ni kikun, kọ awọn abawọn ati awọn aṣiṣe imuṣiṣẹ ni a ṣe idanimọ ni akoko ti akoko. Idanwo ni awọn atunto itusilẹ ni kikun jẹ ki o ṣee ṣe lati ṣe idanimọ awọn abawọn ni afikun ni ipa irẹpọ ti awọn nkan ti ko han lakoko awọn fifi sori ẹrọ afikun. Dajudaju o jẹ aṣeyọri, ni pataki fun ilowosi 57% wa si itusilẹ naa.

Awọn esi ati awọn ipari

Ni o kere ju ọdun kan a ṣakoso lati:

  • Kọ idagbasoke inu ti o ni kikun nipa lilo eto nla;
  • Imukuro igbẹkẹle ataja pataki;
  • Lọlẹ CI/CD fun a gidigidi aisore iní;
  • Gbe awọn ilana imuse soke si ipele imọ-ẹrọ tuntun;
  • Ni pataki dinku akoko imuṣiṣẹ;
  • Ni pataki dinku nọmba awọn aṣiṣe imuse;
  • Ni igboya kede ararẹ bi alamọja idagbasoke idagbasoke.

Nitoribẹẹ, pupọ julọ ohun ti a ṣalaye dabi inira, ṣugbọn iwọnyi jẹ awọn ẹya ti eto ati awọn idiwọn ilana ti o wa ninu rẹ. Ni akoko yii, awọn iyipada ti o kan IS Awọn ọja ati iṣẹ Profaili (awọn iroyin titunto si, awọn kaadi ṣiṣu, awọn akọọlẹ ifowopamọ, escrow, awọn awin owo), ṣugbọn agbara ọna le ṣee lo si eyikeyi IS fun eyiti a ṣeto iṣẹ ṣiṣe ti imuse awọn iṣe DevOps. Awoṣe akopọ le jẹ atunṣe lailewu fun awọn imuse ti o tẹle (pẹlu awọn ti kii ṣe idasilẹ) lati ọpọlọpọ awọn ifijiṣẹ.

orisun: www.habr.com

Fi ọrọìwòye kun