Explore a implantação do ambiente
Suponha que você já recebeu uma chamada de suporte de emergência no meio da noite por causa de um servidor com falha.
Nesse caso, você sabe a dor de pesquisar em várias planilhas ou até mesmo na sua memória — para acessar as etapas manuais de configuração de uma nova máquina.
Há também a dificuldade de manter os ambientes de desenvolvimento e produção consistentes.
Uma maneira mais fácil de remover a possibilidade de erro humano ao inicializar máquinas é usar a infraestrutura como código.
Implantação manual versus infraestrutura como código
Uma analogia comum para entender as diferenças entre implantação manual e infraestrutura como código é a distinção entre possuir animais de estimação e possuir gado.
Quando você tem animais de estimação, você nomeia cada um e os considera como indivíduos; Se algo terrível acontecer com um de seus animais de estimação, você está inclinado a se importar muito.
Se você tem um rebanho de gado, você ainda pode nomeá-los, mas você considera seu rebanho.
Em termos de infraestrutura, pode haver implicações graves com uma abordagem de implantação manual se uma única máquina falhar e você precisar substituí-la (animais de estimação).
Se você adotar a infraestrutura como uma abordagem de código, poderá provisionar mais facilmente outra máquina sem afetar negativamente toda a sua infraestrutura (gado) se uma única máquina cair.
Implementando a infraestrutura como código
Com a infraestrutura como código, você captura seu ambiente (ou ambientes) em um arquivo de texto (script ou definição).
Seu arquivo pode incluir redes, servidores e outros recursos de computação.
Você pode verificar o script ou o arquivo de definição no controle de versão e, em seguida, usá-lo como fonte para atualizar ambientes existentes ou criar novos.
Por exemplo, você pode adicionar um novo servidor editando o arquivo de texto e executando o pipeline de liberação em vez de recuperá-lo no ambiente e provisionar manualmente um novo servidor.
A tabela a seguir lista as diferenças significativas entre a implantação manual e a infraestrutura como código.
Implementação manual | Infraestrutura como código |
---|---|
Servidores Snowflake. | Um servidor consistente entre ambientes. |
As etapas de implantação variam de acordo com o ambiente. | Os ambientes são criados ou dimensionados facilmente. |
Mais etapas de verificação e processos manuais mais elaborados. | Criação totalmente automatizada de atualizações de ambiente. |
Aumento da documentação para ter em conta as diferenças. | Transição para infraestrutura imutável. |
Implantação nos fins de semana para dar tempo de recuperação de erros. | Use implantações azuis/verdes. |
Cadência de liberação mais lenta para minimizar a dor e fins de semana prolongados. | Trate os servidores como gado, não como animais de estimação. |
Benefícios da infraestrutura como código
A lista a seguir é os benefícios da infraestrutura como código:
- Promove a auditoria, facilitando o rastreamento do que foi implantado, quando e como. (Por outras palavras, melhora a rastreabilidade).
- Fornece ambientes consistentes de versão para versão.
- Maior consistência em ambientes de desenvolvimento, teste e produção.
- Automatiza os processos de scale-up e scale-out.
- Permite que as configurações sejam controladas por versão.
- Fornece recursos de revisão de código e teste de unidade para ajudar a gerenciar alterações na infraestrutura.
- Usa processos de serviço imutáveis , ou seja, se uma alteração for necessária em um ambiente, um novo serviço será implantado e o antigo foi retirado, ele não será atualizado.
- Permite implantações azuis/verdes . Essa metodologia de lançamento minimiza o tempo de inatividade quando existem dois ambientes idênticos — um é ativo e o outro não. As atualizações são aplicadas ao servidor que não está ativo. Quando o teste é verificado e concluído, ele é trocado com os diferentes servidores ativos. Torna-se o novo ambiente ao vivo, e o ambiente ao vivo anterior não é mais o ao vivo.
- Trata a infraestrutura como um recurso flexível que pode ser provisionado, desprovisionado e reprovisionado conforme e quando necessário.