转而使用 Amazon ECS 大大简化了服务的运行,无需担心预配置或可用性。
Calvin French-Owen 联合创始人兼首席技术官

Segment 为企业提供一种可从枢纽中心收集客户数据,以备日后用于分析、市场营销和其他用途的服务。该公司的总部位于旧金山,拥有广泛的客户群,从初创公司到大型企业,其中包括 Nokia、Angie’s List、Conde Nast、The Motley Fool 和 Salesforce Foundation 等。

  • 最初,该公司在实例上运行所有应用程序,包括 API 后端、数据获取等等。
  • 预配置应用程序属于手动密集型操作,需要运行启动脚本并进行手动安装;实例会因配置设置出现不同而变得不同步。
  • 使用 Docker 以实现更好的配置管理。应用程序可通过 Docker Compose 定义,以确保一致性并保持无状态。
  • 希望将其基于 Docker 的新架构投入生产,但需要一种方法来大规模管理和安排容器。
  • 评估了许多开源选项,但因为一直在使用其他 AWS 产品,希望找到一个简单并且可与 AWS 生态系统集成的解决方案。
  • 开始使用 Amazon EC2 Container Service (Amazon ECS),以此来减轻服务的群集管理和容器编排负担。
  • API、CDN 和 App 等不同的服务部署在不同的 Amazon ECS 群集上。每种服务按任务定义来定义,指明运行哪个容器版本,选择哪个群集以及应该部署多少个容器。
  • Elastic Load BalancingAmazon Route 53 用于服务发现。每种服务注册一个 ELB 并且 Amazon Route 53 在每个 ELB 中指定一个本地条目。各项服务可通过 DNS 相互通信。
  • Segment 使用 Datadog (AWS 高级技术合作伙伴) 提供有关使用情况和延迟的各项指标和可视化数据。
  • Amazon ECS 可跨多个可用区管理不同 Amazon EC2 实例上的容器置放,从而使 Segment 实现更好的可用性。
  • 运行新服务变得简单、轻松。该过程包括添加 Dockerfile、创建任务定义以及将它与群集关联起来。
  • Amazon ECS 可管理启动容器和确保容器持续运行的复杂性。这让开发人员能够专注于开发,而不必担心部署发生停机和应用程序的整体可用性。

要了解简化容器编排和管理的更多信息,请访问我们的 Amazon EC2 Container Service 页面。