Provisionamento de Infraestrutura com Ansible | MANDIC
Provisionamento de infraestrutura com Ansible: um case de sucesso
Rolou mais uma edição do MeetUp sobre Ansible na sede do Moip, em São Paulo. Por parte da Rivendel Tecnologia, os DevOps Gustavo Biondo e Vinicius Cavalcanti apresentaram um case de sucesso envolvendo provisionamento de infraestrutura com Ansible. Vinícius, que é Tech Leader, mostrou a evolução do projeto, realizado na AWS. "A gente precisava desenhar toda a infraestrutura do projeto, e tínhamos alguns desafios complexos pela frente", conta ele. E destacou como principais:
Gerenciar infraestrutura de grande/médio porte
Escolha do configuration manager e cloud provisioning
Prazos de entregas apertados
Turn-over de colaboradores
O passo seguinte foi pesquisar e estudar as ferramentas disponíveis (e estáveis) mais usadas no momento. E a dupla DevOps escolheu então:
Ansible como Configuration Manager
Cloud Formation como Cloud Provisioning
Github como Remote Repository
Jenkins como CI/CD server
Zabbix como Monitoring System
"Uma das principais razões para a escolha do Ansible foi justamente a curva de aprendizado, que é muito rápida. Entre outras, podemos destacar também a auto documentação da stack – por sinal muito simples e objetiva – e, acima de tudo, o fato de ser agentless, ou seja, não necessita de agentes". (Na abordagem agentless, os dados são coletados de computadores sem instalar a necessidade de agentes adicionais).
Resistências na implementação
Como nem tudo são flores nessa vida, é claro que a dupla DevOps também teve que vencer barreiras para seguir com o projeto. Entre as resistências na implementação da solução, pairavam:
Dúvidas sobre a eficiência em relação aos concorrentes mais consolidados no mercado
Necessidade de trabalhar de forma dinâmica, sem optar por IPs estáticos
Por ser extremamente customizável, dificuldade em definir uma estrutura padrão
Como provisionar o Scaling Up do ambiente?
Soluções e descobertas
Vinícius conta que foi preciso entender e definir um padrão de estrutura de diretórios e de nomes para os playbooks. Bem como conhecer o inventário dinâmico (para poder trabalhar com IPs dinâmicos) e o group_vars (usado para separar os ambientes).
Também foi feita uma configuração de UserData com Ansible, ou seja, no momento em que a máquina ligar, o Ansible já será instalado e executado. E quando executar, ele fará todo o resto: instalar um microserviço, colocar estrutura de ELK no ElasticSearch com Kibana etc.
Por fim, o resultado prático foi a capacidade de resolução de problemas (troubleshooting) aprimorada, com alterações rápidas e testadas previamente. Mas, melhor que ler, é ver a demo preparada pelos DevOps mostrando o sistema em ação. E garantindo algo precioso para qualquer sysadmin: mais horas de sono! 😛