DevOps

Criando uma esteira de DevOps para sistemas legados e Middleware de integração

A Camil é uma das maiores empresas de alimentos do Brasil e da América Latina, com um portfólio diversificado de marcas nos segmentos de grãos, açúcar e pescados e posições de liderança no Brasil, Uruguai, Chile e Peru. Fundada em 1963 na cidade de Itaqui, no Rio Grande do Sul, como Cooperativa Agrícola Mista Itaquiense LTDA. (CAMIL), o grupo possui também em seu portfólio as marcas Açúcar União e Coqueiro, possuindo 40% do mercado brasileiro de pescados. Em 2020, entrou no ramo de rações, no Chile.

O grupo possui plantas no Brasil, Uruguai, Chile, Peru e recentemente Equador. Conta com mais de 4415 funcionários, com marcas em mais de 50 países através da exportação.

Em 2021, o grupo compra a empresa de alimentos Santa Amália do grupo peruano Alicorp, por 410 milhões de reais, e entra no segmento de massas, misturas e achocolatados. No mesmo ano, a Seleto se torna a nova aquisição da Camil setor de café é novidade. Mantendo o ritmo de aquisições, a Camil entra no segmento de café.

Necessidade do cliente

Com o grande crescimento da empresa em uma velocidade muito rápida, as áreas de TI e de negócios precisaram acelerar a subida de novos projetos para produção e integração com os sistemas TOTVS.

Antes do projeto, o processo de gerenciamento de código não era centralizado e o deploy era feito manualmente nos servidores. Onde, durante a janela, os analistas executavam um backup dos arquivos atuais no próprio servidor e copiavam manualmente os arquivos para as pastas de destino.

Arquitetura da solução

Como o gerenciamento de código estava distribuído entre fábricas de software parceiras e o time de sustentação do ambiente, primeiramente foi feita a centralização de todos os códigos legados e um novo repositório seguindo o padrão de nomenclatura dos outros projetos com o nome "Camil.TOTVS.Especificos" definindo o git flow como padrão de desenvolvimento, permitindo que diferentes times pudessem trabalhar nos mesmos repositórios de código. A Camil já fazia uso das ferramentas de CI/CD contempladas no Azure DevOps para outras finalidades, então essa foi a ferramenta escolhida para o projeto.

Criamos uma estrutura de build das aplicações com testes unitários utilizando o SonarQube, garantindo assim a qualidade do código gerado e mitigando a subida de erros nos ambientes. Também foram configuradas algumas regras como a interrupção da compilação caso a branch que esteja tentando fazer o merge esteja com commits atrás da versão que está na master, para garantir que nenhuma alteração seja sobrescrita por engano, como era usual no fluxo antigo.

No processo de deploy foi criado um stage de rollback de maneira que podemos restabelecer o ambiente em segundos onde no processo anterior era feito em horas, pois era necessário primeiro encontrar a versão antiga do código, compilar os programas novamente e fazer um novo deploy desses artefatos.

Outra solução proposta e implantada, foi a criação de ambientes de desenvolvimento efêmeros para cada time de projetos, baseados em AMIs "Golden Images" e automação com Terraform, onde foi possível entregar um novo ambiente atualizado e limpo para o início de um projeto mais rapidamente e automaticamente, desonerando o time de infraestrutura nessas entregas através de infraestrutura como código e também restringindo os acessos nos ambientes garantindo assim maior segurança.

Resultados

Com a centralização dos códigos, a padronização e automatização dos pipelines de build e deploy, os times de desenvolvimentos ganharam mais autonomia para subir o código nos ambiente de desenvolvimento e qualidade, garantindo assim uma maior velocidade de entrega: o que antes levava dias para a subida dos códigos, agora leva minutos.

Esse processo de projetos foi aliado a metodologias ágeis já utilizadas em outras frentes pela Camil, garantindo uma melhor governança de alterações pois todo o código está centralizado e todas as alterações são registradas no git, facilitando o processo de rollback em caso de falhas, diminuindo o MTTR (Mean time to repair) nesses casos de horas/dias para minutos.

Outra melhoria obtida com a implantação do DevOps, foi a velocidade de entrega de ambientes para os diversos times de desenvolvimento. Com as AMIs "Golden Images" e a utilização de um pipeline de IaC para a subida de ambientes das aplicações hospedados em AWS EC2 e AWS Load Balancer, a disponibilização de novos recursos para cada squad que antes demorava semanas agora é feita em algumas horas, com a aprovação dos gestores e melhor controle de custos e segurança com security groups e acessos IAM controlados para cada time.

Contato

Dúvidas? Quer conhecer mais do nosso trabalho?
Por favor, preencha o formulário de contato, nós entraremos em contato.

Nome completo*
E-mail*
Telefone*
Produto de Interesse
Mensagem
Este formulário segue os princípios da Lei Geral de Proteção de Dados Pessoais, Lei nº 13.709/2018 e o tratamento ocorre de acordo com a Política de Privacidade.