Infraestrutura do arquiteto como código! Mergulhe no guia para contratar desenvolvedores Terraform qualificados, otimizando recursos de nuvem e garantindo implantações escalonáveis.
Infraestrutura como código é um dos assuntos mais comentados na TI corporativa atualmente. Mas o que é IaC? Infraestrutura como código é o processo de gerenciamento de sua infraestrutura por meio de código ou scripts, em vez de realizar essa tarefa manualmente.
Os administradores e desenvolvedores do IaC usam arquivos de configuração que são distribuídos aos sistemas em uma rede por meio de um gerenciador. Ao provisionar e configurar seus sistemas dessa forma, você garante que o processo não é apenas repetível, mas confiável e pode até ser automatizado. Depois de atingir um nível automatizado de provisionamento/configuração, seus sistemas funcionarão de maneira mais confiável em todos os aspectos.
Com o IaC é possível garantir que todos os sistemas sejam sempre encontrados em um estado especificado (como sempre executando as versões mais recentes de vários softwares). O processo IaC geralmente inclui as seguintes etapas:
- Definir e escrever especificações para sistemas específicos de domínio.
- Os arquivos são criados e enviados para o sistema de gerenciamento IaC.
- O sistema de gestão toma as medidas necessárias para distribuir as especificações aos ativos conectados.
Os benefícios típicos que você encontrará com IaC incluem:
- Redução de custos
- Eficiência
- Risco reduzido
- Testes aprimorados
- Ambientes mais estáveis e escaláveis
- Responsabilidade
- Consistência
- Melhor documentação do sistema
- Maior segurança do sistema
Você encontrará inúmeras empresas importantes que dependem do IaC, empresas como Uber, Udemy, Slack, Instacart, Robinhood, Twitch, Delivery Hero, LaunchDarkly, DISH, Freedom Financial, JPMorgan Chase e Square, entre outras.
Essa é uma lista impressionante, da qual sua empresa faria bem em fazer parte. Mas como? Qual é o seu melhor caminho para empregar infraestrutura como código?
Em uma palavra, Terraform.
O que é Terraforma?
Terraform é a abordagem da Hashicorp sobre Infraestrutura como Código que permite às empresas construir, alterar e versionar infraestrutura de forma segura e eficiente. Com o Terraform, você pode gerenciar com mais facilidade itens como instâncias de computação, armazenamento, rede, entradas DNS e recursos SaaS.
Com o Terraform, seus administradores/desenvolvedores descrevem sua infraestrutura com uma linguagem de configuração de alto nível, em arquivos de configuração declarativos legíveis por humanos. Esses arquivos servem como um modelo para sua infraestrutura e podem ser versionados, compartilhados e reutilizados.
É importante entender, porém, que esta solução utiliza uma linguagem específica para seus arquivos de configuração. Terraform Language é usado no Terraform CLI, Terraform Cloud e Terraform Enterprise e é a interface de usuário principal com a plataforma.
A sintaxe da linguagem Terraform não deve ser tão difícil para a maioria dos desenvolvedores e usa os seguintes elementos:
- Blocos: contêineres para outros conteúdos e geralmente representam a configuração de um objeto.
- Argumentos: atribuir valores a um nome.
- Expressões: representam um valor, seja literal ou referenciando/combinando outros valores.
E como a linguagem Terraform é declarativa, a maioria dos desenvolvedores deve ser capaz de acessá-la rapidamente.
Os casos de uso típicos do Terraform incluem:
- Implantação/configuração de aplicativos multicamadas
- Clusters de autoatendimento
- Demonstrações de software
- Ambientes descartáveis
- Rede definida por software
- Agendadores de recursos
- Implantação multinuvem
Guia de contratação
Para contratar usuários e gerentes do Terraform, você precisará focar em mais do que apenas desenvolvedores e administradores. Você precisa de pessoas familiarizadas com DevOps, automação, provisionamento, nuvem nativa, linguagem Terraform e infraestrutura como código.
Você também vai querer contratar pessoas que estejam familiarizadas com seus principais fornecedores, sistemas operacionais e as diversas pilhas de software que você implanta. Como há tantas partes móveis na infraestrutura como no código, você precisa de membros de equipe com vários talentos que possam ser imediatamente incluídos na mistura e não se sentirem perdidos.
Se você contratar um membro da equipe que não esteja familiarizado com os fundamentos da IaC, ele estará muito atrasado. Pelo contrário, você pode estar seguro em contratar um novo membro da equipe que tenha um conhecimento sólido de IaC e outras ferramentas de provisionamento (como Ansible e Puppet), que poderá então aprender a linguagem Terraform com bastante rapidez.
O importante aqui é garantir que qualquer pessoa que você contratar tenha uma base sólida no uso de ferramentas de gerenciamento para provisionamento e configuração de ativos da empresa.
Questões de entrevista
Definir inicialização do Terraform
O comando Terraform Init é usado para inicializar o diretório de trabalho que contém os arquivos de configuração do Terraform.
Cite alguns dos principais concorrentes do Terraform
- Empacotador
- Fundição em nuvem
- Ansible
- Kubernetes
- Fantoche
O que é um provedor Terraform?
Um provedor Terraform é responsável pelas interações da API e pela revelação de recursos.
Como você verifica a versão instalada do Terraform?
Você pode verificar a versão instalada com o comando terraform -versão.
Como você verifica se uma configuração do Terraform é válida?
Você pode testar um arquivo de configuração do Terraform com o comando validação de terraform.
Como você encontra informações para provedores em uma configuração atual do Terraform?
Você pode visualizar informações do provedor com o comando provedores de terraform.
O que é um recurso nulo no Terraform?
Um recurso nulo implementa esse ciclo de vida médio do recurso, mas não executa nenhuma ação adicional.
O que é um Terragrunt?
Um Terragrunt é um invólucro fino que fornece ferramentas extras para:
- Manter as configurações “secas”.
- Trabalhando com vários módulos Terraform.
- Gerenciando um estado remoto.
Descrição do trabalho
Estamos procurando um engenheiro experiente para liderar nossos esforços de Infraestrutura como Código. O candidato ideal irá projetar, desenvolver, documentar, testar e depurar infraestrutura de gerenciamento de configuração (Terraform) nova e existente como código.
Você deve ter experiência com Jenkins, AWS, Terraform e Git, além de ser responsável por contribuir na documentação de padrões operacionais e de segurança.
Responsabilidades
- Trabalhe com recursos de hospedagem e divisão para desenvolver e implementar automação em torno da infraestrutura como serviço baseada em nuvem.
- Trabalhe com parceiros de negócios para projetar e implementar novas soluções de produtos e processos para uso na nuvem.
- Manter uma base de conhecimento escrita para fins de transferência de conhecimento para aqueles que serão encarregados de monitorar e manter a longo prazo os clientes/produtos/processos/soluções implementados.
- Desenvolva automação para realizar instalação, configuração e manutenção de servidores Windows e Linux, bem como de aplicações em infraestrutura virtualizada (nuvem pública/privada).
- Revise e interprete os requisitos de relatórios de negócios em andamento.
- Fornecer relatórios de gerenciamento programados em tempo hábil.
- Investigar exceções relativas a movimentos de ativos.
- Escreva configurações Terraform reutilizáveis, testáveis e eficientes.
- Implementar segurança e proteção de dados.
- Integre soluções de armazenamento de dados.
Habilidades e qualificações
- Mais de 5 anos de experiência em administração de sistemas.
- Mais de 4 anos de experiência prática em hospedagem e implantação em nuvem pública (AWS, Azure, Google).
- Mais de 3 anos de infraestrutura prática como arquitetura de código, desenvolvimento e automação.
- Ampla experiência com as seguintes tecnologias preferenciais: administração IAM, EC2, S3, EBS, ELB, SES, Route 53, regiões AWS e implantações Multi-AZ, Systems Manager, Cloud Formation, Terraform, Puppet/Chef, Powershell, Shell Scripting, Perl , JSON Fortes habilidades de script para administração de sistema
- Certificação(ões) AWS uma vantagem
- Excelente comunicação escrita e verbal e habilidades de atendimento ao cliente
- Excelentes habilidades analíticas e de resolução de problemas
- A capacidade de solucionar problemas técnicos complexos de forma independente em um ambiente de ritmo acelerado.
- Boas habilidades organizacionais.
- Capacidade de trabalhar como parte de uma equipe.
- Atenção aos detalhes.
- Compreender a natureza da programação assíncrona e suas peculiaridades e soluções alternativas
- Uma atitude positiva.
Conclusão
A maioria das empresas já está empregando infraestrutura como código. Essas ferramentas já existem há algum tempo e tornam o processo de implantação e configuração da infraestrutura exponencialmente mais fácil do que fazê-lo manualmente. Se sua empresa ainda não está em processo de contratação de uma equipe de IaC, você está atrasado.