Guida DevOps per i principianti

Chì ghjè l'impurtanza di DevOps, ciò chì significa per i prufessiunali IT, descrizzione di metudi, frameworks è arnesi.

Guida DevOps per i principianti

Hè accadutu assai postu chì u terminu DevOps hà pigliatu in u mondu IT. Cù a maiò parte di l'ecosistema open source, hè impurtante ricunsiderà perchè questu hè principiatu è ciò chì significa per una carriera in IT.

Cosa hè DevOps

Mentre ùn ci hè micca una definizione unica, crede chì DevOps hè un framework tecnologicu chì permette a cullaburazione trà e squadre di sviluppu è e squadre di operazioni per implementà u codice più rapidamente in ambienti di produzzione cù a capacità di riplicà è automatizà. Passeremu u restu di l'articulu à unpacking sta dichjarazione.

A parolla "DevOps" hè una cumminazione di e parolle "sviluppu" (sviluppu) è "operazioni" (operazioni). DevOps aiuta à accelerà a consegna di applicazioni è servizii. Questu permette à l'urganisazioni di serve in modu efficace i so clienti è diventanu più cumpetitivi in ​​u mercatu. Simply put, DevOps hè circa l'allineamentu trà u sviluppu è l'operazioni IT, cù una megliu cumunicazione è cullaburazione.

DevOps prevede una cultura induve a cullaburazione trà squadre di sviluppu, operatori è squadre cummerciale hè cunsiderata critica. Ùn si tratta micca solu di strumenti, perchè DevOps in una urganizazione furnisce sempre valore à i clienti. L'arnesi sò unu di i so pilastri, cù e persone è i prucessi. DevOps aumenta a capacità di l'urganisazioni per furnisce soluzioni di alta qualità in u più brevi tempu pussibule. DevOps automatizza ancu tutti i prucessi, da a creazione à l'implementazione, l'applicazione o u pruduttu.

A discussione di DevOps si focalizeghja nantu à a relazione trà i sviluppatori, e persone chì scrive u software per una vita, è l'operatori rispunsevuli di mantene quellu software.

Sfide per a squadra di sviluppu

I sviluppatori tendenu à esse entusiastici è disposti à implementà novi approcci è tecnulugia per risolve i prublemi organizzativi. Tuttavia, anu ancu affruntà certi prublemi:

  • U mercatu cumpetitivu crea assai pressione per furnisce u pruduttu à tempu.
  • Deve piglià cura di gestisce u codice prontu per a produzzione è di implementà e funzioni novi.
  • U ciculu di liberazione pò esse longu, cusì u squadra di sviluppu hà da fà parechje ipotesi prima di implementà applicazioni. In questu scenariu, hè necessariu più tempu per risolve i prublemi chì si sviluppanu durante l'implementazione in un ambiente di pruduzzione o di prova.

Sfide affrontate da u gruppu operatore

I gruppi di operazioni sò storicamente cuncentrati in a stabilità è l'affidabilità di i servizii IT. Hè per quessa chì e squadre operative cercanu stabilità per mezu di cambiamenti in risorse, tecnulugia o approcci. I so compiti includenu:

  • Gestisce l'allocazione di risorse cum'è a dumanda cresce.
  • Gestisce i cambiamenti in u disignu o persunalizazione chì sò necessarii per applicà à un ambiente di produzzione.
  • Diagnosticate è risolve i prublemi di produzzione dopu l'applicazioni auto-deploying.

Cumu DevOps risolve i prublemi di sviluppu è operazioni

Invece di sparghje un gran numaru di funzioni di l'applicazione in una volta, l'imprese cercanu di vede s'ellu ponu sparghje un picculu numeru di funzioni à i so clienti attraversu una serie di iterazioni di liberazione. Stu approcciu hà una quantità di vantaghji cum'è una megliu qualità di u software, un feedback di i clienti più veloce, etc. Questu, à u turnu, assicura un altu gradu di satisfaczione di u cliente. Per ottene questi scopi, l'imprese sò tenute à:

  • Reduce a rata di fallimentu per i novi versioni
  • Aumentà a frequenza di implementazione
  • Ottene u tempu mediu più veloce per a ricuperazione in casu di una nova liberazione di l'applicazione.
  • Reduce u tempu di currezzione

DevOps si prende cura di tutte queste attività è aiuta à assicurà una consegna senza saldatura. L'urganisazioni utilizanu DevOps per ottene livelli di prestazione chì eranu impensabili pochi anni fà. Eseguenu decine, centinaie è ancu millaie di implementazioni à ghjornu mentre furnisce affidabilità, stabilità è sicurità di prima classe. (Amparate più nantu à e dimensioni di lotti è u so impattu nantu à a consegna di u software).

DevOps prova di affruntà diversi prublemi chì risultanu da e metodologie passate, cumprese:

  • Isolamentu di u travagliu di squadre di sviluppu è operatori
  • Test è implementazione cum'è fasi separati dopu a cuncepimentu è a custruzione chì piglianu più di i cicli di custruzzione.
  • Tempu eccessivu passatu à pruvà, implementà è cuncepimentu invece di fucalizza nantu à a custruzione di servizii di core business
  • Distribuzione manuale di codice chì porta à errori in a produzzione
  • Differenze in i calendari di e squadre di sviluppu è di operazioni chì portanu à ritardi supplementari

Guida DevOps per i principianti

Cunfrontu di DevOps, Agile è tradiziunale IT

DevOps hè spessu discututu in relazione à altre pratiche IT, in particulare l'infrastruttura IT agile è cascata.

Agile hè un inseme di principii, valori è metudi per a produzzione di software. Cusì, per esempiu, sè vo avete una idea chì vulete trasfurmà in software, pudete aduprà principii è valori Agile. Ma stu software pò eseguisce solu in un ambiente di sviluppu o di prova. Vulete un modu simplice è sicuru per trasfurmà rapidamente è ripetutamente u software à a produzzione, è a strada hè attraversu l'arnesi è e pratiche DevOps. U sviluppu di software agile si cuncentra nantu à i prucessi di sviluppu, cù DevOps rispunsevuli di sviluppà è implementà in u modu più sicuru è affidabile pussibule.

Paragunà u mudellu di cascata tradiziunale à DevOps hè un bonu modu per capisce i benefici chì DevOps porta. L'esempiu seguente assume chì l'applicazione serà lanciata in quattru settimane, u sviluppu hè 85% cumpletu, l'applicazione serà in diretta, è u prucessu di compra di servitori per a sottumissione di codice hè appena principiatu.

I prucessi tradiziunali
Prucessi in DevOps

Dopu avè fattu un ordine per novi servitori, u squadra di sviluppu travaglia nantu à a prova. U focus group travaglia nantu à a documentazione estensiva chì l'imprese anu bisognu di implementà l'infrastruttura.
Dopu avè fattu un ordine per novi servitori, i squadre di sviluppu è di l'operazioni travaglianu inseme nantu à i prucessi è u flussu di travagliu per installà novi servitori. Questu permette di capisce megliu i bisogni di l'infrastruttura.

L'infurmazione distorta nantu à u fallimentu, a ridondanza, a situazione di u centru di dati è i requisiti di almacenamento mancanu input da un squadra di sviluppu chì hà una cunniscenza prufonda di l'applicazione.
L'infurmazione dettagliata nantu à u fallimentu, a redundanza, a ricuperazione di disastru, i lochi di u centru di dati è i bisogni di almacenamiento sò cunnisciuti è curretti per via di a cuntribuzione di u squadra di sviluppu.

U task force ùn hà micca idea di u prugressu di u squadra di sviluppu. Ella sviluppa ancu un pianu di monitoraghju basatu annantu à e so idee.

U task force hè cumplettamente cuscente di u prugressu fattu da a squadra di sviluppu. Ella interagisce ancu cù u squadra di sviluppu è sviluppanu inseme un pianu di surviglianza chì satisface i bisogni IT è cummerciale. Anu ancu aduprà strumenti di monitoraghju di u rendiment di l'applicazioni (APM).

Una prova di carica eseguita prima di lanciare una applicazione provoca un crash di l'applicazione, ritardà u so lanciamentu.
Una prova di carica realizata prima chì l'applicazione sia lanciata si traduce in una degradazione di u rendiment. U squadra di sviluppu elimina rapidamente i colli di bottiglia è l'applicazione lancia in tempu.

Ciclu di vita di DevOps

DevOps implica l'adopzione di certe pratiche generalmente accettate.

Pianu cuntinuu

A pianificazione cuntinuu si basa nantu à i principii di magra per cumincià à pocu pressu identificendu e risorse è i risultati necessarii per pruvà u valore di l'affari o di a visione, adattà continuamente, misurà u prugressu, amparà da i bisogni di i clienti, cambia a direzzione in quantu necessariu per accoglie l'agilità, è aghjurnà l'affari. pianu.

Sviluppu cumuni

U prucessu di sviluppu di cullaburazione permette à l'imprese, i squadre di sviluppu è e squadre di teste in parechje fusi orari per furnisce in permanenza software di qualità. Questu include u sviluppu multi-piattaforma, supportu di prugrammazione multilingue, creazione di storie d'utilizatori, ideazione è gestione di u ciclu di vita. U sviluppu di cullaburazione include u prucessu è a pratica di l'integrazione cuntinua, chì favurizeghja l'integrazione di codice frequente è e custruzzioni automatizati. Injecting frequentemente codice in una applicazione, i prublemi di integrazione sò catturati prima di u ciclu di vita (quandu sò più faciuli di riparà), è i sforzi di integrazione generale sò ridotti da un feedback continuu cum'è u prughjettu mostra un prugressu continuu è dimostrabile.

Test continuu

A prova cuntinuu riduce u costu di a prova aiutendu e squadre di sviluppu à equilibrà a velocità è a qualità. Elimina ancu i colli di bottiglia di prova cù a virtualizazione di u serviziu è facilita a creazione di ambienti di prova virtualizzati chì ponu esse facilmente spartuti, implementati è aghjurnati cum'è i sistemi cambianu. Queste capacità riducenu u costu di furnisce è mantene l'ambienti di prova, è ancu accurtà u tempu di u ciclu di prova, permettendu a prova di integrazione per esse realizata prima di u ciclu di vita.

Liberazione è implementazione cuntinua

Queste metodologie portanu cun elli una di e pratiche core: liberazione è implementazione cuntinuu. Questu furnisce un pipeline cuntinuu chì automatizza i prucessi chjave. Riduce i passi manuali, i tempi d'attesa di risorse, è rielaborazione attivendu l'implementazione di u buttone per più versioni, menu bug è trasparenza completa.

L'automatizazione ghjoca un rolu chjave per assicurà una liberazione di software stabile è affidabile. Una di e sfide più grande hè di piglià i prucessi manuali cum'è a custruzzione, a regressione, l'implementazione è l'infrastruttura è l'automatizà. Questu hè bisognu di cuntrollu di versione di u codice fonte; scenarii di prova è implementazione; infrastruttura di l'applicazione è dati di cunfigurazione; cum'è e librerie è i pacchetti chì l'applicazione dipende. Un altru fattore impurtante hè a capacità di dumandà u statutu di tutti l'ambienti.

Monitoraghju cuntinuu

U monitoraghju cuntinuu furnisce un rapportu di qualità di l'impresa chì aiuta i squadre di sviluppu à capisce a dispunibilità è a prestazione di l'applicazioni in un ambiente di produzzione prima di esse implementate in a produzzione. U primu feedback furnitu da u monitoraghju cuntinuu hè criticu per riduce u costu di l'errori è mantene i prughjetti in a direzione ghjusta. Questa pratica spessu include strumenti di monitoraghju, chì tendenu à revelà metriche ligati à u rendiment di l'applicazione.

Feedback constantu è ottimisazione

I feedback continui è l'ottimisazione furniscenu una rappresentazione visuale di u flussu di u cliente è identificanu e zone problematiche. U feedback pò esse inclusu in e fasi di pre-vendita è di post-produzione per maximizà u valore è assicurà chì ancu più transazzioni sò cumpletu cù successu. Tuttu chistu furnisce una visibilità immediata in a causa principale di i prublemi di i clienti chì affettanu u so cumpurtamentu è l'impattu nantu à l'affari.

Guida DevOps per i principianti

Vantaggi di DevOps

DevOps pò aiutà à creà un ambiente induve i sviluppatori è l'operatori travaglianu cum'è una squadra per ottene scopi cumuni. Un passu impurtante in questu prucessu hè l'intruduzione di l'integrazione cuntinuu è a spedizione cuntinuu (CI / CD). Queste tecniche permettenu à e squadre di purtà u software à u mercatu più veloce cù menu errori.

I benefici impurtanti di DevOps sò:

  • Prevedibilità: DevOps offre un tassu di fallimentu significativamente più bassu per e novi versioni.
  • Mantenibilità: DevOps furnisce una ricuperazione faciule in casu di fallimenti in una nova versione o chjusu di l'applicazione.
  • Riproducibilità: Un sistema di cuntrollu di versione per un assemblea o codice permette di restituverà e versioni precedenti in quantu necessariu.
  • Qualità più alta: Risolve i prublemi di l'infrastruttura migliora a qualità di u sviluppu di l'applicazioni.
  • Tempu à u mercatu: L'ottimisazione di a consegna di u software riduce u tempu à u mercatu di 50%.
  • Riduzzione di risicu: Assicurendu a sicurità in u ciclu di vita di u software riduce u numeru di difetti in tuttu u ciclu di vita.
  • Efficienza di u costu: A ricerca di l'efficienza di u costu in u sviluppu di software appellu à l'alta dirigenza.
  • Stabilità: U sistema di software hè più stabile, sicuru, è i cambiamenti ponu esse pruvati.
  • A basa di codice più grande hè divisa in parti maneggevoli: DevOps hè basatu annantu à pratiche di sviluppu agili chì permettenu di scumpressà una grande basa di codice in parti più chjuche è gestibili.

Principi di DevOps

L'adopzione di DevOps hà generatu parechji principii chì anu evolutu (è cuntinueghjanu à evoluzione). A maiò parte di i fornituri di suluzione anu sviluppatu e so propiu mudificazioni à e diverse metodologie. Tutti questi principii sò basati nantu à un approcciu olisticu à DevOps, è l'urganisazioni di tutte e dimensioni ponu aduprà.

Sviluppà è pruvà in un ambiente di produzzione

U puntu hè di permette à e squadre di sviluppu è di assicurazione di qualità (QA) di sviluppà è di pruvà sistemi chì si comportanu cum'è sistemi di produzzione per pudè vede cumu l'applicazione si comporta è funziona bè prima ch'ella sia pronta per l'implementazione.

L'applicazione deve esse cunnessa à i sistemi di produzzione u più prestu pussibule in u ciclu di vita per affruntà trè prublemi principali potenziali. Prima, vi permette di pruvà l'applicazione in un ambiente vicinu à l'ambiente reale. Siconda, vi permette di pruvà è cunvalidà i prucessi di consegna di l'applicazioni in anticipu. In terzu, permette à a squadra di l'operazioni di pruvà à l'iniziu di u ciclu di vita cumu si cumportarà u so ambiente quandu l'applicazioni sò implementate, permettendu cusì di creà un ambiente altamente persunalizabile, centratu in l'applicazione.

Implementazione cù prucessi riproducibili è affidabili

Stu principiu permette à e squadre di sviluppu è di operazioni di mantene i prucessi di sviluppu di software agili in tuttu u ciclu di vita. L'automatizazione hè critica per creà prucessi iterativi, affidabili è riproducibili. Dunque, l'urganizazione deve creà un pipeline di consegna chì permette una implementazione è teste cuntinui è automatizati. L'implementazione frequente permette ancu à e squadre di pruvà i prucessi di implementazione, riducendu cusì u risicu di fallimenti di implementazione durante e versioni reali.

Cuntrolla è cuntrollà a qualità di u travagliu

L'urganisazioni sò bè ​​​​per monitorà l'applicazioni di produzzione perchè anu strumenti chì catturanu metriche è indicatori chjave di rendiment (KPI) in tempu reale. Stu principiu si move u monitoraghju prima di u ciculu di vita, assicurendu chì e teste automatizate traccianu l'attributi funziunali è non-funziunali di una applicazione prima di u prucessu. Ogni volta chì una applicazione hè pruvata è implementata, e metriche di qualità devenu esse esaminate è analizate. Strumenti di monitoraghju furnisce un avvisu precoce di prublemi di rendiment è di qualità chì ponu accade durante a produzzione. Questi indicatori duveranu esse cullati in un formatu chì hè accessibile è cumprendi per tutti i stakeholder.

Migliurà i cicli di feedback

Unu di l'ugettivi di i prucessi DevOps hè di permette à l'urganisazione di risponde è di fà cambiamenti più veloce. Quandu furnisce u software, questu scopu richiede chì l'urganizazione riceve feedback prima è dopu apre rapidamente da ogni azzione presa. Stu principiu esige l'urganisazione per creà canali di cumunicazione chì permettenu à i stakeholder di accede è interagisce nantu à una basa di feedback. U sviluppu pò esse fattu aghjustendu i so piani di prughjettu o priorità. A fabricazione pò agisce per migliurà l'ambiente di travagliu.

Dev

  • Pianificazione: Kanboard, Wekan è altre alternative Trello GitLab, Tuleap, Redmine è altre alternative JIRA Mattermost, Roit.im, IRC è altre alternative à Slack.
  • Scrittura di codice: Git, Gerrit, Bugzilla; Jenkins è altri strumenti open source CI/CD
  • Assemblea: Apache Maven, Gradle, Apache Ant, Packer
  • Testi: JUnit, Cucumber, Selenium, Apache JMeter

Ops

  • Liberazione, implementazione, operazioni: Kubernetes, Nomad, Jenkins, Zuul, Spinnaker, Ansible, Apache ZooKeeper, etcd, Netflix Archaius, Terraform
  • Monitoraghju: Grafana, Prometheus, Nagios, InfluxDB, Fluentd, è più coperti in sta guida

(* L'arnesi per l'operazioni sò stati numerati in ordine per esse utilizati da i cumandamenti di l'operazioni, ma i so strumenti sò soprapposti da e fasi di u ciclu di vita di l'arnesi di liberazione è di implementazione. A numerazione hè stata eliminata per a leggibilità.)

In cunclusioni

DevOps hè una metodulugia sempre più populari chì hà da scopu di unisce sviluppatori è operatori. Hè unicu, sfarente di l'operazioni IT tradiziunali, è cumplementarii à Agile (ma micca cusì flexible).

Guida DevOps per i principianti

Scuprite i dettagli di cumu uttene una professione ricercata da zero o Level Up in termini di cumpetenze è salari cumpiendu i corsi in linea pagati di SkillFactory:

più corsi

Utile

Source: www.habr.com

Add a comment