Jere dezòd: Mete bagay yo nan lòd avèk èd nan yon kat jeyografik teknolojik

Jere dezòd: Mete bagay yo nan lòd avèk èd nan yon kat jeyografik teknolojik

Foto: Unsplash

Bonjou tout moun! Nou se enjenyè automatisation nan konpayi an Teknoloji pozitif epi nou sipòte devlopman nan pwodwi konpayi an: nou sipòte tout tiyo asanble a soti nan komèt la nan yon liy nan kòd pa devlopè nan piblikasyon an nan pwodwi fini ak lisans sou serveurs aktyalizasyon. Enfòmèl, yo rele nou enjenyè DevOps. Nan atik sa a, nou vle pale sou etap teknolojik yo nan pwosesis pwodiksyon lojisyèl an, ki jan nou wè yo ak ki jan nou klasifye yo.

Soti nan materyèl la ou pral aprann sou konpleksite nan kowòdone devlopman milti-pwodwi, sou ki sa yon kat teknolojik ye ak ki jan li ede rasyonalize ak repwodui solisyon yo, ki etap prensipal yo ak etap nan pwosesis devlopman an, ki jan yo ye zòn ki gen responsablite. ant DevOps ak ekip nan konpayi nou an.

Konsènan dezòd ak DevOps

Yon ti tan, konsèp DevOps gen ladan zouti devlopman ak sèvis, ansanm ak metodoloji ak pi bon pratik pou itilize yo. Ann separe mondyal la objektif la soti nan aplikasyon an nan lide DevOps nan konpayi nou an: sa a se yon rediksyon konsistan nan pri a nan pwodiksyon ak antretyen nan pwodwi nan tèm quantitative (èdtan moun oswa èdtan machin, CPU, RAM, Disk, elatriye). Fason ki pi fasil ak pi evidan pou diminye pri jeneral devlopman nan nivo konpayi an antye se minimize pri pou fè travay seri tipik nan tout etap pwodiksyon an. Men, ki etap sa yo, ki jan yo separe yo de pwosesis jeneral la, ki etap yo konpoze de?

Lè yon konpayi devlope yon pwodwi, tout bagay se plis oswa mwens klè: anjeneral gen yon plan komen ak devlopman konplo. Men, kisa pou w fè lè liy pwodwi a elaji epi gen plis pwodwi? Nan premye gade, yo gen pwosesis menm jan an ak liy asanblaj, ak "jwenn diferans ki genyen X" jwèt la nan mòso bwa ak scripts kòmanse. Men, e si gen deja 5+ pwojè nan devlopman aktif ak sipò pou plizyè vèsyon devlope sou plizyè ane obligatwa? Èske nou vle re-itilize kantite maksimòm posib solisyon nan tiyo pwodwi oswa èske nou pare pou depanse lajan nan yon devlopman inik pou chak?

Ki jan yo jwenn yon balans ant inik ak solisyon seri?

Kesyon sa yo te kòmanse parèt devan nou pi souvan depi 2015. Kantite pwodwi yo te grandi, epi nou te eseye elaji depatman automatisation nou an (DevOps), ki te sipòte liy asanblaj pwodwi sa yo, nan yon minimòm. An menm tan an, nou te vle replike solisyon anpil ke posib ant pwodwi yo. Apre yo tout, poukisa fè menm bagay la nan dis pwodwi nan diferan fason?

Direktè Devlopman: "Mesye, èske nou yon jan kanmenm evalye sa DevOps fè pou pwodwi yo?"

Nou: "Nou pa konnen, nou pa t 'mande yon kesyon konsa, men ki endikatè yo ta dwe konsidere?"

Direktè Devlopman: "Sa k konnen! Panse…”

Kòm nan fim sa a pi popilè: "Mwen nan yon otèl! .." - "Uh ... Èske ou ka montre m 'chemen an?" Sou refleksyon, nou te rive nan konklizyon an ke nou premye bezwen deside sou eta final yo nan pwodwi yo; sa a te vin premye objektif nou.

Se konsa, ki jan ou analize yon douzèn pwodwi ak ekip jistis gwo soti nan 10 a 200 moun epi detèmine mezi mezirab lè w ap repwodui solisyon yo?

1:0 an favè dezòd, oswa DevOps sou omoplat yo

Nou te kòmanse avèk yon tantativ pou aplike dyagram IDEF0 ak divès dyagram pwosesis biznis ki soti nan seri BPwin. Konfizyon an te kòmanse apre senkyèm kare pwochen etap nan pwochen pwojè a, epi kare sa yo pou chak pwojè ka trase nan ke yon piton long anba 50+ etap. Mwen te santi mwen tris epi mwen te vle rèl nan lalin lan - li pa t 'anfòm an jeneral.

Travay pwodiksyon tipik

Modèl pwosesis pwodiksyon se yon travay trè konplèks ak rigoureux: ou bezwen kolekte, trete ak analize yon anpil nan done ki soti nan divès depatman ak chèn pwodiksyon. Ou ka li plis sou sa nan atik la "Modèl nan pwosesis pwodiksyon nan yon konpayi IT'.

Lè nou te kòmanse modèl pwosesis pwodiksyon nou an, nou te gen yon objektif espesifik - transmèt bay chak anplwaye ki enplike nan devlopman nan pwodwi konpayi nou an, ak manadjè pwojè yo:

  • ki jan pwodwi ak konpozan yo, apati de komèt yon liy kòd, rive jwenn kliyan an nan fòm enstalatè ak mizajou,
  • ki resous yo bay pou chak etap nan pwodiksyon pwodwi yo,
  • ki sèvis ki enplike nan chak etap,
  • ki jan zòn responsablite pou chak etap yo delimite,
  • ki kontra ki egziste nan antre ak sòti nan chak etap.

Jere dezòd: Mete bagay yo nan lòd avèk èd nan yon kat jeyografik teknolojik

Klike sou imaj la pral louvri li nan gwosè konplè.

Travay nou nan konpayi an divize an plizyè zòn fonksyonèl. Direksyon an nan enfrastrikti a angaje nan optimize operasyon an nan tout resous "fè" nan depatman an, osi byen ke automatisation nan deplwaman nan machin vityèl ak anviwònman an sou yo. Direksyon siveyans bay kontwòl pèfòmans sèvis 24/7; nou tou bay siveyans kòm yon sèvis pou devlopè. Direksyon workflow bay ekip yo zouti pou jere pwosesis devlopman ak tès yo, analize eta kòd la, epi jwenn analiz sou pwojè yo. Epi finalman, direksyon webdev bay piblikasyon degaje yo sou sèvè aktyalizasyon GUS ak FLUS, ansanm ak lisans pou pwodwi ki itilize sèvis LicenseLab. Pou sipòte tiyo pwodiksyon an, nou mete ak kenbe anpil sèvis sipò diferan pou devlopè (ou ka koute istwa sou kèk nan yo nan ansyen rankont yo: Op!DevOps! 2016 и Op!DevOps! 2017). Nou menm tou nou devlope zouti automatisation entèn yo, ki gen ladan solisyon sous louvri.

Pandan senk ane ki sot pase yo, travay nou an te akimile anpil nan menm kalite ak operasyon woutin yo, ak devlopè nou yo soti nan lòt depatman sitou soti nan sa yo rele. travay tipik, solisyon an ki totalman oswa pasyèlman otomatize, pa lakòz difikilte pou pèfòmè epi li pa mande pou kantite lajan enpòtan nan travay. Ansanm ak zòn dirijan yo, nou analize travay sa yo epi yo te kapab idantifye kategori endividyèl nan travay, oswa etap pwodiksyon an, etap yo te divize an etap endivizib, ak plizyè etap ajoute chèn pwosesis pwodiksyon an.

Jere dezòd: Mete bagay yo nan lòd avèk èd nan yon kat jeyografik teknolojik

Egzanp ki pi senp nan yon chèn teknolojik se etap yo nan asanble, deplwaman ak tès nan chak nan pwodwi nou yo nan konpayi an. Nan vire, pou egzanp, etap konstriksyon an konsiste de anpil etap tipik separe: telechaje sous nan GitLab, prepare depandans ak bibliyotèk twazyèm pati, tès inite ak analiz kòd estatik, egzekite yon script bati sou GitLab CI, pibliye zafè nan depo a sou Artifactory ak jenerasyon nòt lage atravè zouti entèn ChangelogBuilder nou an.

Ou ka li sou travay tipik DevOps nan lòt atik nou yo sou Habré: "Eksperyans pèsonèl: ki jan sistèm Entegrasyon Kontinyèl nou an sanble"Ak"Otomatik nan pwosesis devlopman: ki jan nou aplike lide DevOps nan Positive Technologies'.

Anpil chèn pwodiksyon tipik fòme pwosesis fabrikasyon. Apwòch estanda pou dekri pwosesis yo se sèvi ak modèl IDEF0 fonksyonèl.

Yon egzanp modèl yon pwosesis fabrikasyon CI

Nou te peye atansyon espesyal nan devlopman pwojè estanda pou yon sistèm entegrasyon kontinyèl. Sa a te fè li posib reyalize inifikasyon an nan pwojè, mete aksan sou sa yo rele an lage konplo bati ak pwomosyon.

Jere dezòd: Mete bagay yo nan lòd avèk èd nan yon kat jeyografik teknolojik

Men ki jan li fonksyone. Tout pwojè yo sanble tipik: yo enkli konfigirasyon asanble ki tonbe nan repozitwa snapshot nan Artifactory, apre sa yo deplwaye ak teste sou ban tès, ak Lè sa a, monte nan repozitwa a lage. Sèvis Artifactory a se yon sèl pwen distribisyon pou tout zafè bati ant ekip ak lòt sèvis.

Si nou senplifye anpil ak jeneralize konplo lage nou an, Lè sa a, li gen ladan etap sa yo:

  • asanble pwodwi kwa-platfòm,
  • deplwaye nan ban tès yo,
  • fè tès fonksyonèl ak lòt tès,
  • pwomouvwa bati teste pou lage depo nan Artifactory,
  • piblikasyon lage ki baze sou sèvè aktyalizasyon,
  • livrezon asanble ak mizajou nan pwodiksyon an,
  • lanse enstalasyon an ak ajou nan pwodwi a.

Pou egzanp, konsidere modèl teknolojik konplo sa a lage tipik (apwe sa a tou senpleman Modèl) nan fòm lan nan yon modèl IDEF0 fonksyonèl. Li reflete etap prensipal yo nan pwosesis CI nou an. Modèl IDEF0 sèvi ak sa yo rele Notasyon ICOM (Entre-Kontwòl-Sòti-Mekanis) pou dekri ki resous yo itilize nan chak etap, ki baze sou ki règ ak kondisyon travay ki fèt, ki sa ki pwodiksyon an, ak ki mekanis, sèvis oswa moun aplike yon etap patikilye.

Jere dezòd: Mete bagay yo nan lòd avèk èd nan yon kat jeyografik teknolojik

Klike sou imaj la pral louvri li nan gwosè konplè.

Kòm yon règ, li pi fasil dekonpoze ak detaye deskripsyon an nan pwosesis nan modèl fonksyonèl. Men, kòm kantite eleman ap grandi, li vin pi plis ak pi difisil yo konprann yon bagay nan yo. Men, nan devlopman reyèl gen tou etap oksilyè: siveyans, sètifikasyon nan pwodwi, automatisation nan pwosesis travay, ak lòt moun. Se akòz pwoblèm nan dekale ke nou abandone deskripsyon sa a.

Nesans nan espwa

Nan yon sèl liv, nou te rankontre ansyen kat Sovyetik ki dekri pwosesis teknolojik (ki, nan chemen an, yo toujou itilize jodi a nan anpil antrepriz leta ak inivèsite). Tann, rete tann, paske nou gen tou yon workflow! .. Gen etap, rezilta, mezi, kondisyon, endikatè, ak sou sa ak sou sa ... Poukisa nou pa eseye aplike flowsheets nan tiyo pwodwi nou yo tou? Te gen yon santiman: "Sa a se li! Nou jwenn bon fil, li lè pou nou rale l byen!

Nan yon tablo senp, nou deside anrejistre pwodwi pa kolòn, ak etap teknolojik ak etap tiyo pwodwi pa ranje. Jalons yo se yon bagay gwo, tankou yon etap bati pwodwi. Ak etap yo se yon bagay ki pi piti ak plis detay, tankou etap la nan telechaje kòd sous la nan sèvè a bati oswa etap la nan konpile kòd la.

Nan entèseksyon ranje yo ak kolòn nan kat la, nou mete estati yo pou yon etap espesifik ak pwodwi. Pou estati yo, yo te defini yon seri eta:

  1. Pa gen done - oswa ki pa apwopriye. Li nesesè analize demann lan pou yon etap nan pwodwi a. Swa analiz la te deja fèt, men etap la kounye a pa nesesè oswa li pa jistifye ekonomikman.
  2. Ranvwaye - oswa pa enpòtan nan moman sa a. Yon etap nan tiyo a nesesè, men pa gen okenn fòs pou aplikasyon ane sa a.
  3. Planifye. Etap la te planifye pou aplikasyon ane sa a.
  4. Aplike. Se etap la nan tiyo a aplike nan volim ki nesesè yo.

Ranpli nan tablo a te kòmanse pwojè pa pwojè. Premyèman, yo te klase etap yo ak etap nan yon pwojè epi yo te anrejistre estati yo. Lè sa a, yo te pran pwochen pwojè a, fikse estati yo nan li epi yo ajoute etap yo ak etap ki te manke nan pwojè anvan yo. Kòm yon rezilta, nou te resevwa etap yo ak etap tout tiyo pwodiksyon nou yo ak estati yo nan yon pwojè espesifik. Li te tounen soti yon bagay ki sanble ak matris la konpetans tiyo pwodwi. Nou rele yon matris konsa yon kat teknolojik.

Avèk èd kat teknolojik la, nou kowòdone yon fason rezonab metrolojik ak ekip yo plan travay pou ane a ak objektif nou vle reyalize ansanm: ki etap nou ajoute nan pwojè a ane sa a, ak kiyès nou kite pou pita. Epitou, nan kou a nan travay, nou ka gen amelyorasyon nan etap yo ke nou te konplete pou yon sèl pwodwi. Lè sa a, nou elaji kat jeyografik nou an epi prezante amelyorasyon sa a kòm yon etap oswa yon nouvo etap, Lè sa a, nou analize pou chak pwodwi epi chèche konnen posibilite pou repwodui amelyorasyon an.

Yo gendwa fè objeksyon kont nou: “Sa a se tout bon, nan kou, sèlman ak tan kantite etap ak etap yo pral vin twò gwo. Ki jan yo dwe?

Nou te prezante deskripsyon estanda ak jistis konplè sou kondisyon yo pou chak etap ak etap, pou tout moun nan konpayi an konprann yo menm jan an. Apre yon tan, kòm amelyorasyon yo prezante, yon etap ka absòbe nan yon lòt etap oswa etap, ak Lè sa a, yo pral "efondre". An menm tan an, tout kondisyon ak nuans teknolojik anfòm nan kondisyon yo nan etap la jeneralizasyon oswa etap.

Ki jan yo evalye efè a nan repwodwi solisyon yo? Nou itilize yon apwòch trè senp: nou atribiye depans kapital inisyal yo pou aplikasyon an nan yon nouvo etap nan depans jeneral pwodwi anyèl yo, ak Lè sa a, divize pa tout lè replike.

Pati nan devlopman yo deja montre kòm etap enpòtan ak etap sou kat la. Nou ka enfliyanse rediksyon pri a nan pwodwi a atravè entwodiksyon de automatisation pou etap tipik. Apre sa, nou konsidere chanjman ki fèt nan karakteristik kalitatif, mezi quantitative ak pwofi ekip yo resevwa (nan èdtan moun oswa èdtan machin nan ekonomi).

Kat jeyografik teknolojik nan pwosesis pwodiksyon an

Si nou pran tout etap nou yo ak etap nou yo, kode yo ak tags epi elaji yo nan yon sèl chèn, Lè sa a, li pral tounen trè long ak enkonpreyansib (jis trè "python ke" ke nou te pale sou nan kòmansman an nan atik la) :

[Production] — [InfMonitoring] — [SourceCodeControl] — [Prepare] — [PrepareLinuxDocker] — [PrepareWinDocker] — [Build] — [PullSourceCode] — [PrepareDep] — [UnitTest] — [CodeCoverage] — [StaticAnalyze] — [BuildScenario] — [PushToSnapshot] — [ChangelogBuilder] — [Deploy] — [PrepareTestStand] — [PullTestCode] — [PrepareTestEnv] — [PullArtifact] — [DeployArtifact] — [Test] — [BVTTest] — [SmokeTest] — [FuncTest] — [LoadTest] — [IntegrityTest] — [DeliveryTest] — [MonitoringStands] — [TestManagement] — [Promote] — [QualityTag] — [MoveToRelease] — [License] — [Publish] — [PublishGUSFLUS] — [ControlVisibility] — [Install] — [LicenseActivation] — [RequestUpdates] — [PullUpdates] — [InitUpdates] — [PrepareEnv] — [InstallUpdates] — [Telemetry] — [Workflow] — [Communication] — [Certification] — [CISelfSufficiency]

Sa yo se etap yo nan konstriksyon pwodwi [Konstwi], deplwaye yo nan tès sèvè [Deplwaye], tès [Tès], pwomosyon bati yo lage repozitwa ki baze sou rezilta tès yo [Ankouraje], jenere ak pibliye lisans [Lisans], pibliye [ Pibliye] sou sèvè aktyalizasyon GUS la ak livrezon nan sèvè aktyalizasyon FLUS, enstalasyon ak ajou konpozan pwodwi sou enfrastrikti kliyan an lè l sèvi avèk Jesyon Konfigirasyon Product [Enstale], ansanm ak koleksyon telemetri [Telemetry] soti nan pwodwi enstale.

Anplis de sa, etap separe yo ka distenge: siveyans eta enfrastrikti [InfMonitoring], vèsyon kòd sous [SourceCodeControl], preparasyon anviwònman bati [Prepare], jesyon pwojè [Workflow], bay ekip yo zouti kominikasyon [Kominikasyon], sètifikasyon pwodwi [ Sètifikasyon] ak asire oto-sifizans nan pwosesis CI [CISelfSufficiency] (pa egzanp, endepandans asanble yo soti nan entènèt la). Plizyè douzèn etap nan pwosesis nou yo pa pral menm konsidere, paske yo trè espesifik.

Li pral pi fasil pou konprann epi gade nan tout pwosesis pwodiksyon an si li prezante nan fòm lan kat jeyografik teknolojik; sa a se yon tablo kote etap pwodiksyon endividyèl ak etap dekonpoze nan Modèl la ekri nan ranje, ak nan kolòn yon deskripsyon sou sa ki fèt nan chak etap oswa etap. Anfaz prensipal la mete sou resous ki bay chak etap, ak delimitasyon nan zòn nan responsablite.

Kat jeyografik la pou nou se yon kalite klasifikasyon. Li reflete gwo pati teknolojik pwodiksyon pwodwi yo. Mèsi a li, li te vin pi fasil pou ekip automatisation nou an kominike avèk devlopè yo ak ansanm planifye aplikasyon an nan etap automatisation, osi byen ke konprann ki depans travay ak resous (moun ak pyès ki nan konpitè) yo pral mande pou sa.

Anndan konpayi nou an, kat jeyografik la otomatikman pwodwi apati modèl jinja kòm yon fichye HTML regilye, epi yo telechaje sou sèvè GitLab Pages la. Ou ka wè yon Ekran ak yon egzanp yon kat jeyografik konplètman pwodwi по ссылке.

Jere dezòd: Mete bagay yo nan lòd avèk èd nan yon kat jeyografik teknolojik

Klike sou imaj la pral louvri li nan gwosè konplè.

Nan ti bout tan, kat jeyografik teknolojik la se yon foto jeneralize nan pwosesis pwodiksyon an, ki reflete klèman klase blòk ak fonksyonalite tipik.

Estrikti kat wout nou an

Kat jeyografik la konsiste de plizyè pati:

  1. Zòn Tit - isit la se yon deskripsyon jeneral nan kat jeyografik la, konsèp debaz yo prezante, resous prensipal yo ak rezilta nan pwosesis pwodiksyon an yo defini.
  2. Dashboard - isit la ou ka kontwole ekspozisyon done pou pwodwi endividyèl yo, yo bay yon rezime etap yo aplike ak etap an jeneral pou tout pwodwi yo.
  3. Kat jeyografik teknolojik - yon deskripsyon tabular nan pwosesis teknolojik la. Sou kat jeyografik la:
    • yo bay tout etap, etap ak kòd yo;
    • yo bay deskripsyon kout ak konplè sou etap yo;
    • yo endike resous ak sèvis yo itilize nan chak etap;
    • rezilta yo nan chak etap ak yon etap separe yo endike;
    • se zòn nan responsablite pou chak etap ak etap endike;
    • resous teknik yo, tankou HDD (SSD), RAM, vCPU, ak èdtan moun ki nesesè pou sipòte travay la nan etap sa a, tou de nan moman aktyèl la - yon reyalite, ak nan lavni an - yon plan, yo te detèmine;
    • pou chak pwodwi, li endike ki etap teknolojik oswa etap pou li te aplike, planifye pou aplikasyon, ki pa enpòtan oswa ki pa aplike.

Pran desizyon ki baze sou kat jeyografik teknolojik la

Apre w fin egzamine kat jeyografik la, li posib pou pran kèk aksyon - depann sou wòl anplwaye a nan konpayi an (manadjè devlopman, manadjè pwodwi, pwomotè oswa tèsteur):

  • konprann ki etap ki manke nan yon pwodwi oswa pwojè reyèl, epi evalye nesesite pou aplikasyon yo;
  • delimite zòn responsablite ant plizyè depatman si yo travay sou diferan etap;
  • dakò sou kontra nan antre ak sòti nan etap yo;
  • entegre etap travay ou a nan pwosesis devlopman an jeneral;
  • evalye avèk plis presizyon bezwen resous ki bay chak etap yo.

Rezime tout sa ki anwo yo

Routage a versatile, extensible ak fasil pou kenbe. Li pi fasil pou devlope epi kenbe yon deskripsyon pwosesis nan fòm sa a pase nan yon modèl IDEF0 akademik strik. Anplis de sa, yon deskripsyon tabular se pi senp, pi abitye, ak pi byen estriktire pase yon modèl fonksyonèl.

Pou aplikasyon teknik etap yo, nou gen yon zouti espesyal entèn CrossBuilder - yon zouti kouch ant sistèm CI, sèvis ak enfrastrikti. Pwomotè a pa bezwen koupe bisiklèt li: nan sistèm CI nou an, li ase pou kouri youn nan scripts (sa yo rele travay la) nan zouti CrossBuilder, ki pral kòrèkteman egzekite li, pran an kont karakteristik enfrastrikti nou an. .

Rezilta

Atik la te tounen byen long, men sa a se inevitab lè yo dekri modèl la nan pwosesis konplèks. Nan fen a, mwen ta renmen yon ti tan ranje lide prensipal nou yo:

  • Objektif aplikasyon DevOps lide nan konpayi nou an se toujou redwi pri pwodiksyon ak antretyen nan pwodwi konpayi an nan tèm quantitative (èdtan moun oswa èdtan machin, vCPU, RAM, Disk).
  • Fason pou redwi pri jeneral devlopman se pou misyon pou minimize pri pou fè travay seri tipik: etap ak etap pwosesis teknolojik la.
  • Yon travay tipik se yon travay ki gen solisyon totalman oswa pasyèlman otomatize, pa lakòz difikilte pou pèfòmè epi li pa mande pou depans travay enpòtan.
  • Pwosesis pwodiksyon an konsiste de etap, etap yo divize an etap endivizib, ki se travay tipik nan diferan echèl ak dimansyon.
  • Soti nan diferan travay tipik, nou te rive nan chenn teknolojik konplèks ak modèl milti-nivo nan pwosesis pwodiksyon an, ki ka dekri pa yon modèl IDEF0 fonksyonèl oswa yon kat jeyografik teknolojik ki pi senp.
  • Kat jeyografik teknolojik la se yon reprezantasyon tabèl etap ak etap pwosesis pwodiksyon an. Bagay ki pi enpòtan an: kat jeyografik la pèmèt ou wè tout pwosesis la nan antye, an gwo moso ak posiblite pou detaye yo.
  • Ki baze sou kat jeyografik teknolojik la, li posib pou evalye nesesite pou prezante etap nan yon pwodwi patikilye, delimiter zòn responsablite yo, dakò sou kontra nan antre ak pwodiksyon etap yo, ak plis presizyon evalye bezwen resous yo.

Nan atik sa yo, nou pral dekri an plis detay ki zouti teknik yo itilize pou aplike sèten etap teknolojik sou kat nou an.

Otè atik:

Sous: www.habr.com

Add nouvo kòmantè