La transición a Amazon ECS mejoró significativamente el desempeño de nuestro servicio. Redujimos los tiempos de respuesta de los servicios del percentil 99 en un 50%.
Jason Fischl Vicepresidente de ingeniería

Remind es una aplicación web y móvil que permite a los maestros escolares enviar mensajes de texto a los alumnos y estar en contacto con los padres. Remind tiene 25 millones de usuarios y más de 1,5 millón de maestros en su plataforma. La aplicación envía 150 millones de mensajes por mes.

AWS re:Discurso Invent 2015 | Jason Fischl, VP de ingeniería, Remind (7:44)

reinvent-remind
  • Remind usaba una plataforma en la nube de un tercero como un servicio (PaaS) para ejecutar la infraestructura entera de su aplicación –motor de entrega de mensajes, API de front-end, cliente web, backend de chat– como una aplicación monolítica.
  • Los problemas de escalamiento impulsaron la migración a una arquitectura basada en microservicios, pero Remind no estaba satisfecha con la visibilidad limitada en la CPU, la memoria y el desempeño de la red disponibles desde el proveedor de la PaaS.
  • Remind quería usar Docker en Amazon Elastic Compute Cloud (Amazon EC2) para un mejor uso del recurso y una mejor consistencia del entorno, y la idea inicial era tener una solución PaaS interna para la eficiencia del desarrollador.
  • Remind comenzó a crear su propia PaaS en CoreOS y flota con base en Linux, pero el almacenamiento de la flota y el valor clave etcd eran inestables. El equipo tampoco quería invertir tiempo en ejecutar y operar su propio sistema de administración de clústeres.

  • Remind eligió usar AWS directamente para mantener la simpleza operativa. Ya estaba usando Amazon Redshift, Amazon DynamoDB, Amazon Simple Storage Service (Amazon S3) y Amazon CloudFront.
  • La empresa decidió crear su PaaS sobre Amazon EC2 Container Service (Amazon ECS) porque el equipo de ingeniería era pequeño y no tenía ni el tiempo ni la experiencia necesarias para operar y administrar clústeres.
  • Remind cambió su solución PaaS a código abierto en Amazon ECS como “Empire”.
  • Amazon ECS provee integración y programación de contención mientras que Elastic Load Balancing (ELB) permite a Empire usar DNS para el descubrimiento de servicios.
  • Empire ofrece una API compatible con Heroku y CLI que permite a los desarrolladores implementar aplicaciones fácilmente sobre Amazon ECS.

  • Amazon ECS, un servicio administrado, provee eficiencia operativa, lo que permite que los recursos de ingeniería se centren en el desarrollo y la implementación de aplicaciones en vez de en la operación y el mantenimiento de clústeres.
  • La migración a Amazon ECS trajo grandes mejoras en el desempeño, entre ellas, una mejor estabilidad y una latencia más baja.
  • Remind ha reducido los tiempos de respuesta del percentil 99 a la mitad, con menos variación y menos picos.
  • AWS ofrece control de la seguridad y el destino mediante la VPC, además una mayor visibilidad en el desempeño de las aplicaciones.

Para obtener más información acerca de cómo AWS puede ayudarle a administrar los contenedores Docker, visite la página de Amazon EC2 Container Service.