Tendenza o Tradizione?: DevOps non è più una tendenza all’avanguardia, ma un modo di operare consolidato, radicato nelle pratiche sia degli sviluppatori che dei professionisti IT, segnando la sua evoluzione da idea radicale a metodologia mainstream.
La Filosofia DevOps: DevOps rappresenta la fusione tra sviluppo e operazioni per accelerare la consegna e migliorare la qualità del software. Si basa su una cultura di collaborazione ed evoluzione continua, con l’obiettivo di abbattere i silos tradizionali.
L’Evoluzione Tecnologica Supporta il DevOps: La diffusione della containerizzazione, degli ecosistemi cloud-native e dell’Infrastructure as Code (IaC) ha potenziato il movimento DevOps, portando maggiore agilità ed efficienza nei processi di sviluppo e distribuzione del software.
La Sicurezza Acquista Centralità: L’emergere del DevSecOps integra la sicurezza nelle prime fasi dello sviluppo del software, evidenziando lo spostamento verso la priorità della rilevazione precoce delle vulnerabilità per ridurre i rischi.
Cultura e Strumenti: Un Binomio Indissolubile: Sebbene DevOps tragga grande vantaggio da innovazioni tecnologiche come l’intelligenza artificiale e il machine learning, la sua essenza ruota intorno alla promozione di una cultura positiva che mette al centro le persone, la collaborazione e il miglioramento continuo.
Quando una tendenza tecnologica smette di essere una tendenza e diventa semplicemente la norma nel mondo degli affari?
Potremmo passare del tempo a discutere di questo particolare punto di svolta – non esiste una risposta "corretta" alla domanda. Basti sapere che quando una "tendenza" è ben oltre il suo secondo decennio – come nel caso della cultura DevOps e delle relative pratiche – allora è semplicemente il modo in cui le cose vengono fatte. (Secondo la maggior parte delle fonti, il DevOps ha iniziato a prendere la sua forma attuale intorno al 2007.)
Nella nostra Guida definitiva al DevOps, ecco come abbiamo definito il termine: “DevOps è un insieme di pratiche e filosofie che combina lo sviluppo software (Dev) e le operazioni IT (Ops), con l'obiettivo di ridurre il ciclo di vita dello sviluppo dei sistemi e fornire una consegna continua con alta qualità del software. È un approccio che enfatizza la collaborazione, la comunicazione e l'integrazione tra sviluppatori e professionisti IT.”
Nelle sue prime fasi, tutto ciò suonava strano e spaventoso – persino radicale – ad alcuni professionisti IT. Ora, è così diffuso da essere diventato la normalità. Nel rapporto State of CI/CD della CD Foundation, l’83% degli sviluppatori ha dichiarato di essere coinvolto in attività legate al DevOps. Non è effettivamente la totalità, ma ci si sta avvicinando molto.
Detto ciò, DevOps – che è tanto una cultura quanto un particolare insieme di strumenti o processi – è, per sua natura, in continua evoluzione.
In questo articolo vedremo come siamo arrivati a questo punto – e come DevOps continui ad evolversi oggi. Prima di tutto, è importante capire perché DevOps esiste.
Perché è importante il DevOps?
DevOps combina i termini "sviluppo" e "operazioni" – due ambiti tecnologici di lunga data. L'obiettivo principale del DevOps è favorire un alto grado di integrazione tra queste due componenti fondamentali di un sistema IT, concentrandosi principalmente sulla consegna continua e sui test di qualità del software. Tradizionalmente, queste funzioni erano separate e isolate – il che causava colli di bottiglia, ritardi nella consegna, problemi di qualità, scaricabarile (quando qualcosa andava storto), debolezze nella sicurezza e altri problemi.
DevOps – sia come termine sia, più importante ancora, come cultura e pratica – riflette la necessità per le organizzazioni software di costruire e rilasciare codice più velocemente e più spesso, senza sacrificare la qualità, l’affidabilità o la sicurezza.
-
SonarQube
Visit WebsiteThis is an aggregated rating for this tool including ratings from Crozdesk users and ratings from other sites.4.4 -
ManageEngine Applications Manager
Visit WebsiteThis is an aggregated rating for this tool including ratings from Crozdesk users and ratings from other sites.4.3 -
Spacelift
Visit Website
Come siamo arrivati qui: tendenze DevOps dal passato
La crescita enorme del DevOps nell’ultimo decennio circa si è intersecata con molteplici tendenze tecnologiche correlate che hanno reso possibili le pratiche DevOps e che sono nate dai principi e dalla cultura DevOps. Alcuni dei fattori più rilevanti che hanno portato a questo punto includono:
Containerizzazione: Abbiamo assistito a un aumento dell’adozione di Docker e altri strumenti per la containerizzazione del software, che ha aiutato a rendere le applicazioni portabili tra diversi ambienti, come varie piattaforme cloud pubbliche e private (inclusi Amazon Web Services, Microsoft Azure e Google Cloud Platform) così come le infrastrutture on-premises.
Ecosistema cloud-native: Abbiamo visto un aumento rilevante nello sviluppo di applicazioni cloud-native, che garantisce la scalabilità dell’infrastruttura e dei servizi. Per rappresentare l’intero panorama cloud-native in un unico posto servirebbe una lavagna enorme—e perfino in un browser, probabilmente avresti bisogno di scorrere per vedere tutto!
Cybersecurity: Sebbene inizialmente il DevOps si sia concentrato su un allineamento più stretto tra sviluppo e operazioni, ha anche messo in luce la necessità di dare priorità alla sicurezza già nelle prime fasi del ciclo di vita dello sviluppo software (SDLC). Il DevSecOps è emerso come una tendenza importante, integrando la sicurezza nella pipeline DevOps anziché trattarla come un’entità separata. Ciò ha migliorato, tra gli altri benefici, l’identificazione precoce delle vulnerabilità, riducendo i rischi e gli impatti in produzione.
Infrastructure as Code (IaC): DevOps ha fatto dell'automazione un elemento centrale negli ambienti IT, e questa tendenza è stata particolarmente evidente sul fronte dell’infrastruttura; la gestione dell’infrastruttura era tipicamente un lavoro molto manuale e ripetitivo, ma l’introduzione dell’Infrastructure as Code (IaC) ha fornito meccanismi efficienti, affidabili e ripetibili per gestire l’infrastruttura su cui girano le applicazioni software.
Cultura: Il DevOps non è mai stato solo tecnologia. Piuttosto, mirava a dare priorità alle persone e a liberarle da oneri o difficoltà inutili nel loro lavoro. Di conseguenza, il DevOps ha contribuito a riportare l’attenzione sull’importanza di una cultura lavorativa sana e non tossica, con un focus su aspetti come sicurezza psicologica, analisi post-mortem prive di colpe, incentivi condivisi, miglioramento continuo e molto altro.
Intelligenza artificiale e machine learning: Sebbene al momento i large language model (LLM) e il generativo siano temi molto discussi, l’IA/ML non sono affatto una novità. Il machine learning in particolare è già stato utilizzato per analisi predittive, rilevamento di errori e automazione dei processi in diversi contesti DevOps.
Tendenze attuali del DevOps
Sebbene la maggior parte dei modelli sopra descritti esista già da tempo, questo non significa che il DevOps si sia fermato. Sembra anzi essere più popolare che mai – e altrettanto richiesto dal punto di vista delle assunzioni. Una recente ricerca a livello statunitense per posizioni di DevOps engineer su LinkedIn – una sola qualifica tra una miriade di ruoli potenzialmente rilevanti – ha prodotto quasi 5.000 offerte di lavoro aperte.
Con la sua maturazione, il DevOps ha continuato ad evolversi. Scopriamo cinque dei modi più evidenti in cui il DevOps continua a cambiare.
1. Diffusa adozione di Kubernetes
Con la diffusione dei container, è diventato subito evidente che i team DevOps avessero bisogno di un modo migliore per gestire tutto. Ed ecco Kubernetes, che è divenuto lo standard nella orchestrazione dei container ed una piattaforma comune (disponibile in molte distribuzioni o versioni) per consentire ai team di gestire applicazioni e infrastrutture.
“Kubernetes e i container hanno reso possibile per i team impacchettare tutti gli ambienti necessari ed eseguire il proprio codice su una piattaforma standard, così i team di operations devono preoccuparsi solo della salute della piattaforma Kubernetes”, ci racconta Vitor Avancini, CTO della società di consulenza AI e dati Indicium.
Kubernetes offre un’infrastruttura robusta per automazione, networking e storage per carichi di lavoro cloud-native. È anche ciò che ha reso più concreta una delle prime promesse della containerizzazione – la possibilità di spostare carichi di lavoro tra ambienti diversi senza doverli sostanzialmente ricostruire: “Ha semplificato la vita al team di operations nel copiare e incollare molti ambienti, dato che non servono ambienti diversi per stack applicativi differenti.”
Questo aiuta a spiegare perché circa due terzi delle organizzazioni utilizzano Kubernetes in produzione, secondo l’indagine della Cloud Native Computing Foundation del 2023, mentre un altro 18 percento lo sta attivamente valutando per l’uso in produzione.
Tool DevOps utili: Kubernetes (la distribuzione open source base), oltre ad un’ampia gamma di software commerciali e gestiti di gestione dei container.
2. L’automazione è ovunque nel DevOps
Kubernetes è l’esempio principe di una tendenza più ampia che ha preso piede fin dagli albori del DevOps: automazione di tutto.
Quello che inizialmente era un meme si sta avvicinando sempre di più alla realtà, nel senso che l’automazione sembra ormai onnipresente nel DevOps, nei pipeline CI/CD e GitOps – dagli scan di sicurezza alle revisioni QA, dai task di build e deploy al rispetto delle policy e altro ancora. Questo si riflette anche nell’incredibile varietà di tool di automazione. Alcuni di essi – in particolare quelli low-code e no-code – non richiedono nemmeno competenze di programmazione.
“Le cose possono diventare caotiche con tutta la libertà che il [DevOps] offre ai team, quindi gli strumenti di [automazione] possono avere un ruolo importante nel mantenere tutto organizzato e ben governato”, afferma Avancini, sottolineando che i tool IaC come Terraform continuano ad avere qui un ruolo significativo.
Tool DevOps utili: Terraform, Ansible
La priorizzazione è una sfida molto comune, con le aziende che spesso rimandano attività cloud critiche come l’ottimizzazione dei database e lo sviluppo dell’infrastruttura ai trimestri successivi o addirittura all’anno seguente. I team DevOps sono desiderosi di affrontare queste problematiche, ma una volta seduti a tavolino, il semplice volume di attività rende spesso difficile capire quali questioni siano davvero ad alto valore e debbano avere la priorità.
Proprio per questo motivo Zesty si è evoluto in una piattaforma che include insight azionabili, aiutando le aziende a dare priorità e implementare in modo efficiente prima le correzioni più preziose. Per dare priorità in modo efficace a queste attività, le aziende hanno bisogno di insight chiari sugli investimenti di tempo e denaro richiesti. Le piattaforme che automatizzano questi processi sono preziosissime, poiché consentono decisioni migliori e una migliore allocazione delle risorse. DevOps è sempre più consapevole del valore che le piattaforme offrono con automazione, visibilità e raccomandazioni azionabili.
3. Anche l’architettura a microservizi è ovunque
L’architettura a microservizi – che in sostanza prevede la suddivisione delle applicazioni più grandi in componenti più piccoli e discreti che funzionano in modo indipendente, pur collaborando nell’ambito del sistema complessivo – non è una novità. Tuttavia, per molti anni, questo approccio non è sempre stato realistico per molte organizzazioni.
Oggi, tre quarti (74%) delle aziende utilizzano i microservizi, secondo Gartner, e quasi tutte le altre (23%) prevedono di adottarli nel prossimo futuro.
“I microservizi hanno offerto alle squadre la possibilità di scegliere le proprie stack tecnologiche, laddove prima era necessario che i team delle operation centrali fornissero ambienti diversi di testing e deploy ai team di sviluppo”, afferma Avancini.
Qui si può avviare un dibattito sul classico dilemma dell’uovo e della gallina perché l’architettura a microservizi si sposa naturalmente con i container e Kubernetes – dunque la maturità dei primi ha probabilmente stimolato la diffusione dei secondi, così come la generale maturazione delle tecnologie e dello sviluppo cloud-native. (Le applicazioni totalmente nuove, o “greenfield”, realizzate oggi sono più inclini a essere progettate per ambienti cloud-native, con i microservizi come opzione architetturale di rilievo.)
L’architettura a microservizi è stata inoltre fortemente associata al computing serverless (o architettura serverless). Sono concetti separati ma spesso correlati – il modo semplice per distinguerli è che i microservizi rappresentano un approccio architetturale alla progettazione software, mentre il serverless riguarda invece il modo in cui tale software viene effettivamente eseguito.
Strumenti DevOps utili: Prometheus, Compass, AWS Fargate
4. La platform engineering è il nuovo DevOps (in un certo senso)
Ok, il titolo è un po’ esagerato – la platform engineering e DevOps sono discipline differenti, ma la loro relazione continua a crescere. Una piccola prova: il report State of DevOps di Puppet, attivo da anni, ha incluso nel suo sottotitolo del 2024: “L’evoluzione della platform engineering.”
La platform engineering è la disciplina che si occupa della realizzazione di piattaforme interne – con una forte enfasi sull’autoservizio – per fornire a sviluppatori e altri tecnologi tutto ciò di cui hanno bisogno per creare applicazioni e servizi. Come nel DevOps, anche qui grande attenzione è posta su automazione dell’infrastruttura, toolchain e workflow standardizzati, e così via. Per esempio, il provisioning di un ambiente di sviluppo o test non dovrebbe richiedere l’invio di una richiesta a un team di gestione infrastrutturale separato.
“[Una] grande tendenza è la platform engineering, che fornirà strumenti e pratiche affinché i team di sviluppo possano non solo sviluppare ma anche testare, monitorare e fare rollback delle applicazioni” in modo unificato e coerente, afferma Avancini, senza dover chiedere regolarmente agli operation pro l’infrastruttura e i servizi di cui hanno bisogno per farlo.
Avancini sottolinea inoltre che c’è una tendenza generale in DevOps verso la centralizzazione dei processi – che a prima vista può sembrare controintuitiva data la natura organica di molte culture DevOps. Ma la platform engineering può essere vista attraverso questa lente: DevOps non significa anarchia. Sviluppatori e altri professionisti IT hanno comunque bisogno di strumenti, infrastruttura e – sì – elementi di controllo.
In questo contesto, compaiono a volte anche i termini Internal Developer Platform (IDP) e Integrated Developer Environment (IDE).
Strumenti DevOps utili: Kubernetes, Humanitec
5. L'IA Avrà un Ruolo Sempre Più Importante nel DevOps
Le nuove applicazioni di intelligenza artificiale – rappresentate più recentemente dalla nuova classe di applicazioni di IA generativa basata su LLM che hanno attirato molta attenzione ultimamente – molto probabilmente troveranno spazio anche nei processi e nelle catene di strumenti DevOps. Esiste persino un termine per questa unione: AIOps.
Forse il modo più semplice per pensare a dove l’IA sarà utile è dal punto di vista più ampio dell’automazione: se qualcosa può essere automatizzato, o se l’intelligenza e l’impegno umano possono essere sfruttati in qualche modo, l’IA potrebbe (e probabilmente lo farà) giocare un ruolo.
“L’assistenza dell’IA avrà un ruolo importante nel DevOps principalmente nell’aiutare la revisione del codice, nell’analisi della qualità del codice e della sicurezza, e nel descrivere automaticamente tutti gli effetti che il nuovo codice potrebbe avere una volta distribuito”, afferma Avancini.
In effetti, c’è una lunga lista di possibili casi d’uso, molti dei quali stanno emergendo proprio ora. Aspettatevi che la produttività degli sviluppatori e l’automazione della sicurezza siano due delle aree di maggior interesse nel prossimo futuro.
Strumenti DevOps Utili: GitHub Copilot
In Sintesi
La cultura e le pratiche DevOps hanno superato la prova del tempo, ma questo non significa che siano statiche. Quali sono le ultime tendenze DevOps nella tua organizzazione? Dove vedi andare il DevOps nei prossimi anni? Iscriviti alla newsletter di The CTO Club per altre notizie e discussioni del settore!
