Infraestrutura como código no Cloud de Confiance

A infraestrutura como código (IaC) é o processo de aprovisionamento e gestão da infraestrutura de aplicações de software através de código, em vez de interfaces gráficas do utilizador ou scripts de linhas de comando.

O aprovisionamento da infraestrutura de aplicações envolve normalmente a configuração e a gestão de máquinas virtuais, ligações à base de dados, armazenamento e outros elementos de infraestrutura. A gestão manual desta infraestrutura é demorada e propensa a erros, especialmente quando se gerem aplicações em grande escala.

A IaC permite-lhe definir a sua infraestrutura com ficheiros de configuração, o que lhe permite criar, alterar e gerir a sua infraestrutura de forma segura e repetível. Pode definir configurações de recursos que pode controlar por versão, reutilizar e partilhar. A IaC permite-lhe especificar o estado pretendido da sua infraestrutura. Em seguida, pode implementar a mesma configuração várias vezes para criar ambientes de desenvolvimento, teste e produção reproduzíveis.

A IaC permite-lhe tratar o aprovisionamento e a configuração da sua infraestrutura da mesma forma que trata o código da aplicação. Pode armazenar a lógica de configuração de aprovisionamento no controlo de origem e tirar partido dos pipelines de integração contínua e implementação contínua (CI/CD).

Vantagens da IaC

A utilização da IaC para configurar e gerir a infraestrutura da sua aplicação é uma prática recomendada para vários exemplos de utilização comuns. A Google gere os respetivos sistemas com IaC, e estabeleceu-o como uma prática padrão internamente.

A IaC oferece as seguintes vantagens:

  • Pode definir a sua infraestrutura com base nos seus requisitos e reutilizar a mesma configuração para criar vários ambientes de forma consistente.
  • Pode automatizar a criação e a gestão dos seus recursos na nuvem, incluindo para ambientes de implementação e teste.
  • Pode tratar as alterações de infraestrutura como trata as alterações de aplicações. Por exemplo, pode garantir que as alterações à configuração são revistas e validadas automaticamente. A gestão de ambientes de produção através de processos controlados por alterações com a IaC é uma prática recomendada.
  • Pode manter um histórico de todas as alterações de configuração. As alterações podem ser auditadas e revertidas.
  • Pode ter uma única fonte de verdade para a sua infraestrutura na nuvem.

Ferramentas de IaC para Cloud de Confiance

OCloud de Confiance by S3NS está totalmente integrado com muitas ferramentas de IaC. Escolha uma das seguintes ferramentas consoante o seu exemplo de utilização:

  • Terraform

    Em geral, para configurar e gerir a infraestrutura do Cloud de Confiance através de código, use o fornecedor do Terraform para o Cloud de Confiance.

    O HashiCorp Terraform é uma ferramenta de IaC que lhe permite definir recursos na nuvem e no local em ficheiros de configuração legíveis que pode controlar por versão, reutilizar e partilhar. Em seguida, pode usar um fluxo de trabalho consistente para aprovisionar e gerir toda a sua infraestrutura ao longo do respetivo ciclo de vida. Para mais informações, consulte o artigo Vista geral do Terraform no Cloud de Confiance.

  • Terraform Cloud e Terraform Enterprise

    Se precisar de uma gestão de alterações completa com o Terraform na sua organização, use o Terraform Cloud ou o Terraform Enterprise.

    O Terraform Cloud é uma aplicação de software como serviço (SaaS) que executa o Terraform num ambiente remoto estável e armazena de forma segura o estado e os segredos. O Terraform Cloud também se integra com a CLI do Terraform e liga-se a sistemas de controlo de versões (VCS) comuns, como o GitHub, o GitLab e o Bitbucket. Quando associa um espaço de trabalho do Terraform Cloud a um repositório de VCS, as novas consolidações e alterações podem acionar automaticamente planos do Terraform. O Terraform Cloud também oferece uma API, o que lhe permite integrá-lo em fluxos de trabalho existentes.

    O Terraform Enterprise permite-lhe configurar uma distribuição autoalojada do Terraform Cloud. Oferece limites de recursos personalizáveis e é ideal para organizações com requisitos rigorosos de segurança e conformidade.

    Para mais informações, consulte a página das edições do Terraform na documentação da Hashicorp.

  • Cloud Development Kit para Terraform

    Se quiser gerar infraestrutura com uma linguagem de programação de uso geral, em vez de usar a linguagem de configuração da Hashicorp (HCL), use o Cloud Development Kit for Terraform (CDKTF).

    O CDKTF permite-lhe configurar o Terraform através de uma linguagem de programação para definir e aprovisionar Cloud de Confiance a infraestrutura, e permite-lhe usar a sua cadeia de ferramentas existente para processos como testes e gestão de dependências.

  • Pulumi

    O Pulumi é outra ferramenta que pode usar para aprovisionar infraestrutura através de linguagens de programação. Pode usar o Cloud de Confiance fornecedor para o Pulumi para criar código de infraestrutura com linguagens de programação como TypeScript, Python, Go, C#, Java ou YAML.

  • Crossplane

    Outra opção para gerir Cloud de Confiance recursos através do Kubernetes é usar o Crossplane.

    O Crossplane liga o seu cluster do Kubernetes a recursos externos que não são do Kubernetes e permite que as equipas de plataformas criem APIs Kubernetes personalizadas para consumir esses recursos. O Crossplane funciona como um controlador do Kubernetes para monitorizar o estado dos recursos externos e aplicar o estado. Com o Crossplane instalado num cluster do Kubernetes, os utilizadores comunicam apenas com o Kubernetes. O Crossplane gere a comunicação com recursos externos, como Cloud de Confiance. Se algo modificar ou eliminar um recurso fora do Kubernetes, o Crossplane reverte a alteração ou recria o recurso eliminado.

    Para mais informações, consulte a documentação do Crossplane.

  • Ansible

    Se quiser automatizar o aprovisionamento, a gestão da configuração, a implementação de aplicações, a orquestração e outros processos de TI, use o Ansible. Para mais informações, consulte o artigo Ansible para Cloud de Confiance.

O que se segue?