Ansible è un software open source per il configuration management, l’automazione e l’orchestrazione su larga scala di sistemi e infrastrutture IT. La sua comunità di sviluppo è oggi attiva e partecipata. Con Red Hat Ansible Automation viene messa a disposizione delle aziende una suite di prodotti fruibile in ambito enterprise grazie ai servizi a valore aggiunto che Red Hat aggiunge a questo strumento software innovativo e di grande successo.
La suite di Ansible è composta dall’Engine e da Tower, rispettivamente il motore di automazione e il manager grafico della soluzione.
Abbiamo chiesto a Luca Villa, Senior Solution Architect, Red Hat Italy, di spiegarci come lo si utilizza
Innanzitutto, a chi è destinato Ansible?
Ansible è un software open source pensato per l’automazione su larga scala di sistemi e infrastrutture IT. Si tratta dell’unico linguaggio per la descrizione dei processi di automazione che, grazie alla sua semplicità, può essere utilizzato efficacemente attraverso i diversi team e funzioni che operano nell’IT, dagli amministratori di sistemi e reti fino agli sviluppatori e ai manager.
Red Hat Ansible Automation – suite di prodotti composta da Ansible Engine e Ansible Tower – aggiunge alla versatilità ed efficacia di Ansible tutti gli elementi necessari perché possa essere adottato con serenità in un contesto aziendale. In pratica si passa da un progetto software comunitario a un prodotto vero e proprio, attraverso processi di Quality Assurance che garantiscono alle imprese la necessaria stabilità, il supporto tecnico e molto altro.
All’interno della suite, Ansible Engine costituisce il motore di automazione che interpreta la descrizione dei flussi di automazione contenuta all’interno dei playbook, file testuali scritti in linguaggio YAML.
La componente Ansible Tower aggiunge le funzionalità che rendono Ansible fruibile in un contesto complesso quale quello delle aziende, come ad esempio: dashboard, interfaccia utente web-based, autenticazione centralizzata, multi-tenancy, accesso role-based, scheduler dei job, auditing e un set completo di API RESTful.
Come si integra nelle piattaforme esistenti?
Ansible è pensato per essere multi-piattaforma in quanto in grado di veicolare processi di automazione su una quantità innumerevole di sistemi target diversi tra loro. Tra le piattaforme che può gestire troviamo i sistemi oggi più diffusi come Linux e Windows e le varie declinazioni di Unix (HP-UX, AIX, Solaris). Si integra efficacemente con le principali piattaforme di virtualizzazione e con quelle di cloud pubblico più diffuse e sta riscuotendo un grande successo nell’ambito della gestione delle configurazioni di apparati di rete, grazie alla disponibilità di centinaia di moduli dedicati per gli apparati di molti vendor.
Uno dei punti di forza di Ansible è indubbiamente la facilità con cui è possibile renderlo operativo all’interno delle infrastrutture esistenti, grazie al fatto che non richiede l’installazione di agenti sui nodi target, ma utilizza canali di accesso sicuri che sono disponibili nativamente sui sistemi (ad es. SSH su Linux e Unix o WINRM su Windows).
Parlando di integrazione non possiamo ignorare che Ansible Tower mette a disposizione l’integrazione nativa con innumerevoli sistemi e tool usati in azienda che vanno dai sistemi di gestione dei log (es. Splunk) ai sistemi di gestione del codice sorgente o SCM (come git o github) fino ai sistemi di messaggistica per la gestione delle notifiche (ad es. email, o sistemi di instant messaging).
Non possiamo non menzionare che Ansible Tower si integra con i sistemi di autenticazione centralizzata quali Active Directory o LDAP, offrendo un’esperienza di utilizzo semplificata per gli utenti aziendali.
Infine non dimentichiamo che, grazie alla disponibilità di un set completo di RESTful API, Ansible Tower può essere facilmente integrato e armonizzato con i sistemi esistenti in azienda, come ad esempio i sistemi di gestione dei workflow.
Quali competenze richiede per essere utilizzato in azienda?
L’utilizzo della sintassi YAML, particolarmente semplice e leggibile anche da parte di chi non ne possiede una conoscenza approfondita, lo rendono uno strumento ideale, facilmente approcciabile anche da persone poco avvezze allo sviluppo software come gli amministratori di sistema o i manager.
Per chi ambisce ad una sua adozione piena attraverso una conoscenza approfondita, va detto comunque che la curva di apprendimento è piuttosto modesta, specialmente se confrontata con quella di altri strumenti analoghi, come Puppet o Chef.
Da questo punto di vista quindi, Ansible si candida, con ottime referenze, a essere lo strumento di elezione per implementare processi di automazione in maniera pervasiva attraverso tutti i dipartimenti e le unità produttive, ponendosi come strumento ideale di condivisione e collaborazione per il raggiungimento di obiettivi comuni e condivisi. Tutto questo altro non è che l’implementazione della cultura DevOps, uno dei pilastri del processo di trasformazione digitale che tutte le aziende sono ormai chiamate ad affrontare.
Che benefici porta e come si misurano?
L’introduzione e la diffusione dell’automazione in azienda con un approccio strutturato e pervasivo producono effetti positivi e un rapido ritorno dell’investimento.
I benefici più evidenti sono legati ad aspetti quali:
- la drastica riduzione dell’impiego di risorse e competenze pregiate per l’esecuzione di task ripetitivi a basso valore aggiunto;
- l’eliminazione di malfunzionamenti dovuti a errori umani;
- la definizione di standard (di sistemi, infrastrutture, configurazioni di interi stack applicativi) che siano descritti nel codice e quindi corrispondenti alla realtà e non definiti solo sulla carta;
- la descrizione delle infrastrutture come codice che rende possibile il deploy (o re-deploy) di interi datacenter in modo automatico e con tempi estremamente contenuti;
- la capacità di gestire la complessità crescente in un contesto sempre più eterogeneo;
- un maggiore controllo e razionalizzazione delle infrastrutture e dei sistemi esistenti, razionalizzando i costi e creando i presupposti per abilitare i processi di trasformazione;
Con quali soluzioni compete e in cosa si differenzia?
Ansible è inserito nel segmento dei sistemi di automation e configuration management. Si tratta di un mercato piuttosto affollato e ricco di competitor sia nell’ambito open source sia in quello del software proprietario.
In realtà è difficile effettuare una comparazione diretta perché Ansible dispone di caratteristiche peculiari che lo configurano come uno strumento unico sul mercato.
La sua semplicità di adozione e utilizzo spicca nel confronto con prodotti che sono sul mercato da molto più tempo e hanno una reputazione consolidata. Inoltre Ansible si differenzia per il fatto di essere agentless e per la maggiore versatilità che lo vede efficacemente impiegato in ambiti di automazione, configuration management e orchestrazione, applicati a tipologie di target molto più ampie e variegate rispetto all’ambito coperto dagli strumenti tradizionali.
Non è quindi un caso se Ansible oggi è di gran lunga lo strumento che riscuote il maggiore interesse e la sua comunità di sviluppo è la più vivace, attiva e partecipata nell’ambito dei software di automazione e configuration management. Mi riferisco qui ai prodotti in ambito open source che dispongono di una comunità di sviluppo di riferimento, mentre per i prodotti proprietari si aggiunge la fatica di rimanere al passo con i tassi elevati di innovazione che oggi sono appannaggio quasi esclusivo del mondo dell’open source.
Come va pianificata l’automazione delle infrastrutture, su quale orizzonte temporale, con quali obiettivi, chi li stabilisce?
Grazie alla sua efficacia e alla semplicità di adozione a tutti i livelli, l’automazione con Ansible spesso si diffonde quasi spontaneamente all’interno dei team che iniziano a utilizzarlo, magari dapprima in un ambito molto mirato e ristretto.
Questo ovviamente configura il rischio di assistere a uno sviluppo disorganico e caotico dei processi di automazione, i quali si focalizzano sulla risoluzione di problemi puntuali e locali faticando a cogliere tutti i benefici che un approccio strutturato e organico a livello aziendale può offrire.
L’adozione di una strategia di automazione in azienda deve quindi innestarsi a due livelli: va mantenuta e promossa l’adozione a livello di singoli team, al fine di far crescere le competenze e diffondere l’approccio culturale nuovo che questo processo porta con sé; è però fondamentale anche costruire una visione e un approccio strategico all’automazione pervasiva da parte del management. Questo consente di poter definire e allocare le risorse necessarie per disegnare un percorso di automazione organizzata e diffusa, per creare gli standard comuni e assicurarsi che l’adozione sia piena a tutti i livelli. Solo in questo modo sarà possibile raccogliere pienamente i frutti di questo cambiamento.