Companhia
Produto e engenharia
Companhia
Produto e engenharia
December 21, 2021
5 minutos

A jornada do Kubernetes

Denner Padilha

Diretor de operações de software e segurança

A Trustly, Inc. (anteriormente conhecida como PayWithMyBank) trabalhou com toda a sua operação em nuvem para executar mais de 20 microsserviços desde 2015, 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 é executado inteiramente na Amazon Web Services (AWS). Durante anos, ela teve principalmente orquestração em nuvem usando o CloudFormation e o Packer. Usamos três camadas do CloudFormation: uma para a rede, uma para proxy reverso (Nginx) e outra para o aplicativo. Aproximadamente duas implantações por dia foram feitas diretamente pelo CloudFormation. Esse modelo de implantação contínua nos serviu muito bem. Vamos chamar esse ambiente antigo infra clássico.

Em 2018, a equipe 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 do nosso infra clássico. Como resultado, pesquisamos as ferramentas essenciais para nosso processo dentro do cluster.

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

EX: Como estávamos na AWS, fazia sentido usar o EKS para executar nosso ambiente em 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 criava muitos problemas e exigia processos manuais para integrar nossa VPC à ferramenta EKSCTL. Por exemplo, você poderia provisionar o cluster K8s, mas tinha muitas etapas manuais para que tudo funcionasse. 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.

Ferramentaria

Pesquisa aberta: Com o Kubernetes, você precisa coletar e centralizar os registros de alguma forma. Por esse motivo, precisávamos de uma ferramenta para gerenciar os registros 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 (inicialmente). Recentemente, atualizamos para o OpenSearch, que é uma ferramenta robusta com todos os recursos necessários para um gerenciamento confiável de registros e que pode ser integrada ao Filebeat e ao Logstash.

Spinnaker: Na jornada para a implantação do Kubernetes, notamos limitações nos requisitos de implantação. Para resolvê-los, 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 do Kubernetes, toda a configuração da conta da AWS foi criada pelo Terraform. O Terraform é responsável por criar a VPC, grupos de segurança, sub-redes, tabelas de rotas, gateway nat e os recursos necessários para executar o cluster K8s.

Eksctl: Essa é uma excelente ferramenta para instalar e configurar um cluster EKS. Ele 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 no classic-infra 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 sair de infra clássico para o Kubernetes, dividindo o tráfego em pequenas porcentagens até atingir 100% do tráfego no K8s.

Aumentamos cuidadosamente o tráfego ao longo de 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 em 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 log do cluster separado do cluster K8s. Com isso, os dois ambientes puderam enviar logs para o OpenSearch e, por meio de tags, pudemos identificar o cluster em cada linha de log, facilitando a solução de problemas.

Conclusão

O Kubernetes é uma ferramenta poderosa, mas precisa de 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 Kubernetes na Trustly. Se você quiser ver mais detalhes sobre escalonamento automático, estratégia de verificação de integridade de pods e melhores práticas de Java usando contêineres, siga este blog para ver conteúdo futuro.

 

Denner Padilha
Chefe de operações de nuvem e segurança, Trustly America

Denner é chefe de operações de nuvem e segurança da Trustly. No início de 2018, Denner ingressou na Trustly como gerente de operações de TI, onde foi responsável por toda a infraestrutura de nuvem e operações de TI nas 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 estudantes de graduação e MBA.

Fique por dentro

Obtenha informações e atualizações exclusivas sobre tudo o que diz respeito ao Open Banking e aos Pagamentos.

Fique por dentro

Obtenha informações e atualizações exclusivas sobre tudo o que diz respeito ao Open Banking e aos Pagamentos.

Obrigada! Seu envio foi recebido!
Opa! Algo deu errado ao enviar o formulário.

Páginas e recursos relevantes

Open Banking
Companhia
April 8, 2024
3 minutos
ESPN Bet e expanda Trustly os pagamentos instantâneos com o FedNow® ️
Open Banking
Produto e engenharia
January 29, 2024
8 minutos
Escalando a Inteligência Artificial (AI) no Open Banking: Construindo a plataforma de aprendizado de máquina da Trustly
Companhia
Open Banking
Pagamentos
September 14, 2023
2 minutos
BNY Mellon x Trustly: uma nova era de pagamentos C2B