A SME precisava fazer o deploy de aplicações escritas em .Net de forma ágil em ambientes padronizados. Estava em curso uma grande reestruturação em todo legado de T.I. Para isso a SME precisava incorporar o provisionamento automatizado de seus servidores pois a falta de documentação de software e da infraestrutura de produção acabavam dificultando a replicação automática desses ambientes em caso de disaster recovery. Futuramente a secretaria pretende avançar com outras otimizações sugeridas pelo conceito DevOps, como integrar as automações solicitadas neste projeto a um fluxo de entrega de suas aplicações desenvolvidas internamente e para isso, fazer o mentoring da equipe durante a execução do projeto era necessário.
Sobre o projeto
Desafios na implementação
- Assessment da infraestrutura atual, já que a documentação existente não abrangente, principalmente para sistemas mais antigos.
- Aplicações escritas em tecnologias antigas que nem sempre convivem bem com os conceitos mais modernos do mundo DevOps.
- Ambiente heterogêneo com várias soluções de mercado para funções semelhantes ( por exemplo: 5 bancos de dados diferentes em produção).
- Replicar de forma automática os processos de deploy.
- Gerenciar a configuração dos ambientes de forma padronizada.
- Havia muita manipulação de configurações no registro do Windows e/ou execução de comandos via Powershell.
Solução implementada
A 4Linux escolheu os softwares open source Foreman, Puppet Jenkins e oVirt para este projeto. Criou-se um provisionamento automático de máquinas utilizando a tecnologia Foreman integrada ao oVirt que é o virtualizador utilizado pela SME. Ele passou a fazer a criação automática das máquinas utilizando o protocolo PXE em caso de máquinas Linux e usou uma imagem base em caso de máquinas Windows – que já tinha um agente Puppet instalado. Assim que os servidores respondiam, o próprio Foreman fazia a classificação e a configuração dessas máquinas utilizando módulos do Puppet. Também foi criado um Dashboard no Jenkins no qual era possível escolher qual ambiente deveria ser implantado (Linux ou Windows).
Benefícios e resultados
- Provisionamento de Ambientes em 10 minutos. Deploy dos ambientes com apenas 1 click de mouse.
- Configuração dos ambientes padronizadas e versionadas.
- Equipe capacitada através de mentoring, durante a execução do projeto.
- Dezenas de manisfests (módulos) no Puppet criados e segmentados de modo a serem executados de acordo com os servidores que seriam provisionados.
- Tarefas que envolviam as automações de serviços baseados em Windows foram resolvidos com a manipulação de configurações no registro do Windows e/ou execução de comandos via Powershell.