ansible

Automation


Tutti i nostri sistemi sono gestiti da Ansible, un tool agentless in grado di orchestrare e automatizzare i processi di deployment.

La pipeline di deployment prevede la distribuzione del codice, packages, libraries e ogni altro componente utilizzato dall’applicazione sugli ambienti di testing, staging o production così come la loro esecuzione o caricamento all’interno dell’ambiente. Gli ambienti possono essere formati da un singolo nodo o da un cluster di servizi. Durante il deployment, se necessario,  è possibile configurare il servizio tramite dati sensibili come chiavi, password, token, etc. che di default non risiedono all’interno del repository principale.

La nostra combinazione vincente è l’utilizzo di Ansible + GitLab nella pipeline di deployment in tutti gli ambienti o contesti di rilascio, tramite GitLab possiamo eseguire un trigger differente in base alle azioni effettuate sul repository, come ad esempio il push sul  master branch  oppure su branch dedicato ai deployment. Il trigger scatena un comando Ansible che esegue il caricamento di un Playbook (sequenza di comandi) in grado di eseguire tutte le operazioni necessarie per il corretto rilascio delle nuove versioni.

Ansible GitLab DevOps automation

I Playbook di Ansible sono le nostre interfacce di comunicazione verso le architetture in Cloud e sono suddivisi in moduli che ci garantiscono:

  • Flessibilità Possiamo attivare o disattivare il modulo in qualsiasi momento oppure utilizzarlo solo in certi contesti / ambienti
  • Disponibilità Sono a loro volta repository GIT indipendenti, posso risiedere su qualsiasi GIT server e possono essere ad accesso pubblico o privato
  • Versatilità Tutte le configurazioni o comportamenti possono essere integrati esternamente, ogni modulo può essere personalizzato in base alle necessità di utilizzo
  • Scalabilità Ogni modulo può essere aggiornato indipendentemente dal resto degli altri moduli e ampliato nelle sue funzionalità

Tutto questo si traduce in operatività, un sistema completo per essere eseguito richiede il tempo necessario per eseguire tutti i comandi e le inizializzazioni dei servizi, non sono previsti interventi manuali se non in caso di errore o failure della procedura.

Le architetture possono essere di qualsiasi tipologia e dimensione: Cluster di Server Fisici, Server Virtuali (VPS), Cloud Computing

DevOps


Supportiamo tutte quelle realtà che hanno la necessità di integrare o migliore il ciclo di vita delle loro applicazioni, siti web, mobile app, web service e ogni altro servizio con esigenze di affidabilità, sicurezza e performance su architetture in Cloud Computing.