A empresa estava passando por um processo de “transformação digital” a fim de obter maior agilidade em seu processo de provisionamento de novos recursos de infraestrutura e trazer autonomia para a validação dos códigos em desenvolvimento, onde a pipeline do projeto deveria ser capaz de subir e testar o projeto de forma individual e independente. Assim modernizaram sua infraestrutura que já era robusta, onde adotaram algumas soluções open source para auxiliar eu seu processo. Dentro do projeto ainda envolveria uma etapa de capacitação de todos os envolvidos nos processos contemplados para uso efetivo do novo fluxo de trabalho.
Sobre o projeto
Desafios na implementação
- Implementar a cultura de IaC (Infrastructure as Code).
- Utilizar como base para a solução de PaaS, a infraestrutura de cloud privada (Openstack) existente.
- Utilizar como processo de integração a infraestrutura de cloud pública (Oracle), visando a criação de uma camada de persistência.
- Fazer o versionamento de uma infraestrutura complexa.
- Automatizar o provisionamento da infraestrutura para dar agilidade ao process.
- Definir um novo fluxo de trabalho utilizando conceitos de AGILE.
- Capacitar toda a equipe envolvida torna-se um processo complexo, devido ao tamanho da empresa, quantidade de áreas e colaboradores envolvidas, dificultando inclusive a disponibilidade de agendas que seja comum a todos.
Solução implementada
A 4Linux implementou um processo para tratar toda a infraestrutura do cliente como código (prática IaC), tornando mais ágil sua criação e expansão.
Foi definido um processo, onde os administradores de sistemas criam módulos do Puppet para fazer o gerenciamento da infraestrutura, esses módulos – após criados – são testados no Vagrant antes de serem enviados para o versionador GitLab. todos os códigos são testados nas distribuições Debian, CentOS e Ubuntu e com os códigos já testados, aprovados e enviados para o GitLab, é acionada uma Webhook que dispara um job no Jenkins – que por sua vez realiza os testes novamente, mas agora em uma nova infraestrutura e os aplica em produção.
Benefícios e resultados
- Ganho de agilidade na criação e padronização de servidores através de uma pipeline do Jenkins. Novas instâncias são entregues em menos de 5 minutos.
- Integração da pipeline de implantação CI/CD com a nuvem privada Openstack.
- Infraestrutura Puppet provisionada em alta disponibilidade e com monitoramento.
- SysAdmins treinados e trabalhando de forma ágil, com adoção de testes e versionamento da infraestrutura, que agora é tratada como código.
- Definições do fluxo para integração e deploy contínuo, uso de branches no versionamento, estratégias para testes e análises automatizados.