Infrastructure Manager (Infra Manager) è un servizio gestito che semplifica e automatizza il deployment e la gestione delle risorse dell'infrastruttura Google Cloud . Utilizzando le configurazioni Terraform (chiamate anche blueprint), Infra Manager fornisce una toolchain Google Cloud gestita per implementare i flussi di lavoro di Infrastructure as Code (IaC).
Con Infra Manager puoi:
- Definisci l'infrastruttura in modo dichiarativo utilizzando Terraform.
- Esegui il deployment delle configurazioni Terraform archiviate nei bucket Cloud Storage, nei repository Git o nelle directory locali.
- Gestisci il ciclo di vita dell'infrastruttura tramite deployment e revisioni.
- Crea deployment di anteprima per vedere l'impatto delle modifiche sulla tua infrastruttura prima di applicarle.
- Utilizza le integrazioni con Cloud Build per i workflow automatizzati.
Infra Manager non gestisce il deployment delle applicazioni sulle tue risorse. Per il deployment delle applicazioni, valuta la possibilità di utilizzare prodotti Google Cloudcome App Lifecycle Manager, Cloud Build e Cloud Deploy o strumenti di terze parti.
Per lavorare con Infra Manager, devi avere familiarità con Terraform. Per scoprire di più su Terraform con Google Cloud, consulta Terraform su Google Cloud.
Per scoprire di più su cos'è Terraform e su come funziona, consulta Che cos'è Terraform? di HashiCorp.
Infra Manager e Infrastructure as Code
Infra Manager ti consente di utilizzare l'IaC per gestire il ciclo di vita delle risorseGoogle Cloud :
- Terraform è definito in modo dichiarativo in una configurazione Terraform. Ciò significa che la configurazione descrive lo stato finale della tua infrastruttura.
- Puoi creare una versione della configurazione Terraform in un repository Git o in un bucket Cloud Storage. Utilizza il controllo delle versioni degli oggetti per controllare le versioni delle configurazioni in un bucket di archiviazione.
- Utilizza Infra Manager per aggiornare il deployment dell'infrastruttura con le revisioni.
Per ogni revisione, Infra Manager archivia quanto segue:
- Log
- La configurazione utilizzata per eseguire la revisione
- L'elenco delle risorse Google Cloud create dalla revisione
- Il file di stato creato nell'ambito di ogni deployment e revisione
Per saperne di più su IaC, consulta Infrastructure as Code su Google Cloud.
Personalizza i deployment utilizzando i valori di input
Puoi parametrizzare le configurazioni Terraform con le variabili di input di Terraform, che Infra Manager chiama valori di input. I valori di input consentono di personalizzare un deployment riutilizzando la stessa configurazione in più ambienti o deployment senza modificare il codice sorgente della configurazione Terraform. Puoi fornire valori per le variabili obbligatorie che non hanno un valore predefinito o eseguire l'override dei valori predefiniti esistenti.
Puoi passare i valori di input quando crei, aggiorni o visualizzi l'anteprima di un deployment. Per ulteriori informazioni su come definire e utilizzare le variabili di input in Terraform, consulta la documentazione sulle variabili di input di HashiCorp.
Come funziona Infra Manager
Di seguito è riportata una descrizione di ciò che accade in uno scenario in cui utilizzi Infra Manager per eseguire il deployment dell'infrastruttura:
- Le risorse dell'infrastruttura su cui eseguire il deployment Google Cloud sono definite in una configurazione Terraform.
- Puoi creare questo file autonomamente o utilizzare una configurazione già scritta per Google Cloud. Per maggiori dettagli, consulta Terraform e Infrastructure Manager.
- Puoi archiviare la configurazione Terraform in un bucket Cloud Storage, in un repository Git o sulla tua macchina locale.
- Quando utilizzi Infra Manager per eseguire il deployment delle risorse da una configurazione Terraform, crei un deployment. Per creare un deployment, Infra Manager:
- Convalida la richiesta. Ad esempio, garantisce che nel comando sia specificata la posizione della configurazione di Terraform.
- Crea un job Cloud Build utilizzando un'immagine container. Questa immagine è di proprietà di Google Cloude viene gestita da quest'ultimo. Per informazioni dettagliate sull'ambiente Cloud Build, consulta Ambiente di runtime. Il job Cloud Build automatizza le seguenti attività:
- Scarica il modulo Terraform dal bucket di archiviazione o dal repository Git.
- Inizializza Terraform (
terraform init) - Convalida la configurazione Terraform (
terraform validate) - Attua la configurazione (
terraform applyoterraform destroyse stai eliminando un deployment) - Trasmette i log di Cloud Build in un bucket di archiviazione creato da Infra Manager.
- Se il deployment non va a buon fine, Infra Manager riprova automaticamente le operazioni
terraform initoterraform applyin determinati scenari, ad esempio se non sono andate a buon fine a causa di interruzioni di rete intermittenti. Questi nuovi tentativi vengono eseguiti un numero limitato di volte.
- Crea un bucket Cloud Storage e archivia i metadati relativi al deployment. Per saperne di più sul deployment e sui metadati, consulta Panoramica del deployment e della revisione.
Al termine del deployment, viene eseguito il provisioning delle risorse Google Cloud come descritto nella configurazione.
Puoi eseguire query sul deployment di Infra Manager per:
- Lo stato del deployment.
- L'elenco delle risorse di cui è stato eseguito il deployment nell'ambito del deployment.
- Dettagli sulle singole risorse che fanno parte di un deployment.
Ambiente di runtime
L'ambiente di runtime di Infra Manager è un ambiente Cloud Build temporaneo. Infra Manager esegue i comandi Terraform in questo ambiente di build Cloud Build, che viene poi eliminato.
Il sistema operativo specifico, il software disponibile e altri dettagli di configurazione dell'ambiente di build di Cloud Build sono dettagli di implementazione interni di Infra Manager e possono cambiare in qualsiasi momento.
Puoi specificare quale versione supportata di Terraform utilizzare per ogni deployment.
Non includere informazioni personali o sensibili
Non includere informazioni personali o sensibili nei valori di configurazione di Terraform.
Per ulteriori informazioni sulle configurazioni Terraform e sui dati sensibili, consulta Valori di configurazione Terraform e dati sensibili.