Empresa
Produto e engenharia
Empresa
Produto e engenharia
21 de dezembro de 2021
5 minutos

A jornada do Kubernetes

Denner Padilha

Diretor de Operações de Software e Segurança

TrustlyA , Inc. (anteriormente conhecida como PayWithMybank) trabalhou com toda a sua operação de nuvem para executar mais de 20 microsserviços desde 2015, que são responsáveis por conectar seus usuários a mais de 1.000 bancos em todo o mundo. Embora a Trustly tivesse uma infraestrutura madura e estável, a jornada começou em 2018 para modernizar a arquitetura do aplicativo para usar contêineres no Kubernetes.

Visão geral

O ambiente da Trusty é totalmente executado no Amazon Web Services (AWS). Durante anos, ele teve principalmente orquestração de nuvem usando o CloudFormation e o Packer. Usamos três camadas do CloudFormation: uma para a rede, uma para o proxy reverso (Nginx) e uma para o aplicativo. Cerca de duas implementações por dia foram feitas diretamente pelo CloudFormation. Esse modelo de implementação contínua nos serviu muito bem. Vamos chamar esse ambiente antigo de classic-infra.

Em 2018, a equipe de DevSecOps da Trustly começou a estudar o Kubernetes (K8s) e transferiu o tráfego de produção para o novo ambiente em maio de 2021. Quando começamos a estudar o Kubernetes, ficou claro que ele não atendia a todos os recursos de nossa interface clássica. Como resultado, pesquisamos as ferramentas essenciais para nosso processo dentro do cluster. 

Mas, primeiro, vamos falar sobre o Elastic Kubernetes Service (EKS)...

EKS: como estávamos no AWS, fazia sentido usar o EKS para executar nosso ambiente no K8s. O EKS é um serviço da AWS que fornece segurança e disponibilidade para o plano de controle do Kubernetes. Quando começamos em 2018, a versão do EKS era 1.11, o que criou muitos problemas e exigiu processos manuais para integrar nosso VPC à ferramenta EKSCTL. Por exemplo, você podia provisionar o cluster K8s, mas havia muitas etapas manuais para fazer tudo funcionar. Quando lançamos o cluster K8s em produção em 2021, já estávamos na versão 1.20 do EKS, que fornecia muito mais recursos de automação no EKSCTL.

Ferramentas

OpenSearch: Com o Kubernetes, você precisa coletar e centralizar os logs de alguma forma. Por esse motivo, precisávamos de uma ferramenta para gerenciar os logs de aplicativos no Kubernetes. Um dos motivos pelos quais o projeto levou três anos para ser concluído foi o tempo necessário para aprender e implantar um cluster do ElasticSearch usando o OpenDistroElasticSearch (no início). Recentemente, fizemos o upgrade para o OpenSearch, que é uma ferramenta robusta com todos os recursos necessários para o gerenciamento confiável de logs e que pode ser integrada ao Filebeat e ao Logstash.

Spinnaker: Na jornada para implantar o Kubernetes, notamos limitações nos requisitos de implantação. Para resolvê-las, adotamos a ferramenta Spinnaker, desenvolvida e mantida pela Netflix. O Spinnaker nos permitiu criar um pipeline complexo e a possibilidade de ter uma implantação azul/verde em nosso cluster.

Terraform: Quando começamos nossa jornada, todo o nosso ambiente estava no CloudFormation. Não tínhamos experiência com o Terraform. Para os novos ambientes Kubernetes, toda a configuração da conta do AWS foi criada pelo Terraform. O Terraform é responsável por criar o VPC, os grupos de segurança, as sub-redes, as tabelas de rotas, o gateway nat e os recursos necessários para executar o cluster do K8s.

Eksctl: essa é uma excelente ferramenta para instalar e configurar um cluster EKS. Ela consegue facilitar várias etapas na instalação de um novo cluster EKS.

Com todas essas ferramentas, foi possível manter a mesma visibilidade que tínhamos na interface clássica dentro do cluster EKS, obtendo os benefícios do Kubernetes nessa nova arquitetura.

A vez

Para estarmos preparados para o dinamismo e o ritmo acelerado do desenvolvimento do Kubernetes, projetamos - tanto na VPC quanto nos componentes associados ao cluster - a capacidade de executar nosso aplicativo simultaneamente em dois clusters (roteando o tráfego entre eles por meio do ROUTE53). Essa estratégia nos ajudou a migrar do classic-infra para o Kubernetes, dividindo o tráfego em pequenas porcentagens até atingir 100% de tráfego no K8s. 

Aumentamos cuidadosamente o tráfego ao longo das semanas (começando com 1% do tráfego e depois passando para 5% do tráfego). Depois de muitos ajustes e melhorias, acabamos convertendo 100% do tráfego para o Kubernetes. Nesse ponto, estávamos confortáveis com o ambiente e pudemos observar sua estabilidade nos dias seguintes.

A receita para o sucesso de nossa estratégia foi manter o registro do cluster separado do cluster do K8s. Com isso, ambos os ambientes poderiam enviar logs para o OpenSearch e, por meio de tags, poderíamos identificar o cluster em cada linha de log, facilitando a solução de problemas.

Conclusão

O Kubernetes é uma ferramenta avançada, mas requer um esforço extra para instalar, configurar e manter, além de exigir outros componentes para criar um cluster K8s pronto para produção. 

Este primeiro artigo é uma visão geral da arquitetura do Kubernetes em Trustly. Se quiser ver mais detalhes sobre dimensionamento automático, estratégia de verificação de integridade de pods e práticas recomendadas de Java usando contêineres, siga este blog para obter conteúdo futuro.

 

Denner Padilha
Chefe de Operações de Nuvem e Segurança, Trustly América

Denner é chefe de operações de nuvem e segurança na Trustly. No início de 2018, Denner ingressou na Trustly como gerente de operações de TI, onde era responsável por toda a infraestrutura de nuvem e operações de TI para as Américas do Norte.
Denner tem vasta experiência em desempenho de aplicativos, bem como em auditoria de segurança ISO27001, PCI e SSAE18 SOC Tipo 2. Anteriormente, ele trabalhou como professor no Brasil, ensinando disciplinas de TI para alunos de graduação e MBA.

Fique por dentro

Obtenha insights exclusivos e atualizações sobre todos os assuntos relacionados a Open Banking e pagamentos.

Obrigado! Seu envio foi recebido!
Ops! Algo deu errado ao enviar o formulário.

Páginas e recursos relevantes

Open Banking
Empresa
8 de abril de 2024
3 min
ESPN Bet e Trustly expandem os pagamentos instantâneos com FedNow®️
Open Banking
Produto e engenharia
29 de janeiro de 2024
8 min
Dimensionamento da inteligência artificial (IA) em Open Banking: Criando a plataforma de aprendizado de máquina da Trustly
Empresa
Open Banking
Pagamentos
14 de setembro de 2023
2 minutos
BNY Mellon x Trustly: Uma nova era de pagamentos C2B