Tools DevOps: quali sono e come sceglierli

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.
I 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 Appvance, Dynatrace (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.