Ki sa ki DevOps

Definisyon DevOps trè konplèks, kidonk nou dwe kòmanse diskisyon sou li ankò chak fwa. Gen mil piblikasyon sou sijè sa a sou Habré sèlman. Men, si w ap li sa a, pwobableman ou konnen ki sa DevOps ye. Paske mwen pa. Bonjou non mwen se Alexander Titov (@osminog), epi nou pral jis pale sou DevOps epi mwen pral pataje eksperyans mwen an.

Ki sa ki DevOps

Mwen te panse pou yon tan long sou ki jan yo fè istwa mwen an itil, kidonk pral gen anpil kesyon isit la - sa yo ke mwen mande tèt mwen ak sa yo ke mwen mande kliyan konpayi nou an. Lè w reponn kesyon sa yo, konpreyansyon vin pi byen. Mwen pral di ou poukisa DevOps nesesè nan pwen de vi mwen, ki sa li ye, ankò, nan pwen de vi mwen, ak ki jan yo konprann ke w ap deplase nan direksyon pou DevOps ankò nan pwen de vi mwen. Dènye pwen an pral nan kesyon yo. Lè w reponn yo pou tèt ou, ou ka konprann si konpayi ou an ap deplase nan direksyon DevOps oswa si gen pwoblèm nan kèk fason.


Nan yon moman mwen te monte vag yo nan fusions ak done. Premyèman, mwen te travay pou yon ti demaraj ki rele Qik, Lè sa a, li te achte pa yon konpayi yon ti kras pi gwo ki rele Skype, ki te Lè sa a, te achte pa yon konpayi yon ti kras pi gwo ki rele Microsoft. Nan moman sa a, mwen te kòmanse wè ki jan lide DevOps te transfòme nan konpayi diferan gwosè. Apre sa, mwen te vin enterese nan gade nan DevOps nan yon pwen de vi mache, ak kòlèg mwen yo ak mwen te fonde konpayi an Express 42. Pou 6 ane kounye a nou te deplase sou vag yo nan mache a.

Pami lòt bagay, mwen se youn nan òganizatè yo nan kominote a DevOps Moskou ak òganizatè a nan DevOps-Days 2017, men mwen pa t 'òganize 2018. Express 42 travay ak anpil konpayi. Nou grandi DevOps la, gade kijan sa rive, tire konklizyon, analize, di tout moun konklizyon nou yo, epi fòme moun nan pratik DevOps. An jeneral, nou ap fè tout sa nou kapab pou ogmante eksperyans nou ak ekspètiz nan sans sa a.

Poukisa DevOps

Premye kesyon ki ante tout moun ak toujou se - poukisa? Anpil moun panse ke DevOps se jis automatisation oswa yon bagay ki sanble ke chak konpayi deja genyen.

— Nou te gen entegrasyon kontinyèl - sa vle di nou te deja gen DevOps, e poukisa tout bagay sa yo nesesè? Yo ap pran plezi aletranje, men yo ap anpeche nou travay!

Plis pase 9 ane nan devlopman nan kominote a ak metodoloji, li te deja vin klè ke sa a se toujou pa maketing briye, men li toujou pa totalman klè poukisa li nesesè. Tankou nenpòt zouti ak pwosesis, DevOps gen objektif espesifik ke li finalman reyalize.

Tout bagay sa a se akòz lefèt ke mond lan ap chanje. Li deplase lwen apwòch antrepriz la, lè konpayi yo deplase tou dwat nan direksyon pou yon rèv, kòm klasik Saint Petersburg nou an te chante, soti nan pwen A nan pwen B dapre yon sèten estrateji, ak yon estrikti sèten bati pou sa a.

Ki sa ki DevOps

Nan prensip, tout bagay nan IT yo ta dwe bati dapre apwòch sa a. Isit la li itilize sèlman pou otomatize pwosesis yo.

Otomatik pa chanje souvan, paske lè yon konpayi desann nan yon ornière byen foule, kisa ki gen pou chanje? Li travay - pa manyen li. Koulye a, apwòch nan mond lan ap chanje, ak youn nan yo rele Agile sijere ke pwen final B pa vizib imedyatman.

Ki sa ki DevOps

Lè yon konpayi ale nan mache a, travay ak yon kliyan, li toujou ap eksplore mache a ak chanje pwen final la B. Anplis, pi souvan konpayi an chanje direksyon li, plis siksè li gen nan fen a, paske li chwazi plis mache. nich.

Estrateji a demontre pa yon konpayi enteresan ke mwen dènyèman te aprann sou. One Box Shave se yon sèvis livrezon abònman pou razwa ak Pwodwi pou Telefòn bab nan yon bwat. Yo konnen ki jan yo Customize "bwat" yo pou kliyan diferan. Sa a se fè pa yon lojisyèl sèten, ki Lè sa a, voye lòd la nan faktori Koreyen an ki pwodui machandiz yo.

Pwodwi sa a te achte pa Unilever pou $1 milya dola. Li kounye a konkirans ak Gillette e li te retire yon pati enpòtan nan konsomatè nan mache Ameriken an. One Box Shave di:

— 4 lam? Èske ou seryezman? Poukisa ou bezwen sa a - li pa amelyore kalite bab la. Yon krèm espesyalman chwazi, parfen ak yon razwa bon jan kalite ak de lam rezoud anpil pwoblèm plis pase sa yo estipid 4 lam Gillette! Èske nou pral rive nan 10 byento?

Men ki jan mond lan chanje. Unilever reklame ke yo gen yon sistèm IT fre ki pèmèt ou fè sa. Nan fen li sanble yon konsèp Tan-a-mache, ki pa gen moun ki te deja pale sou.

Ki sa ki DevOps

Pwen an nan tan-a-mache se pa konbyen fwa nou deplwaye. Ou ka souvan deplwaye, men sik lage yo pral long. Si sik lage twa mwa yo sipèpoze youn ak lòt, deplase yo pa yon semèn, li sanble ke konpayi an sanble ap deplwaye yon fwa pa semèn. E depi lide a rive nan aplikasyon final la li pran 3 mwa.

Tan-a-mache se sou minimize tan ki soti nan lide nan aplikasyon final la.

Nan ka sa a, lojisyèl reyaji ak mache a. Men ki jan sit entènèt One Box Shave la reyaji ak kliyan an. Yo pa gen vendeurs - jis yon sit entènèt kote vizitè yo Sur Et kite souhaite. An konsekans, yon bagay nouvo dwe toujou ap afiche sou sit la ak mete ajou an akò ak volonte yo. Pou egzanp, nan Kore di Sid yo kale yon fason diferan pase nan Larisi, epi yo renmen odè a pa nan Pine, men, pou egzanp, nan kawòt ak vaniy.

Depi li nesesè byen vit chanje kontni an nan sit la, devlopman lojisyèl chanje anpil. Atravè lojisyèl nou dwe chèche konnen sa kliyan an vle. Précédemment, nou te aprann sa atravè kèk fason roundabout, pou egzanp, nan jesyon biznis. Lè sa a, nou te fèt li, mete kondisyon yo nan sistèm IT la, ak tout bagay te fre. Koulye a, li diferan - lojisyèl fèt pa tout moun ki patisipe nan pwosesis la, ki gen ladan enjenyè, paske atravè espesifikasyon teknik yo aprann ki jan mache a fonksyone epi tou pataje insights yo ak biznis la.

Pou egzanp, nan Qik nou toudenkou te aprann ke moun reyèlman te renmen telechaje lis kontak sou sèvè a, epi yo te founi nou ak yon aplikasyon. Okòmansman nou pa t panse osijè de sa. Nan yon konpayi klasik, tout moun ta deside ke sa a se te yon ensèk, depi espèk la pa t 'di ke li ta dwe travay gwo epi yo te jeneralman aplike sou jenou an, yo ta te fèmen karakteristik nan epi yo di: "Pa gen moun ki bezwen sa a, bagay ki pi enpòtan an se ke fonksyonalite prensipal la ap travay.” . Ak konpayi teknoloji a wè sa a kòm yon opòtinite epi li kòmanse chanje lojisyèl an akò ak sa a.

Ki sa ki DevOps

An 1968, yon nèg vizyonè, Melvin Conway, te formul lide sa a.

Òganizasyon ki kreye sistèm lan gen kontrent pa yon konsepsyon ki repwodui estrikti kominikasyon òganizasyon sa a.

Nan plis detay, yo nan lòd yo pwodwi sistèm nan yon kalite diferan, ou dwe tou gen yon estrikti kominikasyon nan yon konpayi nan yon kalite diferan. Si estrikti kominikasyon ou an tèt-hierarchik, Lè sa a, sa a pa pral pèmèt ou kreye sistèm ki ka bay yon endikatè Tan-a-Mache trè wo.

Li sou lwa Conway a yon sèl kapab atravè lyen. Li enpòtan pou konprann kilti DevOps oswa filozofi paske sèl bagay ki fondamantalman chanje nan DevOps se estrikti kominikasyon ant ekip yo.

Soti nan yon pwen de vi pwosesis, anvan DevOps, tout etap: analiz, devlopman, tès, operasyon yo te lineyè.Ki sa ki DevOps
Nan ka DevOps, tout pwosesis sa yo fèt an menm tan.

Ki sa ki DevOps

Tan-a-mache se sèl fason li ka fè. Pou moun ki te travay nan pwosesis la fin vye granmoun, sa a sanble yon ti jan cosmic, epi jeneralman konsa-konsa.

Se konsa, poukisa ou bezwen DevOps?

Pou devlopman pwodwi dijital. Si konpayi ou a pa gen yon pwodwi dijital, DevOps pa nesesè - li trè enpòtan.

DevOps simonte limit vitès pwodiksyon lojisyèl sekans. Nan li tout pwosesis fèt an menm tan.

Difikilte pou ogmante. Lè evanjelis DevOps di ou ke li pral fè li pi fasil pou ou lage lojisyèl, sa a se istwa san sans.

Avèk DevOps, bagay yo pral sèlman vin pi konplike.

Nan konferans lan nan kanpe Avito a, ou te kapab wè ki sa li te tankou deplwaye yon veso Docker - yon travay ireyèl. Konpleksite a vin entèdi; ou oblije jungle anpil boul an menm tan.

DevOps konplètman chanje pwosesis la ak òganizasyon nan konpayi an — pi jisteman, se pa DevOps ki chanje, men se pwodwi dijital la. Pou vini nan DevOps, ou toujou bezwen chanje konplètman pwosesis sa a.

Kesyon pou yon espesyalis

Kisa ou genyen? Kesyon ke ou ka poze tèt ou pandan w ap travay nan yon konpayi epi devlope kòm yon espesyalis.

Èske w gen yon estrateji pou kreye yon pwodwi dijital? Si genyen, sa deja bon. Sa vle di konpayi ou ap deplase nan direksyon DevOps.

Èske konpayi ou deja kreye yon pwodwi dijital? Sa vle di ke ou ka monte yon lòt nivo pi wo epi fè bagay sa yo pi enteresan - ankò nan yon pwen de vi DevOps. Mwen sèlman pale de pwen de vi sa a.

Èske konpayi ou youn nan lidè mache yo nan nich pwodwi dijital la? Spotify, Yandex, Uber se konpayi ki nan pi gwo pwogrè teknolojik kounye a.

Poze tèt ou kesyon sa yo, epi si tout repons yo se non, Lè sa a, petèt ou pa ta dwe fè DevOps nan konpayi sa a. Si sijè a nan DevOps vrèman enteresan pou ou, petèt... ou ta dwe deplase nan yon lòt konpayi? Si konpayi ou a vle antre nan DevOps, men ou reponn "Non" nan tout kesyon yo, Lè sa a, se tankou sa a bèl Rinoseròs ki p'ap janm chanje.

Ki sa ki DevOps

Òganizasyon

Kòm mwen te di, dapre Lwa Conway a, òganizasyon an nan yon konpayi chanje. Mwen pral kòmanse ak sa ki anpeche DevOps antre anndan konpayi an nan pwen de vi òganizasyonèl la.

Pwoblèm nan "wells"

Mo angle "Silo" tradui isit la nan Ris kòm "byen". Pwen pwoblèm sa a se sa pa gen okenn echanj enfòmasyon ant ekip yo. Chak ekip fouye byen fon nan ekspètiz li yo, san yo pa bati yon kat komen pou navige.

Nan kèk fason sa a fè m sonje yon moun ki fèk rive Moskou epi ki poko konnen ki jan yo navige kat jeyografik la métro. Moskovit anjeneral konnen zòn yo trè byen, ak nan tout Moskou yo ka navige lè l sèvi avèk kat jeyografik la métro. Lè ou vini nan Moskou pou premye fwa, ou pa gen konpetans sa a, epi ou jis dezoryante.

DevOps sijere travèse moman dezoryante sa a ak tout depatman k ap travay ansanm pou konstwi yon kat entèraksyon komen.

De faktè anpeche sa a.

Konsekans sistèm jesyon antrepriz la. Li se bati nan separe yerarchize "pi". Pa egzanp, gen sèten KPI nan konpayi ki sipòte sistèm sa a. Nan lòt men an, sèvo yo nan yon moun ki jwenn li difisil yo ale pi lwen pase limit yo nan ekspètiz yo ak navige tout sistèm nan jwenn nan wout la. Li jis alèz. Imajine ke ou nan ayewopò Bangkok - ou pa pral jwenn wout ou byen vit. DevOps tou difisil pou navige, e se poutèt sa moun di ou bezwen jwenn yon gid pou rive la.

Men, bagay ki pi enpòtan an se ke pwoblèm nan nan "pwi" pou yon enjenyè ki anprint ak lespri DevOps, te li Fowler ak yon pakèt lòt liv, eksprime nan lefèt ke "wells" pa pèmèt ou fè bagay "evidan".. Nou souvan reyini ansanm apre DevOps Moskou, pale youn ak lòt, epi moun pote plent:

— Nou jis te vle lanse CI, men li te tounen soti ke jesyon pa t 'bezwen li.

Sa rive jisteman paske CI и Pwosesis livrezon kontinyèl yo sou fwontyè a nan anpil egzamen. Senpleman san yo pa simonte pwoblèm nan nan "wells" nan nivo òganizasyon an, ou pa yo pral kapab avanse, kèlkeswa sa ou fè ak kèlkeswa jan li tris.

Ki sa ki DevOps

Chak patisipan nan pwosesis la nan konpayi an: backend ak entèfas devlopè, tès, DBA, operasyon, rezo, fouye nan pwòp direksyon yo, epi pèsonn pa gen yon kat komen eksepte manadjè a, ki yon jan kanmenm kontwole yo epi jere yo lè l sèvi avèk "divize". ak konkeri” metòd.

Moun ap goumen pou kèk zetwal oswa drapo, tout moun ap fouye ekspètiz yo.

Kòm yon rezilta, lè travay la rive konekte tout bagay sa yo ansanm ak bati yon tiyo komen, epi pa gen okenn nesesite ankò pou goumen pou zetwal ak drapo, kesyon an rive - kisa yo dwe fè de tout fason? Nou bezwen vin nan yon akò yon jan kanmenm, men pèsonn pa te anseye nou ki jan fè sa nan lekòl la. Nou te anseye depi lekòl: uityèm ane - wow! - konpare ak setyèm ane! Se menm bagay la isit la.

Èske se menm bagay la tou nan konpayi ou a?

Pou tcheke sa, ou ka poze tèt ou kesyon sa yo.

Èske ekip yo itilize zouti komen epi kontribye nan chanjman nan zouti komen sa yo?

Konbyen fwa ekip yo reòganize—kèk espesyalis nan yon ekip deplase nan yon lòt ekip? Se nan yon anviwònman DevOps ke sa vin nòmal, paske pafwa yon moun tou senpleman pa ka konprann sa yon lòt domèn ekspètiz ap fè. Li deplase nan yon lòt depatman, travay la pou de semèn pou kreye pou tèt li yon kat nan oryantasyon ak entèraksyon ak depatman sa a.

Èske li posib pou fòme yon komite chanjman epi chanje bagay yo? Oswa èske li mande men fò nan jesyon ki pi wo a ak direksyon? Dènyèman, mwen te ekri sou Facebook ki jan yon bank ti konnen ap aplike zouti atravè lòd: nou ekri yon lòd, nou aplike li pou yon ane, epi wè sa k ap pase. Sa a, nan kou, se long ak tris.

Ki enpòtans li pou administratè yo resevwa reyalizasyon pèsonèl san yo pa konsidere reyalizasyon konpayi an?

Si ou reponn kesyon sa yo pou tèt ou, li pral vin pi klè si ou gen yon pwoblèm konsa nan konpayi ou.

Enfrastrikti kòm kòd

Apre pwoblèm sa a fin pase, premye pratik enpòtan, san li difisil pou avanse pi lwen nan DevOps, se enfrastrikti kòm kòd.

Pi souvan, enfrastrikti kòm kòd yo konnen jan sa a:

— Ann otomatize tout bagay nan bash, kouvri tèt nou ak scripts pou admin yo gen mwens travay manyèl!

Men sa pa vre.

Enfrastrikti kòm kòd vle di ke ou dekri sistèm IT ou travay avèk yo nan fòm kòd yo nan lòd yo toujou ap konprann eta li yo.

Ansanm ak lòt ekip, ou kreye yon kat sou fòm kòd ke tout moun ka konprann epi yo ka navige ak navige. Li pa enpòtan sou sa li fè sou - Chef, Ansible, Salt, oswa lè l sèvi avèk dosye YAML nan Kubernetes - pa gen okenn diferans.

Nan konferans lan, yon kòlèg ki soti nan 2GIS te di ki jan yo te fè pwòp bagay entèn yo pou Kubernetes, ki dekri estrikti a nan sistèm endividyèl yo. Pou dekri 500 sistèm yo, yo te bezwen yon zouti separe ki jenere deskripsyon sa a. Lè gen deskripsyon sa a, tout moun ka tcheke youn ak lòt, kontwole chanjman, ki jan yo chanje li ak amelyore li, sa ki manke.

Dakò, scripts bash endividyèl anjeneral pa bay konpreyansyon sa a. Nan youn nan konpayi yo kote mwen te travay, te gen menm yon non pou "ekri sèlman" script - lè script la ekri, men li pa posib ankò li li. Mwen panse ke sa a abitye pou ou tou.

Enfrastrikti kòm kòd se kòd ki dekri eta aktyèl enfrastrikti a. Anpil pwodwi, enfrastrikti, ak ekip sèvis travay ansanm sou kòd sa a, epi pi enpòtan, yo tout bezwen konprann ki jan kòd sa a aktyèlman ap travay.

Kòd la konsève dapre pi bon pratik kòd: devlopman jwenti, revizyon kòd, pwogram XP, tès, demann rale, CI pou enfrastrikti kòd - tout bagay sa yo apwopriye epi yo ka itilize.

Kòd vin tounen yon lang komen pou tout enjenyè.

Chanje enfrastrikti nan kòd pa pran anpil tan. Wi, kòd enfrastrikti kapab genyen tou dèt teknik. Anjeneral ekip yo rankontre li yon ane ak yon mwatye apre yo te kòmanse aplike "enfrastrikti kòm kòd" nan fòm lan nan yon pakèt moun sou scripts oswa menm Ansible, ke yo ekri tankou kòd espageti, epi yo tou jete scripts bash nan melanj la!

Li enpòtan: Si ou poko eseye bagay sa yo, sonje sa Ansible se pa bash! Li dokiman an ak anpil atansyon, etidye sa yo ekri sou li.

Enfrastrikti kòm kòd se separasyon nan kòd enfrastrikti nan kouch separe.

Nan konpayi nou an, nou distenge 3 kouch debaz, ki trè klè ak senp, men ka gen plis nan yo. Ou ka gade kòd enfrastrikti ou a epi di si ou gen kondisyon sa a oswa ou pa. Si pa gen okenn kouch make, Lè sa a, ou bezwen pran kèk tan ak refactor yon ti kras.
Ki sa ki DevOps

kouch baz - sa a se fason eksplwatasyon an, sovgad ak lòt bagay ki ba-nivo yo configuré, pou egzanp, ki jan Kubernetes deplwaye nan nivo debaz la.

Nivo sèvis - sa yo se sèvis sa yo ke ou bay pwomotè a: antre kòm yon sèvis, siveyans kòm yon sèvis, baz done kòm yon sèvis, balanse kòm yon sèvis, keu kòm yon sèvis, Livrezon kontinyèl kòm yon sèvis - yon pakèt sèvis ke ekip endividyèl elèv yo. ka bay devlopman. Tout bagay sa yo bezwen dekri nan modil separe nan sistèm jesyon konfigirasyon ou.

Kouch kote aplikasyon yo fèt epi li dekri kijan yo pral dewoule anlè de kouch anvan yo.

Kesyon kontwòl

Èske konpayi ou a gen yon depo enfrastrikti komen? Èske ou jere dèt teknik nan enfrastrikti ou a? Èske w itilize pratik devlopman nan yon depo enfrastrikti? Èske enfrastrikti ou koupe an kouch? Ou ka tcheke dyagram Base-service-APP. Ki jan li difisil pou fè yon chanjman?

Si ou te fè eksperyans ke li te pran yon jou ak yon mwatye fè chanjman, sa vle di ke ou gen dèt teknik epi ou bezwen travay avèk li. Ou jis bite sou yon rato dèt teknik nan kòd enfrastrikti ou. Mwen sonje anpil istwa konsa lè, pou chanje kèk CCTL, ou bezwen reekri mwatye nan kòd enfrastrikti a, paske kreyativite ak dezi a otomatize tout bagay te mennen nan lefèt ke tout bagay se korode toupatou, tout manch yo te retire, ak li nesesè refactorize.

Livrezon kontinyèl

Ann konpare debi ak kredi. Premye vini yon deskripsyon enfrastrikti a, ki ka byen debaz. Ou pa bezwen dekri tout bagay an detay, men gen kèk deskripsyon debaz obligatwa pou ou ka travay avèk li. Sinon, li pa klè kisa pou fè ak livrezon kontinyèl pwochen. Tout pratik sa yo dewoulman an menm tan lè ou vini nan DevOps, men li kòmanse ak konprann sa ou genyen ak kijan pou jere li. Sa a se jisteman pratik nan enfrastrikti kòm kòd.

Yon fwa li vin klè ke ou genyen li ak ki jan yo jere li, ou kòmanse konnen ki jan yo voye kòd pwomotè a nan pwodiksyon pi vit ke posib. Mwen vle di ansanm ak pwomotè a - nou sonje sou pwoblèm nan nan "pwi", se sa ki, se pa moun ki vini ak sa a, men yon ekip.

Lè nou avèk Vanya Evtukhovich te wè premye liv la Jez Humble ak gwoup otè yo "Livrezon kontinyèl", ki te lage nan 2009, nou te panse pou yon tan long sou ki jan yo tradui tit li an Ris. Yo te vle tradui li kòm "Livrezon Kontinyèlman", men, malerezman, li te tradui kòm "Livrezon Kontinyèl". Li sanble pou mwen ke gen yon bagay Ris nan non nou, ak presyon.

Toujou ap bay mwayen

Kòd ki nan depo pwodwi a ka toujou telechaje nan pwodiksyon an. Li ka pa degonfle, men li toujou pare pou li. An konsekans, ou toujou ekri kòd ak yon santiman difisil-a-eksplike nan kèk enkyetid anba tailbone ou. Li souvan parèt lè ou woule kòd enfrastrikti. Sa a santi nan kèk enkyetid ta dwe prezan - li deklanche pwosesis nan sèvo ki pèmèt ou ekri kòd yon ti jan diferan. Sa a ta dwe anrejistre nan règ yo nan devlopman an.

Pou toujou delivre, ou bezwen yon fòma zafè ki kouri atravè yon platfòm enfrastrikti. Si ou jete "fatra lavi" nan diferan fòma atravè yon platfòm enfrastrikti, Lè sa a, li vin inifye, li difisil a kenbe, ak pwoblèm nan nan dèt teknik rive. Fòma artefact la dwe aliman - sa a se tou yon travay kolektif: nou tout bezwen mete tèt yo ansanm, brui sèvo nou yo ak vini ak fòma sa a.

Afè a ap kontinye amelyore e li chanje pou adapte anviwònman pwodiksyon an pandan l ap deplase atravè tiyo livrezon an. Lè yon asosye deplase sou tiyo a, li toujou ap rankontre kèk bagay enkonvenyan pou li, ki sanble ak sa asosye ke ou mete nan pwodiksyon rankontre. Si nan devlopman klasik sa a se yon administratè sistèm ki fè deplwaye a, Lè sa a, nan pwosesis la DevOps sa rive tout tan tout tan an: isit la yo teste li ak kèk tès, isit la yo jete li nan yon gwoup Kubernetes, ki se plis oswa mwens menm jan an. nan pwodiksyon, Lè sa a, toudenkou yo te kòmanse tès chaj.

Sa a se yon ti jan okoumansman de jwèt la Pac-Man - asosye a ale nan kèk kalite istwa. An menm tan an, li enpòtan pou kontwole si kòd la aktyèlman ale nan istwa a epi si li se yon jan kanmenm ki gen rapò ak pwodiksyon ou an. Istwa soti nan pwodiksyon yo ka trennen nan pwosesis la Livrezon Kontinyèl: se te tankou sa a lè yon bagay tonbe, kounye a se pou nou jis pwogram senaryo sa a andedan sistèm nan. Chak fwa kòd la pral pase nan senaryo sa a tou, epi ou pa pral rankontre pwoblèm sa a pwochen fwa. Ou pral aprann sou li pi bonè pase li rive nan kliyan ou.

Diferan estrateji deplwaman. Pou egzanp, ou sèvi ak tès AB oswa deplwaman Canary pou teste kòd la yon fason diferan sou diferan kliyan, jwenn enfòmasyon sou fason kòd la fonksyone, ak anpil pi bonè pase lè li te woule soti nan 100 milyon itilizatè yo.

"Konstanman delivre" sanble sa a.

Ki sa ki DevOps

Pwosesis livrezon Dev, CI, Test, PreProd, Prod se pa yon anviwònman separe, sa yo se etap oswa estasyon ki gen sòm ignifuje nan ki asosye ou a pase.

Si ou gen kòd enfrastrikti ki dekri kòm APP Sèvis Sèvi Lè sa a, li ede pa bliye tout scripts yo, epi ekri yo kòm kòd pou zafè sa a, ankouraje zafè epi chanje li pandan w ap ale.

Oto-tès kesyon

Tan ki soti nan deskripsyon karakteristik yo lage nan pwodiksyon nan 95% nan ka yo se mwens pase yon semèn? Èske bon jan kalite a nan zafè a amelyore nan chak etap nan tiyo a? Èske gen yon istwa ke li ale nan? Èske w itilize diferan estrateji deplwaman?

Si tout repons yo se wi, Lè sa a, ou se ekstrèmman fre! Ekri repons ou yo nan kòmantè yo - mwen pral kontan).

Fidbak

Sa a se pratik ki pi difisil nan tout. Nan konferans DevOpsConf, yon kòlèg ki soti nan Infobip, k ap pale de li, te yon ti kras konfonn nan pawòl li yo, paske sa a se reyèlman yon pratik trè konplèks sou lefèt ke ou bezwen kontwole tout bagay!

Ki sa ki DevOps

Pou egzanp, yon bon bout tan de sa, lè mwen te travay nan Qik epi nou reyalize ke nou te bezwen kontwole tout bagay. Nou te fè sa, epi kounye a nou gen 150 atik nan Zabbix, ki toujou ap kontwole. Li te pè, direktè teknik la trese dwèt li nan tanp li:

- Mesye, poukisa wap vyole sèvè a ak yon bagay ki pa klè?

Men, Lè sa a, yon ensidan ki te fèt ki te montre ke sa a se reyèlman yon estrateji trè fre.

Youn nan sèvis yo te kòmanse aksidan toujou. Okòmansman, li pa t 'kraze, ki se enteresan, kòd la pa te ajoute la, paske li te yon koutye debaz, ki te gen pratikman pa gen okenn fonksyonalite biznis - li tou senpleman voye mesaj ant sèvis endividyèl elèv yo. Sèvis la pa t chanje pou 4 mwa, epi toudenkou li te kòmanse aksidan ak erè "Segmantasyon fay".

Nou te choke, louvri tablo nou yo nan Zabbix, epi li te tounen soti ke yon semèn ak yon mwatye de sa, konpòtman an nan demann nan sèvis la API ke koutye sa a itilize chanje anpil. Apre sa, nou te wè ke frekans nan voye yon sèten kalite mesaj te chanje. Apre sa, nou te jwenn ke sa yo te kliyan android. Nou te mande:

— Mesye, sa ki rive nou yon semèn edmi de sa?

Kòm repons, nou tande yon istwa enteresan sou fason yo te reamenaje UI a. Li fasil ke nenpòt moun pral imedyatman di ke yo chanje bibliyotèk la HTTP. Pou kliyan Android, se tankou chanje savon nan twalèt la - yo jis pa sonje. Kòm yon rezilta, apre 40 minit nan konvèsasyon, nou te jwenn ke yo te chanje bibliyotèk HTTP a, ak tan default li yo te chanje. Sa a te mennen nan konpòtman an trafik sou sèvè API a chanje, ki te mennen nan yon sitiyasyon ki te lakòz yon kous nan koutye a, epi li te kòmanse aksidan.

San yo pa siveyans gwo twou san fon li se jeneralman enposib yo louvri sa a. Si òganizasyon an toujou gen pwoblèm nan nan "pi", lè tout moun voye lajan nan youn ak lòt, sa a ka viv sou pou ane. Ou senpleman rekòmanse sèvè a paske li enposib pou rezoud pwoblèm nan. Lè ou kontwole, swiv, swiv tout evènman yo ke ou genyen, epi sèvi ak siveyans kòm tès - ekri kòd epi imedyatman endike ki jan yo kontwole li, tou nan fòm lan nan kòd (nou deja gen enfrastrikti a kòm kòd), tout bagay vin klè ki jan. sou palmis la. Menm pwoblèm konplèks sa yo fasil pou swiv.

Ki sa ki DevOps

Kolekte tout enfòmasyon sou sa k ap pase nan zafè a nan chak etap nan pwosesis livrezon an - pa nan pwodiksyon an.

Voye siveyans la nan CI, ak kèk bagay debaz yo pral deja vizib la. Pita ou pral wè yo nan tès, PredProd, ak tès chaj. Kolekte enfòmasyon nan tout etap, pa sèlman mezi, estatistik, men tou mòso bwa: ki jan aplikasyon an te woule soti, anomali - kolekte tout bagay.

Sinon li pral difisil pou evalye li. Mwen deja di ke DevOps se pi konplèks. Pou fè fas ak konpleksite sa a, ou bezwen gen analiz nòmal.

Kesyon pou kontwòl tèt yo

Èske siveyans ou ak antre nan zouti devlopman pou ou? Lè w ap ekri kòd, èske devlopè w yo, enkli ou menm, panse sou fason pou kontwole li?

Èske w tande sou pwoblèm nan men kliyan yo? Èske w konprann kliyan an pi byen nan siveyans ak antre? Èske w konprann sistèm nan pi byen nan siveyans ak antre? Ou chanje sistèm nan tou senpleman paske ou wè ke tandans nan sistèm nan ap grandi epi ou konprann ke nan yon lòt 3 semèn tout bagay pral mouri?

Yon fwa ou gen twa eleman sa yo, ou ka panse sou ki kalite platfòm enfrastrikti ou genyen nan konpayi ou.

Platfòm enfrastrikti

Pwen an se pa ke li se yon seri zouti disparate ke chak konpayi genyen.

Pwen yon platfòm enfrastrikti se ke tout ekip itilize zouti sa yo epi devlope yo ansanm.

Li klè ke gen ekip separe ki responsab pou devlopman moso endividyèl nan platfòm enfrastrikti a. Men, an menm tan, chak enjenyè pote responsablite pou devlopman, pèfòmans, ak pwomosyon nan platfòm enfrastrikti. Nan yon nivo entèn li vin yon zouti komen.

Tout ekip devlope platfòm enfrastrikti a epi trete li ak swen kòm pwòp IDE yo. Nan IDE ou a ou enstale diferan grefon pou fè tout bagay bèl ak vit, ak konfigirasyon hotkeys. Lè ou louvri Sublime, Atom oswa Visual Studio Code, erè kòd yo ap koule nan epi ou reyalize ke li enposib pou travay nan tout, ou imedyatman santi tris epi ou kouri ranje IDE ou.

Trete platfòm enfrastrikti ou a menm jan an. Si ou konprann ke gen yon bagay ki mal nan li, kite yon demann si ou pa ka ranje li tèt ou. Si gen yon bagay ki senp, edite li tèt ou, voye yon demann rale, mesye yo pral konsidere li epi ajoute li. Sa a se yon apwòch yon ti kras diferan nan zouti jeni nan tèt pwomotè a.

Platfòm nan enfrastrikti asire transfè a nan zafè a soti nan devlopman nan kliyan an ak amelyorasyon kontinyèl nan bon jan kalite. IP a pwograme ak yon seri istwa ki rive kòd la nan pwodiksyon an. Pandan ane devlopman yo, gen yon anpil nan istwa sa yo, kèk nan yo inik epi yo gen rapò sèlman ak ou - yo pa ka Googled.

Nan pwen sa a, platfòm enfrastrikti vin avantaj konpetitif ou, paske li gen yon bagay bati nan li ki pa nan zouti konkiran an. Plis IP ou pi fon, se pi gwo avantaj konpetitif ou an tèm de tan pou mache. Parèt isit la pwoblèm fèmen machann: Ou ka pran platfòm yon lòt moun, men lè l sèvi avèk eksperyans yon lòt moun, ou p ap konprann ki jan li enpòtan pou ou. Wi, se pa tout konpayi ki ka bati yon platfòm tankou Amazon. Sa a se yon liy difisil kote eksperyans konpayi an gen rapò ak pozisyon li nan mache a, epi ou pa ka sèvi ak yon seri vandè la. Sa a se tou enpòtan yo reflechi sou.

Scheme

Sa a se yon dyagram debaz nan yon platfòm enfrastrikti ki pral ede w mete tout pratik ak pwosesis yo nan yon konpayi DevOps.

Ki sa ki DevOps

Ann gade nan ki sa li konsiste.

Sistèm òkestrasyon resous, ki bay CPU, memwa, disk nan aplikasyon ak lòt sèvis. Anplis sa a - sèvis nivo ba: siveyans, antre, CI/CD Engine, depo zafè, enfrastrikti kòm kòd sistèm.

Pi wo nivo sèvis: baz done kòm yon sèvis, ke moun kap kriye kòm yon sèvis, Balans chaj kòm yon sèvis, redimansyon imaj kòm yon sèvis, Big Data faktori kòm yon sèvis. Anplis sa a - tiyo ki delivre kòd ki toujou ap modifye bay kliyan ou a.

Ou resevwa enfòmasyon sou fason lojisyèl ou a ap travay pou kliyan an, chanje li, bay kòd sa a ankò, resevwa enfòmasyon - e konsa ou toujou ap devlope ni platfòm enfrastrikti ak lojisyèl ou.

Nan dyagram nan, tiyo livrezon an konsiste de plizyè etap. Men, sa a se yon dyagram chema ke yo bay kòm yon egzanp - pa bezwen repete li youn pa youn. Etap yo kominike avèk sèvis yo tankou si yo te sèvis-chak brik nan platfòm la pote pwòp istwa pa yo: ki jan resous yo asiyen, ki jan aplikasyon an lanse, travay ak resous, yo kontwole, ak chanjman.

Li enpòtan pou w konprann ke chak pati nan platfòm la pote yon istwa, epi mande tèt ou ki istwa brik sa a pote, petèt li ta dwe jete epi ranplase ak yon sèvis twazyèm pati. Pou egzanp, èske li posib enstale Okmeter olye de yon brik? Petèt mesye yo te deja devlope ekspètiz sa a pi plis pase nou genyen. Men, petèt pa - petèt nou gen ekspètiz inik, nou bezwen enstale Prometheus epi devlope li pi lwen.

Kreyasyon platfòm la

Sa a se yon pwosesis kominikasyon konplèks. Lè ou gen pratik debaz, ou kòmanse kominikasyon ant diferan enjenyè ak espesyalis ki devlope kondisyon ak estanda, epi toujou ap chanje yo nan diferan zouti ak apwòch. Kilti nou genyen nan DevOps enpòtan isit la.

Ki sa ki DevOps
Avèk kilti tout bagay se trè senp - se sou kolaborasyon ak kominikasyon, se sa ki, dezi a travay nan yon jaden komen youn ak lòt, dezi a yo sèvi ak yon enstriman ansanm. Pa gen okenn syans fize isit la - tout bagay se trè senp, ordinèr. Pou egzanp, nou tout ap viv nan antre a epi kenbe li pwòp - tankou yon nivo nan kilti.

Kisa ou genyen?

Ankò, kesyon ou ka poze tèt ou.

Èske platfòm enfrastrikti dedye a? Ki moun ki responsab devlopman li? Èske w konprann avantaj konpetitif nan platfòm enfrastrikti ou a?

Ou bezwen toujou ap poze tèt ou kesyon sa yo. Si yon bagay ka transfere nan sèvis twazyèm pati, li ta dwe transfere; si yon sèvis twazyèm pati kòmanse bloke mouvman ou, Lè sa a, ou bezwen bati yon sistèm nan tèt ou.

Se konsa, DevOps...

... sa a se yon sistèm konplèks, li dwe genyen:

  • Pwodwi dijital.
  • Modil biznis ki devlope pwodwi dijital sa a.
  • Ekip pwodwi ki ekri kòd.
  • Pratik livrezon kontinyèl.
  • Platfòm kòm yon sèvis.
  • Enfrastrikti kòm yon sèvis.
  • Enfrastrikti kòm kòd.
  • Pratik separe pou kenbe fyab, bati nan DevOps.
  • Yon pratik fidbak ki dekri li tout.

Ki sa ki DevOps

Ou ka sèvi ak dyagram sa a, mete aksan sou ladan l sa ou deja genyen nan konpayi ou nan kèk fòm: li devlope oswa li toujou bezwen devlope.

Li pral fini nan yon koup de semèn DevOpsConf 2019. kòm yon pati nan RIT++. Vini nan konferans lan, kote w ap jwenn anpil bon rapò sou livrezon kontinyèl, enfrastrikti kòm kòd ak transfòmasyon DevOps. Liv tikè ou yo, dènye dat limit pri a se 20 me

Sous: www.habr.com

Add nouvo kòmantè