Panoramica
Ansible e Salt sono strumenti open source per l'automazione dell'IT sviluppati dalla community. Entrambi sono in grado di semplificare le operazioni IT e DevOps automatizzando le attività di routine come la configurazione e il provisioning dei sistemi, il deployment dei software e la gestione degli aggiornamenti su numerosi server e dispositivi endpoint.
Ansible è uno strumento di facile utilizzo poiché, grazie all'approccio agentless, non richiede l'installazione di software aggiuntivi sui target da automatizzare. Salt è invece una soluzione basata su agente e richiede l'installazione di un software aggiuntivo su ciascuna macchina. Dal punto di vista dell'automazione, sia Ansible che Salt sono basati su Python. Ansible si serve di file di configurazione YAML e di un'automazione procedurale che definisce i passaggi nell'ordine in cui vanno eseguiti. Salt, invece, utilizza un sottoinsieme di YAML per mappare le strutture di dati più usate, come gli elenchi e i dizionari.
Questo articolo analizza le analogie e le differenze fra Ansible e Salt.
Versioni supportate dei principali strumenti open source per l'automazione dell'IT
Le tipologie di strumenti per l'automazione dell'IT disponibili sul mercato sono svariate e si distinguono a seconda dell'approccio utilizzato, vediamo ora a quale categoria sono ascrivibili Ansible e Salt. Insieme a Puppet e Chef, Ansible e Salt sono gli strumenti open source per l'automazione dell'IT più diffusi; ognuno di loro ha un approccio esclusivo all'automazione e tutti e quattro dispongono di una versione enterprise commercializzata da fornitori software diversi. Molte aziende utilizzano più di una soluzione per finalità diverse o le usano in combinazione.
- Ansible è stato acquistato da Red Hat nel 2015 ed è commercializzato come Red Hat® Ansible® Automation Platform.
- Salt (commercializzato come SaltStack) è stato acquistato da VMWare nel 2020 per essere incluso nell'offerta vRealize Automation, di recente ridenominata VMware Aria Automation. VMware è stato acquistato da Broadcom nel 2022.
- Puppet è supportato da Perforce ed è commercializzato in una serie di prodotti tra cui Puppet Enterprise e Puppet Bolt.
- Chef è stato acquistato da Progress nel 2020 ed è disponibile in una serie di prodotti commerciali tra cui Chef Enterprise Automation Stack.
La diversità di approccio all'automazione dell'IT tra Ansible e Salt
Ansible
Ansible è un'applicazione software open source a riga di comando per l'automazione dell'IT scritta in linguaggio Python.È in grado di configurare i sistemi, distribuire i software e orchestrare i flussi di lavoro avanzati per supportare il deployment delle applicazioni, gli aggiornamenti di sistema, la configurazione e le operazioni delle reti e altre attività. Red Hat Ansible Automation Platform è un prodotto acquistabile tramite sottoscrizione che si basa sulla tecnologia Ansible integrata da numerose funzionalità pensate per le aziende.
Il vantaggio che contraddistingue Ansible è la community. Il suo repository GitHub principale, da cui dipendono decine di migliaia di altri repository, attira migliaia di contributori (informazioni risalenti all'autunno del 2022). Ogni anno viene organizzato l'AnsibleFest, una conferenza dedicata agli utenti di Ansible, che regolarmente tengono anche Ansible Meetup in tutto il mondo. Questa community conta su un elevato numero di esperti e contributori che collaborano per garantire la completa e costante integrazione di Ansible con i progetti software più importanti. Inoltre, gli utenti hanno accesso a centinaia di moduli e plugin con cui possono ampliare le funzionalità di Ansible.
Ansible è pensato prettamente per offrire facilità di utilizzo, ma anche per garantire sicurezza e affidabilità, come dimostra il numero di componenti mobili ridotto al minimo. Utilizza OpenSSH per il trasporto (ma sono disponibili anche altre modalità di trasporto e pull) e un linguaggio leggibile in chiaro che non richiede particolare formazione e mette quindi gli utenti in condizione di utilizzare Ansible fin da subito.
ll funzionamento di Ansible prevede un nodo di controllo (il punto da cui si esegue Ansible) e una serie di nodi gestiti (i dispositivi da automatizzare) che possono essere sistemi Linux® o Windows. Dato che è agentless, Ansible è in grado di comunicare con i dispositivi senza che sia necessario installare applicazioni o servizi sui nodi gestiti. Una tecnologia chiamata Automation Mesh consente ad Ansible Automation Platform di distribuire i processi di automazione sui nodi di esecuzione.
Gli utenti di Ansible possono orchestrare le diverse componenti dell'infrastruttura tramite gli Ansible Playbook, file scritti nel linguaggio YAML, leggibile in chiaro. Ansible utilizza un approccio di programmazione procedurale (o imperativo), che è finalizzato a preservare la configurazione di un'infrastruttura IT definendo i passaggi per raggiungere la condizione target.
Salt
Salt è un'applicazione di automazione open source modulare, scritta in linguaggio Python. Concepito per l'acquisizione e l'esecuzione dei dati ad alta velocità, Salt è uno strumento per la gestione delle configurazioni con una libreria di messaggistica e un framework di concorrenza ZeroMQ leggeri, che stabilisce connessioni TCP persistenti tra il server e gli agenti.
Così come Ansible, anche Salt utilizza YAML, il che semplifica l'apprendimento e la gestione. Tuttavia, la sua struttura basata su agente può risultare complessa sia per i nuovi utenti che per i professionisti DevOps più esperti. In questo contesto, il server viene definito "salt master", mentre i client sono denominati "salt minion" e vengono eseguiti come agenti nella macchina client. È possibile configurare più master, e se uno di essi diventa inattivo, gli agenti si connettono con un altro master dell'elenco. Poiché i server inviano le configurazioni a tutti i client, l'esecuzione da remoto avviene immediatamente.
Dopo l'acquisizione di SaltStack da parte di VMware, la community open source di Salt si è ridotta. Inoltre, ora più progetti dipendono da Ansible piuttosto che da SaltStack, secondo i dati di GitHub risalenti all'autunno del 2022. In seguito all'acquisizione di VMware da parte di Broadcom nel 2022, l'attenzione si è spostata più sull'automazione dei prodotti VMware piuttosto che sulle reti e sugli scenari di utilizzo multifunzione o multivendor. Ciò ha contribuito ad accelerare il divario delle competenze in ambito IT e a indebolire il supporto aziendale alla community Salt.
I concetti essenziali dell'automazione
L'architettura basata su agente è un modello di infrastruttura e automazione che prevede di eseguire componenti software specifici, chiamati agenti, sull'ambiente da gestire. L'agente e tutte le sue dipendenze devono essere installati su ogni nodo target e questo comporta controlli e regole di sicurezza aggiuntivi. Un simile modello si rivela inefficace in tutti i contesti dove gli oggetti da automatizzare non permettono l'installazione e l'esecuzione di un agente. Richiede inoltre la manutenzione degli agenti.
L'architettura agentless, quella utilizzata da Ansible, è un modello per l'automazione e la gestione di dispositivi IT che non richiede di installare alcun software agente negli ambienti gestiti. Il software di controllo si connette alle macchine remote tramite connessioni Secure Shell (SSH) ed è immediatamente in grado di gestirle senza dover attendere un lungo processo di configurazione. Questa architettura elimina la necessità di mantenere un sistema per il deployment una volta completata la configurazione.
La gestione della configurazione è un processo che consente di mantenere sistemi, server e software coerenti e corrispondenti alle condizioni desiderate, per assicurare che il sistema funzioni come previsto, nonostante le eventuali modifiche apportate nel tempo. Se automatizzato, il sistema permette di ridurre costi, complessità e il rischio di errori manuali.
DevOps e DevSecOps indicano rispettivamente "sviluppo e operazioni" e "sviluppo, sicurezza e operazioni". Sono approcci alla cultura, all'automazione e alla progettazione delle piattaforme che integrano la sicurezza come responsabilità condivisa lungo l'intero ciclo di vita IT. DevOps e DevSecOps sono sostanzialmente lo stesso concetto, perché la sicurezza è da sempre parte integrante dell'approccio DevOps. L'utilizzo diffuso del termine DevSecOps rende ancora più esplicita questa inclusione.
YAML è l'acronimo di Yet Another Markup Language (o di YAML Ain’t Markup Language), un linguaggio di serializzazione dei dati spesso utilizzato per la scrittura dei file di configurazione. Progettato per essere leggibile in chiaro e facile da comprendere, può essere utilizzato insieme ad altri linguaggi di programmazione. YAML è un sovrainsieme di JavaScript Object Notation (JSON).
Scegli la soluzione di automazione più adatta alle tue esigenze
Quando si sceglie una soluzione di automazione occorre valutare non solo le funzionalità immediatamente disponibili, ma anche le prospettive di sviluppo della piattaforma a lungo termine. Ansible si distingue per la sua community open source molto attiva e per il supporto di Red Hat.
Al giorno d'oggi è normale utilizzare più soluzioni di automazione. Ansible ha a disposizione un ampio ecosistema di integrazioni supportate ed è compatibile con molti altri strumenti di gestione dell'automazione e della configurazione, ad esempio è utilizzabile insieme a un agente di orchestrazione degli strumenti di automazione. Inoltre, è possibile utilizzare Ansible per automatizzare i sistemi su hyperscaler del cloud pubblico come Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform e molti altri.
Rispetto a Salt, Ansible è la scelta ideale per gli utenti che danno priorità alla facilità di utilizzo e che cercano una soluzione di automazione agentless. Largamente adottato in diversi ambiti IT, come l'automazione delle reti e dell'infrastruttura, dispone di un'ampia community di contributori e partnership ed è molto diffuso anche perché facile da integrare con altre soluzioni.
Il vantaggio competitivo di Red Hat
Red Hat Ansible Automation Platform, basata su tecnologie open source, è un prodotto acquistabile tramite sottoscrizione, testato e potenziato dal punto di vista della sicurezza che offre alle organizzazioni un supporto completo per il ciclo di vita. Il suo progetto upstream, Ansible, è il risultato dell'esperienza e della competenza di migliaia di collaboratori in tutto il mondo.
Ansible Automation Platform include numerosi componenti upstream, oltre 140 raccolte Red Hat Ansible Certified Content Collections fornite da più di 60 partner e strumenti as-a-Service per aumentare il ritorno sull'investimento (ROI), che semplificano l'installazione, la configurazione e il supporto dell'automazione negli ambienti aziendali. Offre un'esperienza di automazione end to end per i team interfunzionali, oltre a garantire un'esperienza plug and play per gli sviluppatori, gli ingegneri e i team operativi che si occupano di automazione.
Le funzionalità di Red Hat Ansible Automation Platform, come Red Hat Insights e Automation Analytics, forniscono informazioni accessibili sulle prestazioni dell'automazione, permettendoti di misurarne gli effetti e di monitorarne o risolverne i problemi in modo più preciso ed efficace. L'Automation Mesh offre funzionalità di controllo ed esecuzione scalabili in modo indipendente, portando così l'automazione in prossimità degli endpoint che la richiedono, con tempi di fermo minimi o nulli. Ciò permette di ottenere un'esperienza di automazione coerente ovunque, nel datacenter, nel cloud e all'edge della rete.
Tra le diverse opzioni agentless per l'automazione dell'IT, Ansible si distingue per la sua semplicità e flessibilità oltre alla sua ampia community di utenti.
Report di IDC: Il valore di business di Ansible Automation Platform
Secondo la ricerca di IDC, le organizzazioni che hanno scelto la standardizzazione delle operazioni utilizzando Ansible Automation Platform riscontrano un significativo miglioramento nell'efficienza delle operazioni IT, nella velocità e nella scalabilità, con un vantaggio economico del valore medio annuale di 14,81 milioni USD e un ROI, calcolato su base triennale, del 668%.