Introduzione
Infrastructure as Code (IaC) rappresenta una metodologia DevOps di base che consente ai team di gestire l'infrastruttura tramite codice anziché processi manuali. Questo approccio è diventato essenziale per la distribuzione moderna del software. Molti esperti considerano IaC un prerequisito per un'implementazione DevOps riuscita.
Anziché configurare manualmente i server o usare script ad hoc, IaC gestisce l'infrastruttura allo stesso modo in cui gli sviluppatori gestiscono il codice dell'applicazione. Ciò significa che reti, server e altre risorse sono definite in file sotto controllo di versione che possono essere esaminati, testati e distribuiti in modo coerente.
I principi chiave di IaC includono:
- Controllo della versione: Definizioni dell'infrastruttura archiviate in Git o in altri sistemi di controllo della versione.
- Test automatizzati: Modifiche dell'infrastruttura convalidate prima della distribuzione.
- Monitoraggio continuo: Stato dell'infrastruttura monitorato e gestito.
- Riproducibilità: La stessa configurazione produce risultati identici ogni volta.
Le piattaforme cloud moderne come Azure, AWS e Google Cloud offrono risorse elastiche su richiesta. Per sfruttare appieno questa flessibilità, le organizzazioni devono adottare procedure IaC nell'intero portfolio di infrastrutture. Strumenti come i modelli di Azure Resource Manager (ARM), Terraform, Bicep e Ansible consentono ai team di effettuare il provisioning e configurare l'infrastruttura a livello di codice.
Questo modulo illustra i concetti fondamentali di IaC, le strategie di distribuzione dell'ambiente e gli approcci di gestione della configurazione. Verranno fornite informazioni sugli stili di configurazione imperativi e dichiarativi e sulle operazioni idempotenti che garantiscono risultati coerenti.
Obiettivi di apprendimento
Dopo aver completato questo modulo, sarai in grado di:
- Implementare l'automazione della distribuzione dell'ambiente usando Infrastruttura come codice.
- Progettare strategie di gestione della configurazione con il controllo della versione.
- Scegliere tra approcci di configurazione imperativi e dichiarativi.
- Applicare i principi di configurazione idempotenti per un'infrastruttura coerente.
Prerequisiti
- Conoscenza dei principi e delle procedure devOps.
- Familiarità con i sistemi di controllo della versione (utili ma non necessari).
- Conoscenza di base dei concetti relativi al cloud computing.