迁移到 Amazon ECS 后,我们服务的性能得到了显著提升。我们将服务响应时间的第 99 个百分位降低了 50%。
Jason Fischl 工程副总裁

Remind 是一款 Web 和移动应用程序,教师可以使用该应用程序向学生发送短信并与家长保持联系。Remind 在自己的平台上拥有 2500 万名用户和 150 多万名教师,该应用程序每月可发送 1.5 亿条消息。

AWS re:Invent 2015 主题演讲 | Jason Fischl,Remind 工程副总裁 (7:44)

reinvent-remind
  • Remind 使用第三方云平台即服务 (PaaS) 解决方案,将整个应用程序基础设施 (消息交付引擎、前端 API、Web 客户端、聊天后端) 作为单个应用程序运行。
  • 扩展问题促使 Remind 转而使用基于微服务的架构,但 Remind 对 PaaS 提供商提供的解决方案不满意,因为它无法全面了解 CPU 和内存的使用情况以及网络性能。
  • Remind 希望在 Amazon Elastic Compute Cloud (Amazon EC2) 上使用 Docker,以提高资源利用率和环境一致性,而最初的想法是使用内部 PaaS 解决方案来提高开发人员效率。
  • Remind 开始以基于 Linux 的 CoreOS 和 Fleet 为基础构建自己的 PaaS,但 Fleet 和键值存储 etcd 并不稳定。该团队也不想花时间运行和运营自己的群集管理系统。

  • 为保持运营的简便性,Remind 选择直接使用 AWS;已投入使用的产品包括 Amazon RedshiftAmazon DynamoDBAmazon Simple Storage Service (Amazon S3) 和 Amazon CloudFront
  • 由于工程团队的规模较小,且没有时间或所需的专业知识来运营和管理群集,该公司决定基于 Amazon EC2 Container Service (Amazon ECS) 来构建自己的 PaaS。
  • Remind 将其基于 Amazon ECS 的 PaaS 解决方案命名为 Empire,并开放了其源代码。
  • Amazon ECS 提供容器安排和集成,而 Elastic Load Balancing (ELB) 支持 Empire 将 DNS 用于服务发现。
  • Empire 提供与 Heroku 兼容的 API 和 CLI,让开发人员能够在 Amazon ECS 上轻松部署应用程序。

  • Amazon ECS 是一项托管服务,能够确保运营效率,从而将工程资源重点用于开发和部署应用程序,而不是运行和维护群集。
  • 迁移到 Amazon ECS 后,性能方面实现了巨大的改进,包括稳定性的提高和延迟的降低。
  • Remind 将响应时间的第 99 个百分位降低了 50%,且响应时间方差降低了,峰值也有所减少。
  • AWS 可通过 VPC 提供对安全性和路由的控制,还能让 Remind 更清晰地了解应用程序的性能。

要详细了解 AWS 如何帮助您管理 Docker 容器,请访问 Amazon EC2 Container Service 详情页面