A migração para o Amazon ECS melhorou significativamente o desempenho do nosso serviço. Reduzimos o tempo de resposta do serviço no 99º percentil em 50%.
Jason Fischl VP de engenharia

A Remind é uma aplicação web e móvel que permite que professores enviem mensagens de texto para alunos e mantenham contato com os pais. A Remind tem 25 milhões de usuários e mais de 1,5 milhão de professores em sua plataforma. Além disso, a aplicação entrega 150 milhões de mensagens ao mês.

Palestra da AWS re:Invent 2015 | Jason Fischl, Vice-presidente de engenharia da Remind (7:44)

reinvent-remind
  • A Remind usava uma plataforma como serviço (PaaS) de nuvem de terceiros para executar toda a infraestrutura da sua aplicação (mecanismo de entrega de mensagens, API de front-end, cliente web, back-end de bate-papo) como uma aplicação monolítica.
  • Os problemas de escalabilidade impulsionaram a migração para uma arquitetura baseada em microsserviços, mas a Remind não estava satisfeita com a visibilidade limitada sobre o desempenho da CPU, da memória e da rede oferecida pelo provedor de PaaS.
  • A Remind desejava usar o docker no Amazon Elastic Compute Cloud (Amazon EC2) para uma melhor utilização de recursos e uniformidade do ambiente, e a ideia inicial era ter uma solução de PaaS interna para obter eficiência de desenvolvedor.
  • A Remind começou a criar seu próprio PaaS na frota e no CoreOS baseado em Linux, mas a frota e o armazenamento de chave-valor etcd eram instáveis. A equipe também não queria gastar tempo para executar e operar seu próprio sistema de gestão de clusters.

  • A Remind optou por usar a AWS diretamente para manter a simplicidade operacional, pois já usava o Amazon Redshift, o Amazon DynamoDB, o Amazon Simple Storage Service (Amazon S3) e o Amazon CloudFront.
  • A empresa decidiu criar sua PaaS no Amazon EC2 Container Service (Amazon ECS) porque a equipe de engenharia era pequena e não tinha o tempo nem a expertise necessários para operar e gerenciar clusters.
  • A Remind transformou a solução de PaaS em código aberto no Amazon ECS e a disponibilizou como "Empire".
  • O Amazon ECS disponibiliza a programação e a integração de contêineres e o Elastic Load Balancing (ELB) permite que o Empire use o DNS para descoberta de serviços.
  • O Empire disponibiliza API e CLI compatíveis com Heroku que permitem que os desenvolvedores implantem facilmente aplicações no Amazon ECS.

  • O Amazon ECS, um serviço gerenciado, disponibiliza eficiência operacional, permitindo a concentração dos recursos de engenharia no desenvolvimento e na implantação de aplicações em vez de na operação e na manutenção de clusters.
  • A migração para o Amazon ECS proporcionou grandes melhorias de desempenho, inclusive estabilidade superior e menor latência.
  • A Remind observou um tempo de resposta duas vezes menor no 99º percentil, com menos variações e picos.
  • A AWS disponibiliza controle sobre a segurança e roteamento por meio das VPCs, além de uma visibilidade mais clara sobre o desempenho das aplicações.

Para saber mais sobre como a AWS pode ajudar a gerenciar contêineres de docker, acesse a página de detalhes sobre o Amazon EC2 Container Service.