O blog da AWS

Saiba porque a Natura migrou seus clusters Kubernetes para EKS

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

 

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.

 

O desafio:

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, memoria, 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 a 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 esquipes 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:

 


Sobre os autores

Thiago Couto é arquiteto de soluções na AWS e atua no segmento Enterprise auxiliando clientes de Retail e CPG em suas jornadas para nuvem. Possui mais de 10 anos de experiência atuando em arquiteturas que englobam AI/ML, integrações, IoT e correlatos.

 

 

 

 

Luciano Beja é Especialista Cloud & DevOps na Natura, atuando no suporte as Squads e desenvolvimento da Plataform DevOps. Com 20 anos de experiência em tecnologia, sendo 4 como Especialista, gosta de utilizar as melhores tecnologias de forma que tragam benefícios para seu time e para toda companhia.

 

 

 

Bruno Emer é Arquiteto de Soluções Especialista em Containers, localizado em São Paulo??, Brasil. Quando ele não está trabalhando com clientes ou escrevendo conteúdos, ele gosta de viajar e ouvir música, principalmente samba e R&B.

 

 

 

 

Marcio Cabrera é Especialista Cloud e SRE na Natura, atua como suporte em infraestrutura aos principais sistemas. Sempre procura oportunidades de conhecer sobre novas tecnologias e formas de melhor aplicá-las.

 

 

 

 

Renzo Petri tem 15 anos de experiência em TI abrangendo projetos e soluções de desenvolvimento, arquitetura e infraestrutura. Ele está na Natura há quase seis anos. Como chefe de Cloud Platform Engineering & DevOps, ele é responsável por transformar a infraestrutura da Natura, liderar a jornada da nuvem da empresa e construir a função DevOps / Cloud. Fã de tecnologias disruptivas, ele é atualmente responsável pelas equipes de Arquitetura Digital, Engenharia de Qualidade e Engenharia de Plataforma (DevOps).

 

 

Explore mais conteúdos sobre Computação na página de Sessions On Demand.

Acesse >