Saiba porque a Natura migrou seus clusters Kubernetes para EKS

A Natura hoje é parte do grupo Natura &Co, formado por também por Avon, The Body Shop e Aesop, sendo a 4ª maior empresa de cosméticos do mundo com operações em mais de 110 países. 

A Natura utiliza a tecnologia de containers para o isolamento e empacotamento de suas aplicações e, desde 2016, adotou kubernetes para orquestra-los. Apesar do kubernetes prover diversos benefícios para a operação e escalabilidade das aplicações, sua administração em larga escala não é tarefa trivial e pode se tornar custosa. Para melhor entendimento dos motivadores dessa complexidade, primeiro é necessário um entendimento de como é composta a tecnologia.

Um cluster Kubernetes contém instâncias Masters e Worknodes, enquanto os Worknodes são as responsáveis por executarem nossos workloads estes se utilizam de infraestrutura elástica reagindo conforme a demanda, os Masters nodes por sua vez são responsáveis pelo gerenciamento e controle de todo o cluster, mantendo uma infraestrutura fixa durante sua utilização.

Por esse motivo, a gestão dos master nodes tende a ser custosa financeiramente, dado sua natureza inelástica e a necessidade de mantermos pelo menos 3 instâncias para esse fim. Além disso, seus componentes internos tornam sua administração complexa, exigindo dedicação de profissionais altamente especializados para upgrades de versão, alta disponibilidade, troubleshooting, mitigação de falhas e gestão da camada de infraestrutura tais como storage, consumo de cpu, memória, I/O, etc.

Entre 2018 e 2019 a Natura sofreu diversos problemas em cluster de K8S somando um total de 106 horas de indisponibilidade para as aplicações. Além das horas consumidas e do custo dos especialistas para resolução do problema, outros fatores levaram à revisão da estratégia de kubernetes na Natura. O crescimento do número de clusters foi um deles, nesse período a Natura já contava com 9 clusters e com seu plano de expansão para múltiplos países em diferentes regiões do globo, esse número tende a ter um crescimento expressivo, necessitando de uma tecnologia que facilite as tarefas de manutenção dos clusters, upgrades de versão entre outras tarefas de administração.

A Solução:

Após o trabalho de Well Architected executado em parceria com o time AWS, constatou-se a oportunidade de reduzirmos custos e aumentarmos a estabilidade dos clusters kubernetes com a utilização do Amazon Elastic Kubernetes Service(EKS).

O EKS é um serviço Kubernetes gerenciado pela AWS, nele o cliente não precisa mais se preocupar com o gerenciamento dos master nodes, a AWS executa o control plane em várias zonas de disponibilidade, detectando falhas e substituindo nós automaticamente, possibilitando atualizações e aplicações de patch sob demanda e imediatas, e ofertando SLA de 99,95% de disponibilidade.

Além disso, o EKS possui integrações nativas com a infraestrutura AWS, possibilitando utilização de recursos já amplamente utilizados como balanceadores de carga, grupos de segurança e instâncias spot, facilitando a gestão e a interoperabilidade entre os outros componentes da arquitetura.

Segundo Marcio Cabreira, Especialista Cloud e SRE da Natura, “Com a expansão dos nossos negócios, consequentemente nosso workload de aplicações rodando em Kubernetes aumentou, percebemos que gerenciar clusters estava começando a demandar muito esforço, migramos nossos clusters de Kops para EKS e ganhamos em agilidade nas atualizações, diminuímos os riscos de segurança e mantivemos nossos esforços voltados ao negócio e experiência das consultoras.”

Migração:

Após provas de conceito utilizando EKS, foi definida a estratégia de utilizar o Velero (https://velero.io/) para criar backups nos clusters de origem, baseado em KOPS, seguido de restores no novo cluster EKS. Essa estratégia permitiu replicar configurações para os clusters de EKS recém criados.

Para artefatos relacionados ao deploy, o ArgoCD(https://argoproj.github.io/argo-cd/), já utilizado na Natura, mantém as configurações dos deployments, services e ingress em um repositório git, realizando sincronismo entre eles e mantendo o controle de alterações a nível de infraestrutura, facilitando com isso a tarefa de replicar recursos no novo cluster.

Arquitetura de migração:

Tendo o cluster e seus recursos criados e sincronizados, foram realizadas ondas de migrações, iniciando com ambientes de desenvolvimento, seguidos de homologação e posteriormente produção. Essas ondas, alinhadas com o negócio, tinham basicamente uma atividade: atualizar o DNS das aplicações(Route53) para os LoadBalancers (Ingress) dos novos clusters.

Além disso, junto com a migração outras melhorias foram implantadas, como a automatização de 100% da criação de novos ambientes utilizando esteiras devops, trazendo agilidade para as equipes e segurança na replicabilidade de tarefas de infraestrutura.

Resultados:

“O trabalho em parceria com a AWS foi de grande importância e sinergia. Trouxemos um nível de maturidade para nossa operação que reflete diretamente na experiência e qualidade dos nossos serviços para as consultoras e clientes finais”, cita o Especialista Cloud & DevOps Natura &Co Latam, Luciano Beja.

Ao todo, foram realizadas 10 ondas, abrangendo as 930 aplicações e mais de 5 mil pods. Todas foram migradas com sucesso e de forma transparente para as consultoras, clientes e time de desenvolvimento da Natura.

Atualmente a Natura executa aplicações de alto impacto para o negócio utilizando EKS, alguns exemplos como a plataforma de gestão das vendas da consultora, que possui 1,8 milhões de usuários, a plataforma de serviços financeiros &Co Pay, lançada inicialmente para consultoras Natura no Brasil, além de processos de inovação e da plataforma de e-commerce.

Após o início da migração em 2019 até a publicação desse artigo os novos clusters EKS não tiveram indisponibilidade, isso se traduz em mais estabilidade e disponibilidade para as aplicações e uma melhor experiência para os clientes.

Além desses benefícios, a Natura reduziu em 1/3 o custo com os master nodes e em 48% os custos com os ambientes em EKS em geral, podemos também citar os custos indiretos com seus especialistas que agora podem se dedicar em atividades que agreguem mais valor ao negócio.

Segundo Renzo, head de Cloud Platform Engineering & DevOps da Natura &Co Latam, “A expansão para outros mercados, regiões, novas marcas e o forte crescimento de demanda nos ativos digitais aliados ao avanço da digitalização e da nossa estratégia de plataforma gerou um incremento de aproximadamente 80% na quantidade de ambientes de microsserviços. Esse forte crescimento gerou mais complexidade de operação/atualização e aumento de nossos custos. Optamos por migrar para o EKS para suportar esse crescimento e com o objetivo de ganhar agilidade, simplificação e redução de custos com a operação dos ambientes de microsserviços.”

Links:

Escrito por Thiago Couto, Arquiteto de Soluções na AWS, Luciano Beja, Especialista Cloud & DevOps na Natura, Bruno Emer, Arquiteto de Soluções Especialista em Containers na AWS, Marcio Cabrera, Especialista Cloud e SRE na Natura e Renzo Petri, Cloud Platform Engineering & DevOps na Natura. 

 

Esta é uma produção da Amazon Web Service – AWS, parceira da 100 Open Startups, que estará mensalmente aqui no blog, com artigos específicos para startups! A AWS também estará presente durante todo o ano com conteúdos especiais para startups em todas as edições da Oiweek e oportunidades exclusivas na plataforma 100 Open Startups!

Indicação complementar: Como vencer o desafios de tecnologia na sua startup