Infrastructure as Code su Cloud de Confiance

Infrastructure as Code (IaC) è il processo di provisioning e gestione dell'infrastruttura dell'applicazione software utilizzando il codice anziché interfacce utente grafiche o script a riga di comando.

Il provisioning dell'infrastruttura dell'applicazione in genere comporta la configurazione e la gestione di macchine virtuali, connessioni al database, spazio di archiviazione e altri elementi dell'infrastruttura. La gestione manuale di questa infrastruttura richiede molto tempo ed è soggetta a errori, soprattutto quando si gestiscono applicazioni su larga scala.

L'infrastruttura come codice (IaC) consente di definire l'infrastruttura con file di configurazione, che consentono di creare, modificare e gestire l'infrastruttura in modo sicuro e ripetibile. Puoi definire configurazioni delle risorse che puoi versionare, riutilizzare e condividere. L'IaC ti consente di specificare lo stato desiderato dell'infrastruttura. Puoi poi eseguire il deployment della stessa configurazione più volte per creare ambienti di sviluppo, test e produzione riproducibili.

IaC ti consente di trattare il provisioning e la configurazione dell'infrastruttura allo stesso modo in cui gestisci il codice dell'applicazione. Puoi archiviare la logica di configurazione del provisioning nel controllo del codice sorgente e sfruttare le pipeline di integrazione e deployment continui (CI/CD).

Vantaggi di IaC

L'utilizzo di IaC per configurare e gestire l'infrastruttura dell'applicazione è una best practice per una serie di casi d'uso comuni. Google gestisce i propri sistemi con IaC e l'ha stabilita come pratica standard internamente.

IaC offre i seguenti vantaggi:

  • Puoi definire la tua infrastruttura in base ai tuoi requisiti e riutilizzare la stessa configurazione per creare più ambienti in modo coerente.
  • Puoi automatizzare la creazione e la gestione delle risorse cloud, inclusi gli ambienti di deployment e test.
  • Puoi trattare le modifiche all'infrastruttura come le modifiche all'applicazione. Ad esempio, puoi assicurarti che le modifiche alla configurazione vengano esaminate e convalidate automaticamente. La gestione degli ambienti di produzione tramite processi controllati dalle modifiche utilizzando IaC è una best practice.
  • Puoi conservare una cronologia di tutte le modifiche alla configurazione. Le modifiche possono essere controllate e annullate.
  • Puoi avere un'unica fonte attendibile per la tua infrastruttura cloud.

Strumenti IaC per Cloud de Confiance

Cloud de Confiance by S3NS è strettamente integrato con molti strumenti IaC. Scegli uno dei seguenti strumenti a seconda del tuo caso d'uso:

  • Terraform

    In generale, per configurare e gestire l'infrastruttura Cloud de Confiance utilizzando il codice, utilizza il provider Terraform per Cloud de Confiance.

    HashiCorp Terraform è uno strumento IaC che consente di definire le risorse nel cloud e on-premise in file di configurazione leggibili che puoi versionare, riutilizzare e condividere. Puoi quindi utilizzare un flusso di lavoro coerente per eseguire il provisioning e gestire tutta la tua infrastruttura durante il suo ciclo di vita. Per saperne di più, consulta la panoramica di Terraform su Cloud de Confiance.

  • Terraform Cloud e Terraform Enterprise

    Se hai bisogno di una gestione completa delle modifiche con Terraform in tutta la tua organizzazione, utilizza Terraform Cloud o Terraform Enterprise.

    Terraform Cloud è un'applicazione Software as a Service (SaaS) che esegue Terraform in un ambiente remoto stabile e archivia in modo sicuro lo stato e i secret. Terraform Cloud si integra anche con la CLI Terraform e si connette a sistemi di controllo della versione (VCS) comuni come GitHub, GitLab e Bitbucket. Quando connetti un workspace Terraform Cloud a un repository VCS, i nuovi commit e le nuove modifiche possono attivare automaticamente i piani Terraform. Terraform Cloud offre anche un'API, che ti consente di integrarlo nei flussi di lavoro esistenti.

    Terraform Enterprise ti consente di configurare una distribuzione autogestita di Terraform Cloud. Offre limiti di risorse personalizzabili ed è ideale per le organizzazioni con requisiti di sicurezza e conformità rigorosi.

    Per saperne di più, consulta la pagina delle versioni di Terraform nella documentazione di HashiCorp.

  • Cloud Development Kit per Terraform

    Se vuoi generare un'infrastruttura con un linguaggio di programmazione di uso generale anziché utilizzare HashiCorp Configuration Language (HCL), utilizza Cloud Development Kit for Terraform (CDKTF).

    CDKTF ti consente di configurare Terraform utilizzando un linguaggio di programmazione per definire ed eseguire il provisioning Cloud de Confiance dell'infrastruttura e ti consente di utilizzare la toolchain esistente per processi come test e gestione delle dipendenze.

  • Pulumi

    Pulumi è un altro strumento che puoi utilizzare per eseguire il provisioning dell'infrastruttura utilizzando linguaggi di programmazione. Puoi utilizzare il Cloud de Confiance provider per Pulumi per creare codice dell'infrastruttura utilizzando linguaggi di programmazione come TypeScript, Python, Go, C#, Java o YAML.

  • Crossplane

    Un'altra opzione per gestire le risorse Cloud de Confiance tramite Kubernetes è utilizzare Crossplane.

    Crossplane connette il tuo cluster Kubernetes a risorse esterne non Kubernetes e consente ai team della piattaforma di creare API Kubernetes personalizzate per utilizzare queste risorse. Crossplane funge da controller Kubernetes per monitorare lo stato delle risorse esterne e fornire l'applicazione dello stato. Con Crossplane installato in un cluster Kubernetes, gli utenti comunicano solo con Kubernetes. Crossplane gestisce la comunicazione con risorse esterne come Cloud de Confiance. Se qualcosa modifica o elimina una risorsa al di fuori di Kubernetes, Crossplane annulla la modifica o ricrea la risorsa eliminata.

    Per saperne di più, consulta la documentazione di Crossplane.

  • Ansible

    Se vuoi automatizzare il provisioning, la gestione della configurazione, il deployment delle applicazioni, l'orchestrazione e altri processi IT, utilizza Ansible. Per ulteriori informazioni, consulta Ansible per Cloud de Confiance.

Passaggi successivi