Chì ghjè l'impurtanza di DevOps, ciò chì significa per i prufessiunali IT, descrizzione di metudi, frameworks è arnesi.
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
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.
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
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).
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: