Cosa hè DevOps

A definizione di DevOps hè assai cumplessa, cusì avemu da principià a discussione annantu à tuttu ogni volta. Ci sò mille publicazioni nantu à questu tema solu nantu à Habré. Ma se leghjite questu, probabilmente sapete ciò chì DevOps hè. Perchè ùn sò micca. Salutu u mo nome hè Alexander Titov (@osminog), è avemu da parlà solu di DevOps è sparteraghju a mo sperienza.

Cosa hè DevOps

Pensu per un bellu pezzu nantu à cumu fà a mo storia utile, cusì ci saranu parechje dumande quì - quelli chì mi dumandu è quelli chì dumandu à i clienti di a nostra cumpagnia. Rispondendu à queste dumande, a capiscitura diventa megliu. Vi dicu perchè DevOps hè necessariu da u mo puntu di vista, ciò chì hè, di novu, da u mo puntu di vista, è cumu si capisce chì vo site torna versu DevOps da u mo puntu di vista. L'ultimu puntu serà attraversu e dumande. Rispondendu per sè stessu, pudete capisce se a vostra cumpagnia si move versu DevOps o s'ellu ci sò prublemi in qualchì modu.


À un tempu stava cavalcà l'onda di fusioni è acquisti. Prima, aghju travagliatu per una piccula startup chjamata Qik, dopu hè stata compru da una cumpagnia un pocu più grande chjamata Skype, chì hè stata compru da una cumpagnia un pocu più grande chjamata Microsoft. À quellu mumentu, aghju cuminciatu à vede cumu l'idea di DevOps si trasfurmava in cumpagnie di diverse dimensioni. Dopu quì, aghju avutu interessatu à circà à DevOps da u puntu di vista di u mercatu, è i mo culleghi è aghju fundatu a cumpagnia Express 42. Dapoi 6 anni avemu statu mossu longu l'onda di u mercatu.

Frà altre cose, sò unu di l'urganizatori di a cumunità DevOps Mosca è l'urganizatore di DevOps-Days 2017, ma ùn aghju micca urganizatu 2018. Express 42 travaglia cù parechje cumpagnie. Crescemu DevOps quì, fighjate cumu succede, tiranu cunclusioni, analizà, dite à tutti e nostre cunclusioni, è furmà e persone in pratiche DevOps. In generale, facemu u nostru megliu per aumentà a nostra sperienza è sapè fà in questu sensu.

Perchè DevOps

A prima quistione chì persegue tutti è sempre hè - perchè? Parechje persone pensanu chì DevOps hè solu l'automatizazione o una cosa simili chì ogni cumpagnia hà digià avutu.

- Avemu avutu l'Integrazione Continua - questu significa chì avemu digià avutu DevOps, è perchè tuttu questu hè necessariu? Si divertenu fora, ma ci impediscenu di travaglià !

Più di 9 anni di sviluppu di a cumunità è di a metodulugia, hè digià diventatu chjaru chì questu ùn hè ancu micca cummercializazione di glitter, ma ùn hè ancu micca chjaru perchè hè necessariu. Cum'è qualsiasi strumentu è prucessu, DevOps hà scopi specifichi chì in fine ghjunghje.

Tuttu chistu hè duvuta à u fattu chì u mondu hè cambiatu. Si alluntanassi da l'avvicinamentu di l'impresa, quandu l'imprese si movenu direttamente versu un sognu, cum'è u nostru classicu di San Petruburgu cantava, da u puntu A à u puntu B secondu una certa strategia, cù una certa struttura custruita per questu.

Cosa hè DevOps

In principiu, tuttu in l'IT deve esse custruitu secondu questu approcciu. Quì l'IT hè aduprata solu per automatizà i prucessi.

L'automatizazione ùn cambia micca spessu, perchè quandu una sucietà scende in un rut ben battutu, chì ci hè da cambià? Funziona - ùn tocca micca. Avà l'avvicinamenti in u mondu cambianu, è quellu chjamatu Agile suggerisce chì u puntu finale B ùn hè micca immediatamente visibile.

Cosa hè DevOps

Quandu una cumpagnia passa per u mercatu, travaglia cù un cliente, esplora constantemente u mercatu è cambia u puntu finale B. Inoltre, più spessu a cumpagnia cambia a so direzzione, u più successu hè in fine, perchè sceglie più mercatu. nicchie.

A strategia hè dimustrata da una cumpagnia interessante chì aghju amparatu pocu tempu. One Box Shave hè un serviziu di consegna di abbunamentu per rasoi è accessori di rasatura in una scatula. Sapenu cumu persunalizà a so "scatola" per diversi clienti. Questu hè fattu da un certu software, chì poi manda l'ordine à a fabbrica coreana chì pruduce a merchenzie.

Stu pruduttu hè statu compru da Unilever per $ 1 miliardi. Avà compite cù Gillette è hà pigliatu una parte significativa di i cunsumatori in u mercatu americanu. One Box Shave dice:

- 4 lame ? Sii seriamente? Perchè avete bisognu di questu - ùn migliurà a qualità di a rasatura. Una crema, una fragranza apposta è una rasoia di alta qualità cù duie lame risolve assai più prublemi chè quelle stupide 4 lame Gillette ! Arriveremu à 10 prestu ?

Hè cusì chì u mondu cambia. Unilever dichjara chì anu un sistema IT cool chì vi permette di fà questu. In fine, pare un cuncettu Tempu à u mercatu, chì nimu hà digià parlatu.

Cosa hè DevOps

U puntu di Time-to-market ùn hè micca quantu spessu avemu implementatu. Pudete spessu implementà, ma i cicli di liberazione seranu longu. Se i cicli di liberazione di trè mesi sò sovrapposti l'un à l'altru, trasfirendu da una settimana, risulta chì a cumpagnia pare esse implementata una volta à settimana. È da l'idea à l'implementazione finale ci vole 3 mesi.

U tempu di u mercatu hè di minimizzà u tempu da l'idea à l'implementazione finale.

In questu casu, u software interagisce cù u mercatu. Questu hè cumu u situ web di One Box Shave interagisce cù u cliente. Ùn anu micca venditori - solu un situ web induve i visitatori cliccà è lascianu i desideri. Per quessa, qualcosa di novu deve esse constantemente publicatu in u situ è ​​aghjurnatu in cunfurmità cù i desideri. Per esempiu, in Corea di u Sudu si rasavanu in modu diversu chì in Russia, è li piace l'odore micca di pinu, ma, per esempiu, di carotte è vaniglia.

Siccomu hè necessariu di cambià rapidamente u cuntenutu di u situ, u sviluppu di software cambia assai. Per mezu di u software avemu da sapè ciò chì u cliente vole. Precedentemente, avemu amparatu questu per mezu di alcuni modi rotondi, per esempiu, attraversu a gestione di l'imprese. Allora l'avemu cuncepitu, mettimu i requisiti in u sistema IT, è tuttu era cool. Avà hè diversu - u software hè cuncepitu da tutti quelli chì participanu à u prucessu, cumpresi l'ingegneri, perchè per mezu di e specificazioni tecniche amparanu cumu funziona u mercatu è sparte ancu e so insights cù l'affari.

Per esempiu, in Qik avemu imparatu di colpu chì a ghjente hà veramente piaciutu à caricate liste di contatti à u servitore, è ci anu furnitu una applicazione. In principiu ùn avemu micca pensatu à questu. In una cumpagnia classica, ognunu avaria decisu chì questu era un bug, postu chì a spec ùn hà micca dettu chì duverebbe travaglià bè è era generalmente implementatu nantu à u ghjinochju, avarianu disattivatu a funzione è hà dettu: "Nimu hà bisognu di questu, u più impurtante hè chì a funziunalità principale travaglia. " . È a cumpagnia di tecnulugia vede questu cum'è una opportunità è cumencia à cambià u software in cunfurmità cù questu.

Cosa hè DevOps

In u 1968, un omu visionariu, Melvin Conway, formulò a seguente idea.

L'urganizazione chì crea u sistema hè limitata da un disignu chì replica a struttura di cumunicazione di quella urganizazione.

In più detail, per pruduce sistemi di un tipu diversu, duvete ancu avè una struttura di cumunicazione in una cumpagnia di un altru tipu. Se a vostra struttura di cumunicazione hè in cima gerarchica, questu ùn vi permetterà micca di creà sistemi chì ponu furnisce un indicatore di Time-to-Market assai altu.

Leghjite nantu à a lege di Conwayvia ligami. Hè impurtante per capiscenu a cultura o a filosofia DevOps perchè l'unicu ciò chì cambia fundamentalmente in DevOps hè a struttura di cumunicazione trà e squadre.

Da u puntu di vista di u prucessu, prima di DevOps, tutte e tappe: analitiche, sviluppu, teste, operazione, eranu lineari.Cosa hè DevOps
In u casu di DevOps, tutti issi prucessi sò simultaneamente.

Cosa hè DevOps

Time-to-market hè l'unicu modu chì pò esse fattu. Per e persone chì anu travagliatu in u vechju prucessu, questu pare un pocu cosmicu, è in generale cusì cusì.

Allora perchè avete bisognu di DevOps?

Per u sviluppu di produttu digitale. Se a vostra cumpagnia ùn hà micca un pruduttu digitale, DevOps ùn hè micca necessariu - hè assai impurtante.

DevOps supera e limitazioni di velocità di a produzzione di software sequenziale. In questu, tutti i prucessi sò simultaneamente.

A difficultà aumenta. Quandu l'evangelisti DevOps vi dicenu chì vi farà più faciule per liberà u software, questu hè un scioccu.

Cù DevOps, e cose saranu solu più complicate.

À a cunferenza in u stand d'Avito, pudete vede ciò chì era cum'è implementà un containeru Docker - un compitu irrealisticu. A cumplessità diventa pruibitiva; duvete juggle parechje boli à u stessu tempu.

DevOps cambia cumplettamente u prucessu è l'urganizazione in a cumpagnia - più precisamente, ùn hè micca DevOps chì cambia, ma u pruduttu digitale. Per vene à DevOps, avete sempre bisognu di cambià completamente stu prucessu.

Dumande per un specialista

Chì avete ? Quistioni chì pudete dumandà sè stessu mentre travaglia in una cumpagnia è si sviluppa cum'è specialista.

Avete una strategia per creà un pruduttu digitale? S'ellu ci hè, hè digià bonu. Questu significa chì a vostra cumpagnia si move versu DevOps.

A vostra cumpagnia hè digià criendu un pruduttu digitale? Questu significa chì pudete alzà un altru livellu più altu è fà e cose più interessanti - novu da u puntu di vista DevOps. Parlu solu da stu puntu di vista.

A vostra cumpagnia hè unu di i capi di u mercatu in u niche di produttu digitale? Spotify, Yandex, Uber sò cumpagnie chì sò in u piccu di u prugressu tecnologicu avà.

Fate ste dumande, è se tutte e risposte sò micca, allora forse ùn deve micca fà DevOps in questa cumpagnia. Se u tema di DevOps hè veramente interessante per voi, forsi... duvete traslassi à una altra cumpagnia? Se a vostra cumpagnia vole entre in DevOps, ma avete rispostu "No" à tutte e dumande, allora hè cum'è quellu bellu rinoceronte chì ùn cambia mai.

Cosa hè DevOps

associazione

Comu dissi, secondu a Legge di Conway, l'urganizazione di una cumpagnia cambia. Cumincià cù ciò chì impedisce à DevOps di penetrà in a cumpagnia da u puntu di vista di l'urganizazione.

U prublema di "pozzi"

A parolla inglesa "Silo" hè tradutta quì in Russu cum'è "bene". U puntu di stu prublema hè chì ùn ci hè micca scambiu d'infurmazioni trà squadre. Ogni squadra scava in u so sapè fà, senza custruisce una mappa cumuna per navigà.

In certi modi, questu mi ricorda di una persona chì hè ghjustu ghjunta in Mosca è ùn sapi ancu cumu navigà in a mappa di u metro. I Moscoviti sò generalmente cunnosci assai bè a so zona, è in tutta Mosca ponu navigà cù a mappa di u metro. Quandu vene in Mosca per a prima volta, ùn avete micca sta cumpetenza, è site solu disorientatu.

DevOps suggerisce di passà stu mumentu di disorientazione è tutti i dipartimenti chì travaglianu inseme per custruisce una mappa di interazione cumuna.

Dui fattori impediscenu questu.

Consequenza di u sistema di gestione corporativa. Hè custruitu in "pozzi" gerarchichi separati. Per esempiu, ci sò certi KPI in cumpagnie chì sustene stu sistema. Per d 'altra banda, u cervellu di una persona chì trova difficiuli di passà oltre i limiti di a so cumpetenza è di navigà in tuttu u sistema si mette in u modu. Hè solu scomodu. Imagine chì site in l'aeroportu di Bangkok - ùn truverete micca u vostru modu rapidamente. DevOps hè ancu difficiule di navigà, è hè per quessa chì a ghjente dice chì avete bisognu di truvà una guida per ghjunghje.

Ma u più impurtante hè chì u prublema di "pozzi" per un ingegnere chì hè impregnatu di u spiritu di DevOps, hà lettu Fowler è una mansa di altri libri, hè spressione in u fattu chì "pozzi" ùn permettenu micca di fà cose "evidenti".. Spessu ci riunitemu dopu DevOps Mosca, parlemu l'un l'altru, è a ghjente si lamenta:

- Vuliamu solu lancià CI, ma hè risultatu chì a gestione ùn avia micca bisognu.

Questu succede precisamente perchè CI и Prucessu di consegna cuntinuu sò à u cunfini di parechji esami. Simply senza superà u prublema di "pozzi" à u livellu di l'urganisazione, ùn puderete micca avanzà, ùn importa ciò chì fate è ùn importa micca quantu hè tristu.

Cosa hè DevOps

Ogni participante in u prucessu in a cumpagnia: backend è sviluppatori di frontend, testing, DBA, operazione, rete, scava in a so propria direzzione, è nimu hà una mappa cumuna eccettu u manager, chì in qualchì modu li monitora è li gestisce cù u "divide". è cunquistà u metudu.

A ghjente si batte per qualchi stelle o bandiere, ognunu scava a so cumpetenza.

In u risultatu, quandu u compitu nasce di cunnette tuttu questu inseme è di custruisce un pipeline cumunu, è ùn ci hè più bisognu di luttà per stelle è bandiere, a quistione hè - chì fà in ogni modu? Avemu bisognu à un accordu di qualchì manera, ma nimu ci hà amparatu cumu fà questu in a scola. Ci hè statu insignatu dapoi a scola : a ottava - wow ! - paragunatu à u settimu gradu ! Hè u listessu quì.

Hè u listessu in a vostra cumpagnia?

Per verificà questu, pudete dumandà sè stessu e seguenti dumande.

E squadre utilizanu strumenti cumuni è cuntribuiscenu à i cambiamenti à quelli strumenti cumuni?

Quantu spessu si riorganizzanu e squadre - certi specialisti da una squadra si movenu à un altru squadra? Hè in un ambiente DevOps chì questu diventa normale, perchè qualchì volta una persona ùn pò micca capisce ciò chì un altru spaziu di sapè fà. Si trasfirìu in un altru dipartimentu, ci travaglia duie simane per creà per ellu stessu una mappa di l'orientazione è l'interazzione cù stu dipartimentu.

Hè pussibule di formà un cumitatu di cambiamentu è cambià e cose? O hè bisognu di a manu forte di a più alta gestione è direzzione? Recentemente aghju scrittu annantu à Facebook cumu un bancu pocu cunnisciutu implementa strumenti per l'ordine: scrivimu un ordine, l'implementemu per un annu, è vede ciò chì succede. Questu, sicuru, hè longu è tristu.

Quantu hè impurtante per i gestori di riceve rializazioni persunali senza cunsiderà i rializazioni di a cumpagnia?

Sè vo risponde à sti dumanni per sè stessu, diventerà più chjaru se avete un tali prublema in a vostra cumpagnia.

Infrastruttura cum'è codice

Dopu chì stu prublema hè passatu, a prima pratica impurtante, senza quale hè difficiule di avanzà più in DevOps, hè infrastruttura cum'è codice.

A maiò spessu, l'infrastruttura cum'è codice hè percivuta cusì:

- Automatizemu tuttu in bash, copremu cù script per chì l'amministratori anu menu travagliu manuale!

Ma questu ùn hè micca veru.

Infrastruttura cum'è codice significa chì discrivite u sistema IT chì travagliate in forma di codice per capiscenu sempre u so statu.

Inseme cù altre squadre, crea una mappa in forma di codice chì tutti ponu capisce è ponu navigà è navigà. Ùn importa micca ciò chì hè fattu - Chef, Ansible, Salt, o utilizendu i schedari YAML in Kubernetes - ùn ci hè micca differenza.

À a cunferenza, un cullega di 2GIS hà dettu cumu anu fattu a so propria cosa interna per Kubernetes, chì descrive a struttura di i sistemi individuali. Per discrive i sistemi 500, avianu bisognu di un strumentu separatu chì genera sta descrizzione. Quandu ci hè sta descrizzione, ognunu pò cuntrollà cun l'altri, monitorà i cambiamenti, cumu cambià è migliurà, ciò chì manca.

D'accordu, i scripts bash individuali di solitu ùn furnisce micca stu capitu. In una di l'imprese induve aghju travagliatu, ci era ancu un nome per script "scrittu solu" - quandu u script hè scrittu, ma ùn hè più pussibule di leghje. Pensu chì questu hè cunnisciutu ancu per voi.

Infrastruttura cum'è codice hè codice chì descrive u statu attuale di l'infrastruttura. Parechje squadre di produttu, infrastruttura è serviziu travaglianu inseme nantu à stu codice, è più impurtante, tutti anu bisognu di capiscenu cumu funziona stu codice.

U codice hè mantinutu secondu e megliu pratiche di codice: sviluppu cumuni, rivisione di codice, XP-programmazione, teste, richieste di pull, CI per infrastrutture di codice - tuttu questu hè adattatu è pò esse usatu.

U codice diventa una lingua cumuna per tutti l'ingegneri.

U cambiamentu di l'infrastruttura in u codice ùn porta micca assai tempu. Iè, u codice di l'infrastruttura pò ancu avè u debitu tecnicu. Di solitu i squadre si scontranu un annu è mezu dopu avè cuminciatu à implementà "infrastruttura cum'è codice" in forma di una mansa di scripts o ancu Ansible, chì scrivenu cum'è codice spaghetti, è aghjunghjenu ancu bash scripts in u mischju!

impurtanti: Se ùn avete micca pruvatu ancu sta roba, ricordate chì Ansible ùn hè micca bash! Leghjite a documentazione cù cura, studià ciò chì scrivenu nantu à questu.

L'infrastruttura cum'è codice hè a separazione di u codice di l'infrastruttura in strati separati.

In a nostra cumpagnia, distinguemu 3 strati basi, chì sò assai chjaru è simplice, ma pò esse più di elli. Pudete vede u vostru codice di infrastruttura è dite s'ellu avete sta cundizione o micca. Se ùn ci sò micca strati evidenziati, allora avete bisognu di piglià un pocu di tempu è refactor un pocu.
Cosa hè DevOps

strata di basa - questu hè cumu u SO, i backups è altre cose di livellu bassu sò cunfigurati, per esempiu, cumu Kubernetes hè implementatu à u livellu basu.

Livellu di serviziu - Quessi sò i servizii chì furnite à u sviluppatore: logging as a service, monitoring as a service, database as a service, balancer as a service, queue as a service, Continuous Delivery as a service - una mansa di servizii chì i squadre individuali pò furnisce u sviluppu. Tuttu chistu deve esse descrittu in moduli separati in u vostru sistema di gestione di cunfigurazione.

U stratu induve l'applicazioni sò fatte è descrive cumu si sparghjeranu nantu à i dui strati precedenti.

Quistioni di cuntrollu

A vostra cumpagnia hà un repositoriu infrastruttura cumuni? Gestite u debitu tecnicu in a vostra infrastruttura? Aduprate pratiche di sviluppu in un repository di infrastruttura? A vostra infrastruttura hè tagliata in strati? Pudete cuntrollà u schema Base-service-APP. Quantu hè difficiule di fà un cambiamentu?

Sè avete avutu chì hà pigliatu un ghjornu è mezu per fà cambiamenti, questu significa chì avete un debitu tecnicu è bisognu di travaglià cun ellu. Avete appena sbattutu nantu à un rake di debitu tecnicu in u vostru codice di infrastruttura. M'arricordu di parechje storie cusì quandu, per cambià qualchì CCTL, avete bisognu di riscrive a mità di u codice di l'infrastruttura, perchè a creatività è u desideriu di automatizà tuttu hà purtatu à u fattu chì tuttu hè corrodutu in ogni locu, tutti i manichi sò stati eliminati, è hè necessariu di refactor.

Consegna cuntinuu

Comparamu u debitu cù u creditu. Prima vene una descrizzione di l'infrastruttura, chì pò esse abbastanza basica. Ùn avete micca bisognu di descrizzione di tuttu in dettagliu, ma qualchì descrizzione di basa hè necessaria per pudè travaglià cun ella. Altrimenti, ùn hè micca chjaru ciò chì deve fà cù a consegna cuntinua dopu. Tutte queste pratiche si sviluppanu simultaneamente quandu venite à DevOps, ma cumencia cù capisce ciò chì avete è cumu gestisce. Questu hè precisamente a pratica di l'infrastruttura cum'è codice.

Una volta diventa chjaru chì l'avete è cumu gestisce, avete principiatu à capisce cumu mandà u codice di sviluppatore à a produzzione u più prestu pussibule. Vogliu dì inseme cù u sviluppatore - ricurdemu di u prublema di "pozzi", vale à dì, ùn sò micca persone individuali chì venenu cun questu, ma una squadra.

Quandu simu cun Vania Evtukhovich vistu u primu libru Ghjè umile e gruppi di autori "Consegna cuntinuu", chì hè stata liberata in u 2009, avemu pensatu per un bellu pezzu cumu per traduce u so tìtulu in russo. Vulìanu traduzzione cum'è "Consegna constantemente", ma, sfurtunatamenti, hè statu traduttu cum'è "Consegna cuntinuu". Mi pari chì ci hè qualcosa di Russu in u nostru nome, cù pressione.

Cunsigliu di furnisce i mezi

U codice chì hè in u repositoriu di u produttu pò sempre esse scaricatu à a produzzione. Pò esse micca deflated, ma hè sempre prontu per questu. In cunsiquenza, scrivite sempre codice cù un sensu difficiuli di spiegà di qualchì ansietà sottu u vostru coccige. Spessu apparisce quandu stende u codice di l'infrastruttura. Stu sensu di qualchì ansietà deve esse presente - attiva i prucessi cerebrali chì permettenu di scrive codice un pocu sfarente. Questu deve esse registratu in e regule in u sviluppu.

Per furnisce in modu coerente, avete bisognu di un formatu di artefattu chì corre in una piattaforma di infrastruttura. Sè vo lanciate "rifiuti di vita" di diversi furmati in una piattaforma infrastrutturali, tandu diventa unificatu, hè difficiule di mantene, è u prublema di u debitu tecnicu sorge. U furmatu di l'artefattu deve esse allinatu - questu hè ancu un compitu cullettivu: tutti avemu bisognu di riunite, rustle u nostru cervellu è vene cun stu formatu.

L'artefattu hè migliuratu continuamente è cambia per adattà à l'ambiente di produzzione mentre si move attraversu u pipeline di consegna. Quandu un artefattu si move longu u pipeline, scontra constantemente alcune cose chì sò inconvenienti per ellu, chì sò simili à ciò chì l'artefattu chì mette in a produzzione scontri. Se in u sviluppu classicu questu hè fattu da un amministratore di u sistema chì face u rollout, allora in u prucessu DevOps questu succede sempre: quì l'anu pruvatu cù qualchi teste, quì l'hanu ghjittatu in un cluster Kubernetes, chì hè più o menu simili. à a pruduzzione, poi di colpu cuminciaru a prova di carica.

Questu hè un pocu reminiscente di u ghjocu Pac-Man - l'artefattu passa per una certa storia. À u listessu tempu, hè impurtante di cuntrullà se u codice passa in realtà à traversu a storia è s'ellu hè in qualchì manera ligata à a vostra pruduzzione. E storie da a produzzione ponu esse trascinate in u prucessu di Consegna Continua: era cusì quandu qualcosa hè cascatu, avà prugramemu solu stu scenariu in u sistema. Ogni volta chì u codice passerà ancu per questu scenariu, è ùn avete micca scontru stu prublema a prossima volta. Ampararete assai prima ch'ellu ghjunghje à u vostru cliente.

Diverse strategie di implementazione. Per esempiu, aduprate AB testing o dispiegamenti canarini per pruvà u codice in modu diversu nantu à i clienti diffirenti, uttene infurmazioni nantu à cumu funziona u codice, è assai prima di quandu hè spargugliatu à 100 milioni d'utilizatori.

"Consegna in modu coerente" pare cusì.

Cosa hè DevOps

U prucessu di consegna Dev, CI, Test, PreProd, Prod ùn hè micca un ambiente separatu, questi sò tappe o stazioni cù sume ignifughi per quale u vostru artefattu passa.

Sè vo avete codice infrastruttura chì hè descritta cum'è Base Service APP allora aiuta ùn vi scurdate di tutti i script, è scrivite cum'è codice per questu artefattu, prumove l'artefattu è cambiate mentre andate.

Dumande d'autotest

U tempu da a descrizzione di e funzioni à a liberazione in produzzione in u 95% di i casi hè menu di una settimana? A qualità di l'artefattu migliurà in ogni tappa di u pipeline? Ci hè una storia chì passa? Aduprate diverse strategie di implementazione?

Sì tutte e risposte sò sì, allora site incredibilmente cool! Scrivite e vostre risposte in i cumenti - seraghju cuntentu).

Обратная связь

Questa hè a pratica più difficiule di tutti. À a cunferenza di DevOpsConf, un cullega di Infobip, parlendu di questu, era un pocu cunfusu in e so parolle, perchè questu hè veramente una pratica assai cumplessa nantu à u fattu chì avete bisognu di monitorà tuttu!

Cosa hè DevOps

Per esempiu, assai tempu fà, quandu aghju travagliatu in Qik è avemu capitu chì avemu bisognu di monitorà tuttu. Avemu fattu questu, è avemu avà 150 000 articuli in Zabbix, chì sò monitorati constantemente. Era spaventosa, u direttore tecnicu torce u so dettu à u so tempiu:

- Ragazzi, perchè viole u servitore cù qualcosa chì ùn hè micca chjaru?

Ma dopu hè accadutu un incidente chì hà dimustratu chì questu hè veramente una strategia assai cool.

Unu di i servizii hà cuminciatu à crash constantemente. Inizialmente, ùn hà micca crash, chì hè interessante, u codice ùn hè micca aghjustatu quì, perchè era un broker basicu, chì ùn avia praticamenti micca funziunalità cummerciale - simpricimenti mandò missaghji trà servizii individuali. U serviziu ùn hà micca cambiatu per 4 mesi, è di colpu hà cuminciatu à crash cù l'errore "Segmentation fault".

Ci hè statu scuncutu, hà apertu i nostri charts in Zabbix, è hè statu chì una settimana è mezza fà, u cumpurtamentu di e dumande in u serviziu API chì stu broker usa hà cambiatu assai. Dopu avemu vistu chì a freccia di mandà un certu tipu di missaghju hà cambiatu. Dopu avemu scupertu chì questi eranu clienti Android. Avemu dumandatu:

- Ragazzi, chì vi hè accadutu una settimana è mezu fà ?

In risposta, avemu intesu una storia interessante nantu à cumu avianu riprogettatu l'UI. Hè improbabile chì qualcunu dicia immediatamente chì hà cambiatu a biblioteca HTTP. Per i clienti Android, hè cum'è cambià u sapone in u bagnu - solu ùn si ricordanu micca. In u risultatu, dopu à 40 minuti di cunversazione, avemu scupertu chì avianu cambiatu a biblioteca HTTP, è i so tempi predeterminati anu cambiatu. Questu hà purtatu à u cambiamentu di u cumpurtamentu di u trafficu in u servitore API, chì hà purtatu à una situazione chì hà causatu una corsa in u broker, è hà cuminciatu à crash.

Senza un surviglianza prufonda hè generalmente impussibile di apre questu. Se l'urganizazione hà sempre u prublema di "pozzi", quandu tutti si tiranu soldi à l'altru, questu pò campà per anni. Simply restart u servitore perchè hè impussibile di risolve u prublema. Quandu seguite, seguite, seguite tutti l'avvenimenti chì avete, è utilizate u monitoraghju cum'è teste - scrivite codice è indicà immediatamente cumu monitorà, ancu in forma di codice (avemu digià l'infrastruttura cum'è codice), tuttu diventa chjaru cumu. nantu à a palma. Ancu tali prublemi cumplessi sò facilmente tracciati.

Cosa hè DevOps

Cullate tutte l'infurmazioni nantu à ciò chì succede à l'artefattu in ogni tappa di u prucessu di consegna - micca in produzzione.

Caricate u monitoraghju à CI, è alcune cose basi seranu digià visibili quì. In seguitu li viderete in Test, PredProd, è test di carica. Raccoglie l'infurmazioni in tutte e tappe, micca solu metriche, statistiche, ma ancu logs: cumu si sviluppa l'applicazione, anomalie - recullate tuttu.

Altrimenti, serà difficiule di capisce. Aghju digià dettu chì DevOps hè più cumplessu. Per affruntà sta cumplessità, avete bisognu di analitiche normali.

Quistioni per l'autocontrollu

Hè u vostru monitoraghju è logging u strumentu di sviluppu per voi? Quandu scrivite u codice, i vostri sviluppatori, cumpresu voi, pensanu à cumu monitorà?

Avete intesu parlà di prublemi da i clienti? Capisci u cliente megliu da u monitoraghju è u logu? Capisci u sistema megliu da u monitoraghju è u logu? Cambia u sistema solu perchè avete vistu chì a tendenza in u sistema hè crescente è capisce chì in altre 3 simane tuttu morirà?

Una volta avete questi trè cumpunenti, pudete pensà à quale tipu di piattaforma infrastrutturali avete in a vostra cumpagnia.

Piattaforma di l'infrastruttura

U puntu ùn hè micca chì hè un inseme di strumenti disparati chì ogni cumpagnia hà.

U puntu di una piattaforma infrastrutturali hè chì tutte e squadre utilizanu sti strumenti è sviluppanu inseme.

Hè chjaru chì ci sò squadre separati chì sò rispunsevuli di u sviluppu di pezzi individuali di a piattaforma infrastrutturali. Ma à u listessu tempu, ogni ingegnere hè rispunsevule per u sviluppu, u rendiment è a prumuzione di a piattaforma infrastrutturale. À u livellu internu, diventa un strumentu cumuni.

Tutte e squadre sviluppanu a piattaforma di l'infrastruttura è trattanu cun cura cum'è u so propiu IDE. In u vostru IDE installate diversi plugins per fà tuttu piacevule è veloce, è cunfigurà hotkeys. Quandu avete apertu Sublime, Atom o Visual Studio Code, l'errore di u codice sò versate è capite chì hè impussibile di travaglià in tuttu, vi sentite immediatamente tristi è corre per riparà u vostru IDE.

Trattate a vostra piattaforma infrastrutturale di listessa manera. Se capisce chì ci hè qualcosa di sbagliatu, lasciate una dumanda se ùn pudete micca riparà sè stessu. S'ellu ci hè qualcosa di simplice, edità da voi stessu, mandate una dumanda di pull, i picciotti a cunsiderà è aghjunghje. Questu hè un accostu un pocu sfarente à l'arnesi di ingegneria in u capu di u sviluppatore.

A piattaforma di l'infrastruttura assicura u trasferimentu di l'artefattu da u sviluppu à u cliente cun una migliione continua di a qualità. L'IP hè programatu cù un inseme di storie chì succede à u codice in produzzione. Nantu à l'anni di u sviluppu, ci sò assai di sti stori, alcuni di elli sò unichi è riguardanu solu à voi - ùn ponu micca esse Googled.

À questu puntu, a piattaforma di infrastruttura diventa u vostru vantaghju cumpetitivu, perchè hà qualcosa integrata in questu chì ùn hè micca in u strumentu di u cuncurrente. A più profonda u vostru IP, u più grande u vostru vantaghju cumpetitivu in termini di Time-to-market. Apparisce quì prublema di serratura di u venditore: Pudete piglià a piattaforma di qualcunu altru, ma aduprendu l'esperienza di qualcunu altru, ùn capirete micca quantu hè pertinente per voi. Iè, micca ogni cumpagnia pò custruisce una piattaforma cum'è Amazon. Questa hè una linea difficiule induve l'esperienza di a cumpagnia hè pertinente à a so pusizioni in u mercatu, è ùn pudete micca aduprà una serratura di u venditore. Questu hè ancu impurtante per pensà.

U schema

Questu hè un diagramma basicu di una piattaforma di infrastruttura chì vi aiuterà à stabilisce tutte e pratiche è i prucessi in una cumpagnia DevOps.

Cosa hè DevOps

Fighjemu in ciò chì hè custituitu.

Sistema di orchestrazione di risorse, chì furnisce CPU, memoria, discu à l'applicazioni è altri servizii. In cima à questu - servizii di livellu bassu: surviglianza, logging, CI/CD Engine, almacenamiento di artefatti, infrastruttura cum'è codice di sistema.

I servizii di livellu più altu: basa di dati cum'è serviziu, fila cum'è serviziu, Load Balance cum'è serviziu, ridimensionamentu di l'imagine cum'è serviziu, fabbrica di Big Data cum'è serviziu. In cima à questu - pipeline chì furnisce un codice constantemente mudificatu à u vostru cliente.

Ricevete infurmazione nantu à cumu u vostru software funziona per u cliente, cambiallu, furnisce stu codice di novu, riceve infurmazione - è cusì sviluppate constantemente sia a piattaforma di l'infrastruttura sia u vostru software.

In u diagramma, u pipeline di consegna hè custituitu da parechje tappe. Ma questu hè un schema schematicu chì hè datu cum'è un esempiu - ùn hè micca bisognu di ripetiri unu per unu. I tappe interagiscenu cù i servizii cum'è s'ellu eranu servizii - ogni mattone di a piattaforma porta a so propria storia: cumu si sò attribuiti e risorse, cumu l'applicazione hè lanciata, travaglia cù risorse, hè monitoratu è cambia.

Hè impurtante di capisce chì ogni parte di a piattaforma porta una storia, è dumandate chì storia porta stu mattone, forse si deve esse ghjittatu è rimpiazzatu cù un serviziu di terzu. Per esempiu, hè pussibule installà Okmeter invece di un brick? Forsi i picciotti anu digià sviluppatu sta cumpetenza assai più chè noi. Ma forse micca - forse avemu una sperienza unica, avemu bisognu di stallà Prometheus è di sviluppà più.

Creazione di a piattaforma

Questu hè un prucessu di cumunicazione cumplessu. Quandu avete pratichi basi, cuminciate a cumunicazione trà diversi ingegneri è specialisti chì sviluppanu esigenze è standard, è cambianu constantemente à diversi strumenti è approcci. A cultura chì avemu in DevOps hè impurtante quì.

Cosa hè DevOps
Cù a cultura tuttu hè assai simplice - si tratta di cullaburazione è cumunicazione, vale à dì, u desideriu di travaglià in un campu cumunu cù l'altri, u desideriu di manighjà un strumentu inseme. Ùn ci hè micca una scienza rocket quì - tuttu hè assai simplice, banale. Per esempiu, tutti campemu in l'entrata è mantenenu limpiu - un tali livellu di cultura.

Chì avete ?

In novu, dumande chì pudete dumandà sè stessu.

A piattaforma di l'infrastruttura hè dedicata? Quale hè rispunsevule per u so sviluppu? Capisci i vantaghji competitivi di a vostra piattaforma di infrastruttura?

Avete bisognu di dumandà sti dumande constantemente. Se qualcosa pò esse trasferitu à servizii di terzu, deve esse trasferitu; se un serviziu di terzu principia à bluccà u vostru muvimentu, allora avete bisognu di custruisce un sistema in sè stessu.

Allora, DevOps...

... questu hè un sistema cumplessu, deve avè:

  • Pruduttu digitale.
  • Moduli di cummerciale chì sviluppanu stu pruduttu digitale.
  • Squadre di produttu chì scrive u codice.
  • Pratiche di consegna cuntinuu.
  • Piattaforme cum'è serviziu.
  • Infrastruttura cum'è serviziu.
  • Infrastruttura cum'è codice.
  • Pratiche separate per mantene l'affidabilità, integrate in DevOps.
  • Una pratica di feedback chì descrive tuttu.

Cosa hè DevOps

Pudete aduprà stu diagramma, mettendu in risaltu ciò chì avete digià in a vostra cumpagnia in una certa forma: hà sviluppatu o deve esse sviluppatu.

Sarà finitu in un paru di settimane DevOpsConf 2019. cum'è parte di RIT++. Venite à a cunferenza, induve truverete assai rapporti interessanti nantu à a consegna cuntinuu, l'infrastruttura cum'è codice è a trasformazione DevOps. Riservate i vostri biglietti, l'ultimu termini di prezzu hè u 20 di maghju

Source: www.habr.com

Add a comment