O blog da AWS

Caso de Sucesso: Como a HeroSpark otimizou custos, gerenciamento e disponibilidade migrando suas aplicações para o Amazon ECS

Mateus Leonardi, Sócio e Head de Engenharia, HeroSpark

Rennan Ribeiro, Engenheiro de Software Principal, HeroSpark

Amanda QuintoArquiteta de Soluções, AWS Brasil Setor Público

Isabela Gherson Monteiro, Arquiteta de Soluções, AWS Brasil Setor Público

Raquel Gossett, Education Account Manager, AWS Brasil Setor Público

Entenda como a EdTech HeroSpark superou desafios de interrupções e gerenciamento de infraestrutura e atingiu 99.99% de disponibilidade ao modernizar e migrar suas aplicações do Kubernetes para o Amazon ECS.

Conheça a HeroSpark

A HeroSpark é uma EdTech na área de empreendedorismo digital que atua há mais de 15 anos no mercado e oferece uma plataforma “tudo em um” conhecida como o “Canva” do infoprodutor. Como a plataforma mais completa do mercado digital, as aplicações da HeroSpark permitem qualquer pessoa, independente do seu nicho ou momento de jornada, monetizar seu conhecimento em um produto ou serviço digital na internet.

A HeroSpark tem as ferramentas para qualquer empreendedor digital lançar mais rápido e faturar mais. São funcionalidades para todas as etapas da criação de um negócio de sucesso: criação e hospedagem de produtos, geração de leads e construção de audiência, vendas e checkout, gestão e otimização de negócio, e grandes lançamentos digitais. Recursos como e-books, mentorias, videoaulas, cursos online, entre outros são oferecidos para a criação de landing pages para vendas, com modelos prontos e copys validadas para diferentes mercados. Ou seja, tudo em um só lugar, sem a necessidade de várias integrações, ou de aprender a usar vários tipos de ferramentas.

Geração de leads e construção de audiência automatizada também é essencial para os clientes HeroSpark. Os clientes têm vários funis de venda pré-configurados e podem executar campanhas de e-mail marketing dentro da própria plataforma HeroSpark. As vendas acontecem por meio de checkout próprio de alta conversão, e um dos mais rápidos do mercado. Ele dispõe de ferramentas avançadas, como order bump, upsell com um clique, recuperação de carrinho, e muito mais. Também é possível desenvolver diferentes estratégias de venda na HeroSpark, incluindo clubes de assinaturas e gerenciamento de programa de afiliados.

Após a compra, seu cliente tem acesso a uma área de membros com estilo Netflix, em que pode assistir à todas as aulas com uma experiência cinematográfica. Os alunos também têm acesso a um aplicativo para acompanhar as aulas onde escolherem, gerando alto engajamento com o conteúdo. Os dashboards fornecem análises detalhadas de resultados, acompanhamento de vendas em tempo real e relatórios de negócios personalizados. Com essas informações em mãos, o empreendedor digital pode otimizar sua estratégia e ajustar o seu negócio para atingir metas cada vez mais ambiciosas.

Os serviços da AWS já suportavam as principais aplicações da HeroSpark, com exceção a um cluster de Kubernetes hospedado em outro provedor. Desafios importantes relacionados a gerenciamento dessa infraestrutura e disponibilidade levaram a uma recente migração da aplicação que estava no cluster para o Amazon Elastic Container Service (ECS). Após essa movimentação a HeroSpark tornou-se “all in” AWS. Com esta migração, a modernização de suas aplicações que estavam em EC2 e uso de computação sem servidor para containers através do AWS Fargate, a EdTech atingiu uma série de otimizações como gerenciamento simplificado de seu ambiente, redução de custos e maior uptime de suas aplicações.

O Desafio

Kubernetes é um orquestrador de contêineres mantido pela Cloud Native Computing Foundation (CNCF) muito difundido no mercado. Ainda que executado através de serviços gerenciados existem algumas complexidades que necessitam de atenção no dia-a-dia. Desde a escrita dos manifestos para criação de recursos, gestão de add-ons (Cluster Autoscaler/Karpenter) para escalonamento horizontal, como até upgrades de versões para manter o cluster operacional e disponível. Este tipo de tecnologia tende a onerar o time de infraestrutura, consumindo boa parte do tempo apenas garantindo que o ambiente esteja estável e que as aplicações seguem saudáveis no orquestrador.

Até o início de 2022, a maioria da aplicações da HeroSpark eram hospedadas em instâncias do Amazon EC2, ou, como no caso da recente migração, em containers dentro de clusters de Kubernetes gerenciados pelo próprio time de engenharia. No caso da HeroSpark, parte de suas aplicações estavam hospedadas em um cluster de Kubernetes auto-gerenciado em outro provedor de nuvem. Para o time de engenharia, a gestão da infraestrutura em EC2, somadas a complexidade de gerenciamento e frequentes atualizações do ambiente em Kubernetes representava um grande desafio que resultou várias vezes em estrangulamento de suas aplicações.

A Solução

Para otimizar esse cenário, a HeroSpark executou em três fases a otimização de seu ambiente:

  • Inicialmente foi feito um aprofundamento e análise dos serviços de containers da AWS, para definir uma ferramenta de orquestração e plataforma computacional que reduzisse a complexidade em cima do time de engenharia;
  • Após a definição, iniciou-se uma fase de modernização, que consistiu na conteinerização e migração das aplicações que estavam hospedadas no Amazon EC2 para o Amazon ECS;
  • A última fase, concluída em 2023, consistiu na migração das aplicações do Kubernetes para a AWS utilizando o Amazon ECS.

Na primeira fase a Herospark definiu como orquestrador o Amazon ECS, que é um orquestrador de contêineres totalmente gerenciado e que simplifica a implantação, o gerenciamento e a escalabilidade de aplicações conteinerizadas na AWS. Um dos grandes fatores que motivaram a migração foi a fácil portabilidade das aplicações para o ECS, uma vez que este, assim como o Kubernetes é baseado em containers definidos por Dockerfiles.

A infraestrutura de um cluster do Amazon ECS pode ser baseada no AWS Fargate, que permite o provisionamento de tarefas de forma totalmente sem servidor, ou seja, basta definir a imagem de container, a quantidade de vCPU e memória ideal, definir parâmetros mínimo e máximo de tarefas para escalabilidade automática, e o serviço se encarrega em fazer a gestão da infraestrutura de acordo com a demanda para você.

A containerização das aplicações e a combinação desses serviços representou para a HeroSpark um ganho muito grande de simplicidade de gerenciamento de infraestrutura, bem como uma facilidade na gestão da elasticidade das aplicações, portabilidade e economia de recursos, isto por que o AWS Fargate vai utilizar somente a quantidade exata de recursos, sem a necessidade de manter um nó inteiro utilizando Amazon EC2 e possivelmente desperdiçando capacidade computacional.

Arquitetura

Hoje, após as otimizações, todas as aplicações da HeroSpark seguem uma mesma topologia de base, que está representada em alto nível no diagrama a seguir:

Figura 1 – Arquitetura em alto nível topologia HeroSpark

1) Os Assets estáticos e o Front-End das aplicações são hospedados no Amazon S3, e distribuídos pelo Amazon CloudFront para otimização de performance e de custo de data transfer out.

2) O Back-end é hospedado em serviços dentro do Cluster do Amazon ECS com AWS Fargate, e funções Lambda complementares. A distribuição de carga entre os serviços e tarefas do cluster é efetuada pelo Application Load Balancer.

3) O Amazon SQS é usado para aumentar a resiliência e desacoplar os serviços dentro das aplicações.

4) Na camada de dados, a depender da aplicação, a HeroSpark mantém parte de suas bases em bancos PostgreSQL e MySQL do Amazon RDS, atrás do Amazon Elasticache para otimização de performance e atendimento ao ruby on rails e outra parte bem relevante de dados no MongoDB.

Resultados

Após essa otimização de infraestrutura de suas aplicações, a HeroSpark foi capaz de aplicar o DevOps como cultura organizacional, com um forte enfoque no time de engenharia, que ao manter um ambiente sem servidor, pode gerenciar toda sua infraestrutura a partir de código e focar o seu tempo em resolver desafios importantes para a empresa e inovações.

Alguns resultados obtidos com a migração das aplicações auto-gerenciadas para o Amazon ECS com o AWS Fargate, foi uma redução de custo de 33% em comparação ao ambiente de Kubernetes e de 25% em relação ao ambiente em Amazon EC2. Além de custo, outro ganho importante foi o tempo de interrupções de suas aplicações que reduziu em até 10 vezes, ao se comparar com as abordagens anteriores, obtendo um tempo de disponibilidade de 99.99% em todas as suas aplicações.

Voz do Cliente

“Assim que mudamos para AWS, percebemos um aumento significativo de performance e estabilidade, onde os picos e a escalabilidade ficaram transparentes. Está sendo muito simples manter a infraestrutura usando ECS com Fargate, é uma combinação mágica. Alinhamos o poder de serverless com a flexibilidade do Amazon ECS, e estamos muito felizes com a nossa escolha”

– Rennan Ribeiro (Engenheiro de Software Principal da HeroSpark).

“Após essa otimização, não sofremos mais com eventos e atualizações, conseguimos ter um maior controle sobre nosso ambiente e manter uma estrutura escalável, confiável e sem solavancos. Ano passado estávamos sofrendo um estrangulamento em nosso negócio devido as dificuldades com infraestrutura, e o Amazon ECS viabilizou o nosso produto e negócio de uma forma linda. Meu único arrependimento é não ter conhecido o ECS antes.”

– Mateus Leonardi (Sócio e Head de Engenharia da HeroSpark)

Conclusão

Conforme visto neste caso de sucesso, a HeroSpark executou uma modernização e migração de suas aplicações gerenciadas em Kubernetes de outro provedor de nuvem para AWS. Com essa otimização, o time de engenharia da EdTech recebeu uma série de benefícios como redução de custos operacionais, de infraestrutura e um uptime de 99.99% de todas suas aplicações.

Como próximos passos, a HeroSpark planeja seguir modernizando suas aplicações para que se tornem cada vez mais independentes, a partir de arquiteturas baseadas em eventos e adesão de mais componentes sem-servidor na solução.


Sobre os autores

 

Mateus Leonardi é atualmente Sócio e Head de Engenharia da HeroSpark e MongoDB User Group Leader. Trabalha com desenvolvimento de software desde 2008, já tendo trabalhado com várias linguagens e bases de dados. É casado, pai de 2 sapecas e cria aves no interior de Santa Catarina.

 

 

 

Rennan Ribeiro é Principal Engineer na HeroSpark com 12 anos de experiência no ecossistema de startups, utiliza tecnologias como serverless e cloud computing para maximizar a entrega de valor aos usuários.

 

 

 

Amanda Quinto é Arquiteta de Soluções na AWS e atua no setor financeiro para o setor público, com foco em cooperativas de crédito, ajudando as instituições financeiras a construírem soluções para atender as crescentes demandas de inovação e escalabilidade do setor financeiro nacional. Amanda é especialista em containers e práticas Devops e entusiasta de Inteligência Artificial.

 

 

Isabela Gherson Monteiro é Arquiteta de Soluções na AWS e atua hoje com foco no setor educacional ajudando EdTechs a construírem suas soluções seguindo as melhores práticas na nuvem AWS. Apresenta grande entusiasmo pelas áreas de Analytics e Inteligência Artificial.

 

 

Raquel Gossett está na área comercial de TI há 10 anos e tem acompanhado a transformação digital de diversas indústrias nos Estados Unidos e no Brasil. Raquel é Engenheira Agrônoma pela Universidade Federal do Ceará, pós graduada em Marketing pela Universidade de Massachusetts Amherst. Como Account Manager na AWS, Raquel atua no segmento de Educação apoiando Instituições de Ensino e EdTechs no Brasil a alcançarem os seus objetivos de inovação e modernização.