O que é IaC (Infrastructure-as-Code, infraestrutura como código)?

A IaC (Infrastructure-as-Code, infraestrutura como código) permite que desenvolvedores e equipes de operações gerenciem automaticamente os datacenters de computadores usando arquivos de definição legíveis por máquina.

Demonstração do DevOps
Sumário
Por que a IaC é importante? Quais são os benefícios da IaC? Como a IaC está relacionada ao DevOps? Como a IaC se encaixa no processo de CI/CD? Práticas recomendadas de IaC
Também chamada de infraestrutura programável ou definida por software, a IaC evita ferramentas físicas de configuração e configuração de hardware para arquivos de configuração digital reproduzíveis. Usando uma linguagem de codificação descritiva de alto nível, a IaC automatiza o provisionamento de infraestrutura de TI e elimina a necessidade de gerenciamento e provisionamento manuais de elementos de infraestrutura, como servidores, armazenamento e conexões de banco de dados. A IaC é uma prática importante do DevOps e permite um conjunto mais simplificado de processos no desenvolvimento e na implantação de novos aplicativos de software. Ela oferece uma forma de "deslocar para a esquerda" o gerenciamento da infraestrutura, o que significa que ele pode se mover sob o controle de desenvolvedores ou equipes de DevOps, em vez de ser uma etapa manual ao final do pipeline de implantação.

 

Expandir tudo Fechar tudo Por que a IaC é importante?

À primeira vista, pode parecer que a infraestrutura como código realmente não agrega novidades, está apenas mudando o que tradicionalmente tem sido uma tarefa manual (configurar a infraestrutura de TI) e tornado-a digital. Mas, com essa mudança, surgem as soluções para vários problemas importantes que a equipe de TI vem enfrentando há décadas.

Dificuldade de gerenciar a infraestrutura de TI

O gerenciamento da infraestrutura de TI não é apenas complexo e trabalhoso, mas também dispendioso. Em cada fase do processo, engenheiros, técnicos de manutenção e outros precisam estar disponíveis para realizar tarefas essenciais. As organizações precisam conseguir atender às necessidades salariais desses especialistas. Além disso, garantir a coordenação adequada e as demandas de implantação de recursos são ações que exigem maiores custos de gerenciamento.

Da mesma forma, os problemas de monitoramento e visibilidade são possíveis problemas da configuração tradicional. A configuração de infraestrutura tradicional depende de vários indivíduos ou equipes, o que cria inconsistência e, muitas vezes, dificulta extremamente o monitoramento e a otimização do desempenho. Essa inconsistência também pode gerar problemas de configuração incorreta em que um parâmetro errado é usado, o que pode resultar em consequências possivelmente graves. A configuração incorreta tem sido culpada por muitas grandes indisponibilidades de sistema que afetam muitas pessoas.

Por fim, como a configuração manual depende dos administradores de sistema para instalar novos servidores, ela responde lentamente ao aumento da demanda. À medida que a necessidade de recursos aumenta, a configuração manual pode impedir o dimensionamento eficaz e dificultar para as empresas o processo de lidar com o aumento da carga. E, sem servidores de backup disponíveis, a disponibilidade dos aplicativos é prejudicada.

Desafios de DevOps

O DevOps enfrenta seus próprios problemas ao trabalhar com técnicas de configuração tradicionais. Em vez de identificar e eliminar configurações incorretas e outros problemas durante o processo de criação, o gerenciamento tradicional praticamente garante que esses problemas permaneçam imperceptíveis até o tempo de execução. E, ao precisar remanejar recursos do desenvolvedor para resolver esses problemas no tempo de execução, as organizações são forçadas a retirar profissionais experientes de outras tarefas importantes, sem de fato abordar a falha principal.

Além disso, a infraestrutura recém-configurada deve poder ingressar no ambiente existente da organização. A configuração manual pode criar problemas de segurança e conformidade no contexto de um ambiente mais amplo, principalmente porque a nuvem é uma entidade dinâmica e que passa por mudanças constantes.

DevOps Book of Knowledge Confira como seus colegas estão adotando o DevOps para ter informações sobre como transformar e modernizar o DevOps de forma eficaz. Receba o eBook
Quais são os benefícios da IaC?

A infraestrutura como código eficaz oferece soluções para muitos dos problemas e ineficiências associados à configuração de infraestrutura tradicional. Com a IaC, as organizações podem desfrutar das seguintes vantagens:

Maior velocidade

Com a IaC, é possível criar toda a infraestrutura de maneira simples e rápida, basta executar um script. Isso é possível em todas as fases do ciclo de vida de desenvolvimento de software, independentemente do ambiente.

Consistência confiável

Quando a configuração é de responsabilidade das equipes humanas de TI e de operações, as discrepâncias são inevitáveis. Mas, quando os arquivos de IaC existem como a fonte primária da verdade, as organizações podem adicionar ferramentas e políticas de gerenciamento de dados de configuração para sempre implantar as configurações certas quantas vezes forem necessárias.

Melhor rastreamento e responsabilização

Uma vantagem às vezes negligenciada dos arquivos de IaC é que eles mantêm um registro claro de toda e qualquer mudança. As equipes podem analisar facilmente quais mudanças foram feitas, quando e (caso a responsabilização se torne um problema) por quem. E, como a IaC mantém as versões antigas em um repositório acessível, os desenvolvedores podem retornar às instâncias anteriores e reimplantar ambientes iniciais caso surjam problemas.

Eficiência ideal

Ao codificar e automatizar a implantação de arquiteturas de infraestrutura, as organizações podem aumentar significativamente a eficiência e a produtividade durante todo o ciclo de vida de desenvolvimento. Os testes podem ocorrer simultaneamente em vários ambientes de preparação, que podem ser criados e implantados em minutos. Ao mesmo tempo, a IaC facilita a incorporação de técnicas de integração contínua e implantação contínua.

Redução de custos

Juntas, talvez as maiores vantagens da IaC sejam custos reduzidos e retornos maiores. Ao automatizar a configuração e a implantação, as organizações reduzem muitas das despesas associadas a hardware, alocação de pessoal, treinamento e gerenciamento e, ao mesmo tempo, permitem que a equipe experiente de TI reconcentre suas energias em tarefas que agregam mais valor.

Acrescente a isso a velocidade, a consistência e a eficiência mencionadas anteriormente, e fica mais claro como os investimentos em IaC conseguem se pagar com extrema rapidez.

Como a IaC está relacionada ao DevOps?

A IaC usa o mesmo controle de versões que o DevOps usa para o código-fonte. Na verdade, o DevOps trata a IaC como qualquer outro desenvolvimento de código na cadeia de ferramentas de DevOps. Isso significa que qualquer mudança do código de infraestrutura é gerenciada junto com o restante das tarefas de DevOps.

O DevOps também pode aplicar políticas às mudanças da IaC e permitir rastreamento automatizado e aprovações de mudanças, por exemplo, por meio do ServiceNow DevOps para mudanças automatizadas. A IaC também capacita o DevOps a criar facilmente ambientes de teste idênticos à produção em qualquer fase do ciclo de desenvolvimento, reduzindo a probabilidade de problemas de implantação potencialmente críticos. Com a IaC, o DevOps é mais capaz de se coordenar efetivamente usando práticas e ferramentas consistentes e oferecendo aplicativos e infraestrutura de maneira rápida, confiável e com a capacidade de se dimensionar para atender à demanda.

Como a IaC se encaixa no processo de CI/CD?

No processo de CI/CD, o controle da infraestrutura como código é transferido da equipe de operações de TI para os desenvolvedores. Isso permite que as equipes de DevOps tratem as mudanças de infraestrutura como qualquer outra parte do código e apliquem ferramentas e produtos de DevOps e de SRE (Site Reliability Engineering, engenharia de confiabilidade de site) para oferecer supervisão por todo o fluxo de valores.

Preço do ServiceNow DevOps Confira o preço do ServiceNow DevOps, uma ferramenta que apoia o seu crescimento rápido e diminui os atritos entre as equipes de operações de TI e de desenvolvimento. Peça um orçamento
Práticas recomendadas de IaC

Aproveitar ao máximo uma estratégia de IaC significa identificar e seguir as práticas recomendadas. Essas sugestões testadas e comprovadas podem ajudar a garantir uma abordagem eficaz de IaC para configuração e implantação.

Evite documentação de especificações

A documentação externa das especificações de infraestrutura é inexata e é fácil perder o controle dela. Elimine o hábito de criar documentação externa e, em vez disso, codifique as especificações nos próprios arquivos de configuração, onde elas sempre serão precisas e estarão disponíveis.

Reconheça o código como a única fonte da verdade

Como mencionado no ponto anterior, a codificação das especificações da infraestrutura nos arquivos de configuração é preferível ao uso da documentação externa. E, depois que essas especificações tiverem sido codificadas, consulte esses arquivos de configuração como a única fonte da verdade para todos os aspectos relacionados ao gerenciamento de infraestrutura.

Faça testes completos

Um dos benefícios do código em comparação com a configuração física é que o código pode ser testado. Utilize ferramentas de teste de IaC para garantir que as configurações estejam livres de erros e inconsistências antes de avançar para a produção.

Faça o controle de versões de tudo

Como a IaC se encaixa tão bem com a abordagem de CI/CD para desenvolvimento, ela pode se mover em um ritmo alucinante. Certifique-se de que, à medida que novas mudanças são implantadas, as versões antigas sejam mantidas disponíveis com segurança usando o controle de código-fonte. Isso permite que as equipes revisem e recarreguem versões anteriores caso novas implantações criem problemas imprevistos.

ServiceNow e IaC

Conforme observado anteriormente, a configuração incorreta é um grande desafio para a infraestrutura. Ela tem sido a culpada por falhas de segurança, exposição de dados privados e indisponibilidades significativas de sistema que afetam milhões de usuários.

Em 2020, a ServiceNow adquiriu uma empresa chamada Sweagle que, agora, faz parte do portfólio de DevOps como DevOps Config. O DevOps Config oferece um local central para gerenciar dados de configuração. Isso resolve os problemas remanescentes para as equipes de DevOps ao usar a IaC, ou seja:

  • É possível aplicar controles de acesso aos dados de configuração, e somente usuários autorizados têm permissão para fazer mudanças e definir arquivos de configuração para uso na IaC. Isso ajuda a proteger senhas e outros dados confidenciais e impede mudanças que, de outra forma, poderiam ocorrer em ferramentas autônomas de configuração.
  • É possível aplicar políticas às informações de configuração. Por exemplo, é comum usar bancos de dados diferentes para testar um aplicativo em vez de usá-lo em produção. A política pode validar se a cadeia de caracteres de configuração do banco de dados está corretamente alterada na IaC entre os testes internos e o lançamento dela em produção.
  • O sistema pode aprender com configurações anteriores que resultaram em problemas. A inteligência artificial e o aprendizado de máquina podem ser aplicados para ajudar a escrever novas políticas e garantir que um problema não ocorra novamente.
  • O local central para gerenciar configurações de infraestrutura oferece a supervisão que um só repositório proporciona. Uma pessoa não precisa procurar nos repositórios de código Git, nas ferramentas de configuração de rede nem em outras fontes para entender as configurações: todas estão disponíveis em um só lugar. Isso também inclui a capacidade de criar um instantâneo das versões de configuração anteriores para ajudar na posterior solução de problemas.
Habilidades que crescem junto com seu negócio

Expanda o sucesso do DevOps em toda a empresa. Acelere sem medo e minimize os atritos entre o desenvolvimento e as operações de TI.

Demonstração do DevOps Fale conosco
Recursos Artigos O que é ServiceNow? O que é DevOps? O que é Kubernetes? Relatórios dos analistas Extensão da Now Platform com DevOps IDC Agility Assessment: Compare your Enterprise (Avaliação de agilidade da IDC: compare sua empresa) Valor comercial das operações de serviços da ServiceNow Folhas de dados ITSM Pro: DevOps Change Velocity Change Management Gestão de solicitações eBooks Promova a inovação e aumente a velocidade da TI A ITIL 4 explicada em 10 minutos Acelere o lançamento com o ITSM White papers Introduction to Enterprise DevOps Platform (Introdução à plataforma Enterprise DevOps) Conexão de DevOps, Observabilidade e AIOps Arquitetura avançada de alta disponibilidade