live-coding

Test-Driven Infrastructure with Ansible

Abstract

Spesso si parla di “Pipeline as Code” e “Infrastructure as Code”… ma cosa significa davvero? Come si mettono in pratica questi concetti? Basta prendere gli script di configurazione e deploy e salvarli in un repository?

No, non può essere solo questo.

Se usiamo un tool come Ansible per gestire l’infrastruttura, scrivere template (Jinja2), definire variabili (YAML) e creare playbook dichiarativi, stiamo a tutti gli effetti scrivendo software usando un DSL.

Se si tratta di software, va trattato come tale! Possiamo applicare i principi dell’eXtreme Programming e della Software Craftsmanship: adottare un branching model, usare linter e analisi statica, scrivere unit e integration test, e persino fare TDD (Test-Driven Development) grazie a strumenti come Molecule e Testinfra.

In questo talk vediamo come trasformare l’automazione dell’infrastruttura in un vero e proprio prodotto software, verificabile attraverso una pipeline di build e delivery affidabile e ripetibile.

Cosa hanno imparato i partecipanti

In questo intervento abbiamo esplorato come cambiare mentalità nel modo di gestire l’infrastruttura, passando dalla semplice automazione alla creazione di software di alta qualità:

  • Cosa significa davvero Infrastructure as Code: capire perché automatizzare non basta e come trattare l’infrastruttura come un vero e proprio prodotto software.
  • Come applicare il TDD con Ansible e Molecule: utilizzare Molecule (con Docker e Testinfra) per guidare lo sviluppo dei ruoli Ansible tramite test automatici e praticare il refactoring in sicurezza.
  • Come garantire la qualità e il supporto multi-OS: verificare le configurazioni su diverse distribuzioni Linux (es. CentOS e Ubuntu) garantendo ripetibilità e stabilità.
  • Come integrare l’automazione in una pipeline CI/CD: strutturare build e delivery dell’infrastruttura applicando le stesse buone pratiche adottate per il codice applicativo.

Approfondimenti

Il racconto esteso del live-coding è nell’articolo Test-Driven Infrastructure.

Materiali

Vuoi lavorare su questo tema con il tuo team?

Raccontami il contesto: vediamo se un talk o un workshop interno può aiutare il tuo team a fare un passo avanti.

Scopri come posso aiutarti