La programmazione richiede il deployment di codice di qualità, libero da vincoli per soluzioni, linguaggi e tools DevOps. Allo stesso tempo, però, l’esecuzione deve essere efficiente. Oggi la richiesta di efficienza è fatta sistematicamente e a ciclo continuo: la spinta a migliorare le operazioni su tutta la linea si vede nell’importanza assunta da modelli che inglobano le operazioni IT in un unico modello con lo sviluppo, generando l’approccio DevOps. 

tools DevOps stanno conoscendo un’espansione senza limiti. Una semplice ricerca sul web restituisce liste di decine o anche centinaia di strumenti che a vario titolo rientrano in questa categoria. 

Un altro argomento in enorme espansione, in particolare dal 2021, è lo sviluppo di microservizi e la sintesi di relativi prassi e stili. Una diretta conseguenza è il miglioramento di container, orchestratori, descrittori di infrastruttura, da gestire su pipeline di build e rilascio automatizzate. Sono inoltre alle porte piattaforme che integrano soluzioni no-code e low-code, che, se da un lato aprono lo sviluppo ai non programmatori (già in modalità DevOps), dall’altro sono usate anche da sviluppatori per rendere automatiche manutenibili parti di codice meno significative.  

Giusto a margine di queste considerazioni, si può osservare che la matrice open source della gran parte di queste soluzioni, spesso partita da un deciso bianco e nero, stia via via sfumando in una serie di grigi. Il consiglio è di considerare l’effettiva rispondenza alle specifiche necessità del tool e della relativa community, senza fare guerre di religione tra open source e proprietario.  

Il modello DevOps richiede la continua iterazione del processo di sviluppo/rilascio del codice, integrando software e infrastruttura e sempre più anche la sicurezza. 

Il responsabile dell’architettura aziendale, quale sia il suo effettivo nome e posto in organigramma, deve aver ben chiara la mappatura dei tools di devops ed esecuzione richiesti nelle moderne applicazioni cloud-native. Svariati produttori di software offrono dei framework completi, ma in questo articolo ci occupiamo di tools non inseriti in un contesto prefissato. 

Proviamo a elencarne alcuni dei più noti. 


12 tools per i DevOps
 

GitHub si occupa di build, deploy e maintain del codice – inutile dirlo – ed è senz’altro il nome più popolare. Dal 2018 è di proprietà di Microsoft. Nome simile ma diversa proprietà per GitLab, simile a GitHub ma di uso più immediato. Esistono anche altre piattaforme di code hosting con servizi. 

Docker si occupa di containerizzazione di applicazioni e va citato anche se tutti lo conoscono. Non è l’unico modo di affrontare quel compito (tra le alternative troviamo Apache Mesos), ma certo resta il più popolare. I container richiedono orchestrazione e il primo tool di orchestrazione di Docker è Swarm (o Docker Swarm), che ricade nella stessa categoria di Kubernetes (spesso semplificato in k8s). 

Ansible automatizza i compiti ripetitivi, in particolare nella configurazione e nell’orchestrazione. 

L’IaC, Infrastrucure as Code, aggiunge in modo trasparente funzionalità come l’osservabilità, la gestione del traffico e la sicurezza, mantenendo il codice relativo separato dal codice applicativo. Per esempio si occupano di IaC Terraform e Istio; quest’ultima preferisce definirsi una service mesh. 

Il performance monitoring viene offerto in modalità molto diverse tra loro. Se forse Sensu è il tool più usato, anche PagerDuty e l’offerta Elastic vanno considerate attentamente, e con loro molti altri prodotti sul mercato. 

Come districarsi in questa pletora di tools? Un partner affidabile è di sicuro supporto nel chiarire quale strumento sia meglio utilizzare in quale fase del processo DevOps. 


L’avvento degli AIops
 

Un settore in enorme crescita è l’intelligenza artificiale (AI). Tra i principali usi di quest’area dell’analisi troviamo la semplificazione dei compiti e la pulizia dei dati. Nonostante il modello DevOps sia mutuato in molto altri settori, sempre per indicare il crollo dei silos e l’unificazione dei processi, i due fattori che maggiormente stanno migliorando lo sviluppo di applicazioni moderni sono la sicurezza e l’AI. Nomi come AppvanceDynatrace (che fa anche molto altro) e Test.ai, tra gli altri, stanno esplorando questa nuova frontiera che prossimamente arriverà sul desktop di ogni Responsabile dell’innovazione in azienda.