Categorie
Blog

Pillole di Infratructure as Code con Terraform

Pillole di Infrastructure as Code con Terraform

In questo articolo spieghiamo a grandi linee gli argomenti toccati nel webinar tenuto poco più di una settimana fa in cui abbiamo parlato di Infrastructure as Code con Terraform.

Qual è il target che di solito un’azienda si pone quando vuole sfruttare al meglio gli ambienti cloud?

Per Criticalcase è quello di arrivare a realizzare il cosiddetto Devops sul multicloud ibrido, ovvero riuscire a raggiungere un livello di automazione in vari ambiti tale da coinvolgere anche le procedure interne all’azienda e le metodologie, per arrivare a un cambio di paradigma che permetta di sfruttare al meglio gli ambienti multicloud.

L’approccio di Criticalcase è un approccio ibrido in quanto agnostici sulle piattaforme cloud.

Partire dall’infrastructure as code, a nostro avviso dovrebbe essere il primo passo che un’azienda deve affrontare, in quanto è il primo step per la realizzazione delle piattaforme.

Infrastructure as code (IaC)

E’ un processo che permette la gestione ed il provisioning di componenti infrastrutturali sia on premise  presso data center proprietari o di terze parti sia su Cloud.

Viene realizzato attraverso file di definizione che sono leggibili da un programma come Terraform.

L’infrastructure as a code ha molteplici vantaggi, tra i più importanti:

  1. Rendere dinamica l’infrastruttura, tanto che possiamo integrare le componenti infrastrutturali in pipeline di devops
  2. Standardizzare l’infrastruttura, per cui i change a livello di codice infrastrutturali, se applicati tramite IaC, si ripercuotono sulle diverse infrastrutture remote senza rischi di disallineamenti
  3. Attuare policy di DR
  4. Avere un punto unico per la vista di tutte le risorse relative ad una piattaforma, che siano SaaS, PaaS, o IaaS

Terraform è un progetto opensource della HashiCorp in grado di gestire qualsiasi piattaforma Cloud disponibile

  • Automazione
  • Gestione Workflows
  • Ecosystem

Avendo un ecosistema molto vasto, è facile approcciarsi al cloud direttamente tramite Terraform, in quanto sono disponibili circa 150 Providers ufficiali o verificati e oltre 800 community.

  • UFFICIALI –> sono quelli direttamente gestiti da Terraform
  • VERIFICATI –> i fornitori verificati sono di proprietà e gestiti da partner tecnologici di terze parti, ma verificati comunque da Terraform
  • COMMUNITY –> i fornitori della comunità sono pubblicati nel registro Terraform da singoli manutentori o altri membri della comunità terraform.

A differenza degli altri sistemi IAC (Infrastructure as code) che nascono con un approccio imperativo, Terraform è uno strumento importante nato con un approccio dichiarativo che permette di rappresentare gli oggetti infrastrutturali.

Questo vuol dire che viene dichiarato quello che deve essere lo “stato finale” dell’infrastruttura ovvero come si vuole che sia l’infrastruttura.

Sarà quindi Terraform, che con i suoi plugin e i suoi fornitori, si occuperà di implementare l’infrastruttura disegnata inizialmente.

  1. Lo scopo principale del linguaggio Terraform è dichiarare le risorse che rappresentano gli oggetti dell’infrastruttura. Tutte le altre caratteristiche del linguaggio esistono solo per rendere la definizione delle risorse più flessibile e conveniente.
  2. I file di configurazione (formato HCL) descrivono a Terraform i componenti necessari per eseguire una singola applicazione o l’intero datacenter.
  3. Terraform genera un piano di esecuzione che descrive cosa farà per raggiungere lo stato desiderato, quindi lo esegue per costruire l’infrastruttura descritta.
  4. Quando la configurazione cambia, lo stato di Terraform cambia

Da qualche settimana è uscita la nuova versione 1.0 di Terraform che introduce parecchie features come:

  • Maggiore interoperabilità tra gli stati di Terraform
  • Periodi di manutenzione estesi
  • Esperienza di aggiornamento migliorata

BEST PRACTICE

Questa è una lista delle best practice che derivano dall’esperienza che Criticalcase ha avuto con l’utilizzo di Terraform

  1. Un modulo è un contenitore per più risorse che vengono usate insieme.
  2. Ogni configurazione Terraform ha almeno un modulo, noto come root module, che consiste nelle risorse definite nei file .tf nella directory di lavoro principale.
  3. Un modulo può chiamare altri moduli, il che permette di includere le risorse del modulo figlio nella configurazione in modo conciso.
  4. I moduli possono anche essere chiamati più volte, sia all’interno della stessa configurazione che in configurazioni separate, permettendo alle configurazioni delle risorse di essere impacchettate e riutilizzate.
  5. È anche molto importante creare dei propri moduli

Noi di Criticalcase abbiamo sviluppato molti moduli per ogni tipo di componente AWS che andiamo ad utilizzare all’occorrenza.

Primo punto da affrontare quando si deve scalare il sistema è la centralizzazione del management dello stato ed il suo lock (se usato da più punti).

Le data sources permettono a Terraform di utilizzare informazioni definite al di fuori di Terraform, definite da un’altra configurazione separata di Terraform, o modificate da funzioni.

Ogni provider può offrire data sources insieme al suo set di tipi di risorse.

In questo caso non si andrà ad utilizzare una risorsa già presente su Terraform ma si andrà a far eseguire un programma al codice sviluppato.

Anche se i proprietario di Terraform (HasciCorp) consiglia di non utilizzare i Provisioners se non quando non se ne può realmente fare a meno, con Terraform non è però possibile gestire ogni cosa e quindi si dovrà intervenire sulle macchine remote (se si tratta di Server), oppure eseguire delle azioni locali.

Sono di 3 tipi due dei quali richiedono la connessione ssh ai server:

  1. Local Exec
  2. Remote Exec – Via SSH
  3. File – Via SSH

Alcuni tipi di risorse includono nested blocks che possono essere reiterati N volte sui “setting“, che in genere rappresentano oggetti separati correlati (o incorporati all’interno) dell’oggetto contenitore.

Oltre alle best practice, ci sono anche dei WARNING che possono essere riassunti in 3 punti:

  1. Spazi di lavoro: a volte troppo rischiosi
  2. Terraform Cloud – Secrets on Cloud – Lock-in
  3. Registro moduli esterni – Sei veramente consapevole di quello che stai facendo?

Se siete interessati ad approfondire l’argomento, qui di seguito trovate il video del webinar tenuto dal nostro Delivery Manager e Cloud Architect Pasquale Lepera

Se vuoi approfondire qualche argomento in merito al webinar, o se vuoi ricevere le slide che sono state proiettate, contattaci tramite il seguente form.

New call-to-action
Categorie
Blog

TERRAFORM VS ALTRI STRUMENTI

TERRAFORM VS ALTRI STRUMENTI

Oggi continuiamo il discorso su Terraform, il tool open source per la progettazione e la gestione di infrastrutture IT: uno strumento semplice e molto efficiente, compatibile con la maggior parte dei provider sul mercato.

Nelle prossime righe vedremo più a fondo i principali benefit offerti da Terraform ai suoi utilizzatori e come si differenzia dagli altri strumenti in circolazione nel settore IT.

-L’infrastruttura come un codice
Come già accennato negli scorsi post, uno dei maggiori vantaggi riguarda la possibilità di creare, modificare e aggiornare l’infrastruttura come se fosse un vero e proprio codice. Questo elimina molte problematiche e inoltre consente agli operatori di condividere e riutilizzare l’infrastruttura.

-Piani di esecuzione
Terraform possiede uno strumento di pianificazione esecutiva che mostra le modifiche prima che vengano effettivamente applicate. Questa feature consente di evitare qualsiasi sorpresa quando viene manipolata l’infrastruttura.

-Grafico delle risorse
Terraform crea un grafico di tutte le risorse infrastrutturali, e parallelamente mostra la creazione e le modifiche di ogni risorsa non dipendente. Grazie a questo è possibile progettare l’infrastruttura nel modo più efficiente possibile.

– Automazione delle modifiche
Modifiche complesse degli asset possono essere applicate all’infrastruttura con il minimo intervento umano. Attraverso gli strumenti appena citati, ossia la pianificazione esecutiva e il grafico delle risorse, si può conoscere in modo esatto quello che Terraform modificherà e in quale ordine verranno applicati i cambiamenti, eliminando molti possibili errori umani.

-Flessibilità
Terraform fornisce un’elevata flessibilità a livello di risorse e provider. Il modello consente di rappresentare tutto, dagli hardware fisici alle email, e grazie a questa flessibilità può essere utilizzato per risolvere molte problematiche. Infatti rispetto agli altri programmi, l’uso di Terraform non è mutualmente esclusivo, ma è invece compatibile con molteplici strumenti e fornitori.

Vuoi utilizzare Terraform ma non sai da dove iniziare? Contattaci, un nostro specialista ti fornirà una consulenza gratuita e senza impegno!

 
Facebook
Twitter
LinkedIn

Contattaci

Compila il form e un nostro esperto ti ricontatterà entro 24 ore: non vediamo l’ora di conoscerti!

Categorie
Blog

INTRODUZIONE ALL’USO DI TERRAFORM

INTRODUZIONE ALL’USO DI TERRAFORM

Scrivi, progetta e crea l’infrastruttura come un codice con Terraform

La scorsa settimana abbiamo parlato di Terraform, un tool open source per creare e gestire le infrastrutture in modo totalmente innovativo. Oggi continueremo a parlare di questo strumento, fornendo una breve introduzione all’uso di Terraform. Innanzitutto riprendiamo la definizione del programma. Terraform è un tool estremamente semplice e potente, che consente di creare, modificare e migliorare la produzione di infrastrutture in modo del tutto sicuro.  Si tratta di uno strumento open source che opera decodificando le API in file di configurazione esplicativi che possono essere condivisi tra i membri dello staff e trattati esattamente come un codice, pertanto possono anche essere modificati, revisionati, aggiornati ecc.

Di seguito vi descriviamo i principali passaggi operativi necessari per costruire un’infrastruttura con Terraform, e i relativi vantaggi che il tool mette a disposizione degli utilizzatori.

  • Scrivere l’infrastruttura come se fosse un codice
    Definire l’infrastruttura come un codice accresce la produttività e la trasparenza operativa e permette di condividere le varie configurazioni, facilitando la collaborazione tra i membri del team. Inoltre è possibile tracciare l’intera “storia” delle versioni infrastrutturali e verificare la sua evoluzione. Terraform è anche Automation Friendly: qualsiasi elemento che può essere codificato può anche essere automatizzato, semplificando massivamente le operazioni complesse.
  • Progettare e pianificare preventivamente le modifiche
    Con Terraform effettuare qualsiasi modifica è molto semplice, grazie alla possibilità di pianificare ogni cambiamento e di verificare le preview delle modifiche prima di applicarle. Il processo di progettazione si snellisce notevolmente proprio perchè è possibile comprendere preventivamente gli eventuali effetti che anche il più piccolo cambiamento potrebbe causare sull’infrastruttura. Progetto e applicazione della modifica sono infatti separati, garantendo la riduzione degli errori: il progetto mostra cosa dovrebbe accadere, l’applicazione esegue la modifica. Una caratteristica fondamentale di Terraform è inoltre la presenza di un unico workflow completamente sicuro, attraverso il quale è possibile creare infrasrutture lavorando con differenti provider (AWS, GCP, Azure, OpenStack, VMware, e molti altri).
  • Creare un’infrastruttura riproducibile
    Terraform abilita gli operatori ad utilizzare facilmente le stesse configurazioni in più luoghi per ridurre gli errori e risparmiare tempo. Uno dei vantaggi di Terraform è che le configurazioni possono essere raggruppate in moduli e convidise in modo semplice tra team e aziende. Inoltre Terraform consente di combinare senza alcuno sforzo i sistemi infrastrutturali di differenti provider di alto livello (ad esempio, è possibile attivare un server presso un fornitore e successivamente aggiungere un DNS con l’IP di un altro vendor).

Dopo questa breve introduzione all’utilizzo di Terraform, esamineremo le key features di questo strumento: non perdetevi il prossimo articolo dedicato a Terraform! 🙂

Terraform è quello che cerchi? Compila il form per una consulenza gratuita e senza impegno con i nostri specialisti cloud.

Facebook
Twitter
LinkedIn

Contattaci

Compila il form e un nostro esperto ti ricontatterà entro 24 ore: non vediamo l’ora di conoscerti!

Categorie
Blog

TERRAFORM: LA NUOVA FRONTIERA NELLA GESTIONE DI INFRASTRUTTURE

TERRAFORM: LA NUOVA FRONTIERA NELLA GESTIONE DI INFRASTRUTTURE

Cos’è Terraform e quali sono le sue funzionalità di base?

Oggi parleremo di Terraform, un tool innovativo per progettare e gestire in maniera semplice ed efficiente le infrastrutture IT.

Nel mondo IT le esigenze e i carichi di lavoro cambiano continuamente e la richiesta di deploy delle applicazioni e delle infrastrutture è costante, senza sosta. I tempi in cui gli amministratori IT installavano i server manualmente stanno ormai scomparendo, anche se lentamente. Come in tutte le situazioni che richiedono un intervento manuale, qualcosa deve andare a sostituire il “processo umano”, e in questo caso si tratta dell’infrastruttura come codice.

In questo modo, usando un file strutturato, un semplice pezzo di codice, sei in grado di controllare ogni cosa all’interno della tua infrastruttura: network, risorse, storage, DNS, database, sicurezza, scalabilità, automazione, in poche parole tutto. Infatti, con il crescente utilizzo di infrastrutture e tecnologie cloud, l’esigenza di una soluzione che non dipendesse esclusivamente da un unico fornitore divenne una necessità. Gli ambienti cloud subivano malfunzionamenti e, avendo tutte le uova in unico paniere, diventavano molto vulnerabili. Gli IT manager hanno quindi iniziato a cercare un modo per distribuire i carichi di lavoro tra il cloud e differenti provider per minimizzare l’esposizione al rischio. Il pezzo mancante in questo puzzle era un singolo tool che permettesse all’utente finale (che fosse l’IT manager o lo sviluppatore) di gestire i molteplici ambienti con un set di strumenti standardizzato. Ed ecco Terraform!

Terraform è uno strumento che consente di costruire, modificare e aggiornare l’infrastruttura in modo semplice ed efficiente. Terraform è compatibile con i servizi di provider noti così come con soluzioni customizzate, inclusa  Openstack. Terraform è inoltre estremamente facile da installare e compatibile con quasi tutte le piattaforme.

Attualmente funziona con i seguenti provider, consentendo il controllo di diversi tipi di risorse ed infrastrutture:

  • Atlas (workflow engine di Hashicorp )
  • AWS, GCE, Azure, OpenStack, DigitalOcean, Docker, CloudStack, Heroku, vSphere, vCloud (Infrastuttura Cloud)
  • Chef, Rundeck (gestione configurazione)
  • CloudFlare, DNSMadeEasy, Dyn, DNSimple (provider DNS)
  • Mailgun (Email)
  • Consul, PowerDNS (DNS e servizio di registrazione)
  • MySQL, PostgreSQL (Database)
  • StatusCake (Monitoraggio)
  • TLS (Certificati)

In particolare, Terraform ha una serie di moduli che permettono di gestire l’infrastruttura Openstack. Supporta diversi componenti di Openstack, nel dettaglio:

  • Block Storage
  • Compute
  • Networking
  • Load Balancer
  • Firewall
  • Object Storage

Un componente che non è supportato da Terraform è Heat (orchestration engine), per una ragione abbastanza ovvia: Terraform è esso stesso un tool di orchestrazione, e una duplicazione non è mai un bene.

Terraform è uno strumento innovativo, in grado di semplificare i processi di deployment e di risolvere le problematiche relative alla molteplicità dei vendor. Con un solo tool puoi gestire efficacemente l’infrastruttura e farlo in modo rapido e semplice. La prossima volta approfondiremo il discorso e vedremo nel dettaglio le specifiche di questo strumento.

Vuoi saperne di più su Terraform? Compila il form e sarai richiamato il prima possibile da nostri esperti per una consulenza gratuita!

 
Facebook
Twitter
LinkedIn

Contattaci

Compila il form e un nostro esperto ti ricontatterà entro 24 ore: non vediamo l’ora di conoscerti!

Richiedi la tua prova gratuita

Ehi! Stai già andando via?

Iscriviti alla nostra newsletter per restare aggiornato sulle novità dell’universo Criticalcase