挑战
培生是一家服务于 7500 万学习者的全球教育公司,其目标是到 2025 年将这一数字增加一倍以上,达到 2 亿。这种增长的关键部分在于数字学习体验,而培生在扩展和适应其不断增长的在线受众方面遇到了困难。他们需要一个能够快速扩展并将产品更快推向市场的的基础设施平台。
解决方案
“为了改造我们的基础设施,我们必须超越简单地启用自动化配置,”培生云平台与 SRE 总监 Chris Jackson 说。“我们意识到,我们必须构建一个平台,让培生开发人员能够以完全不同的方式构建、管理和部署应用程序。” 该团队选择了 Docker 容器技术和 Kubernetes 编排,“因为它具有灵活性、易于管理以及可以提高我们工程师的生产力。”
影响
有了这个平台,生产力和交付速度都得到了显著提高。“在某些情况下,我们已经从在数据中心配置物理资产的九个月,缩短到只需几分钟即可配置并将新想法展示给客户,”云平台团队的首席站点可靠性工程师 John Shirley 说。Jackson 估计他们节省了 15-20% 的开发人员生产力。以前,在他们一年中最繁忙的时期,即返校期间,停机是一个问题。现在,他们对满足积极的客户 SLA 的能力充满信心。
2015 年,培生作为全球最大的教育公司,已经为 7500 万学习者提供服务,为从学前班到大学及以后的学生提供课程和评估工具。认识到创新数字教育体验是所有形式教育未来的关键,该公司着手到 2025 年将其覆盖范围扩大到 2 亿人。
这个目标需要改造其现有的数据中心基础设施。在某些情况下,配置物理资产需要九个月的时间。为了适应其不断增长的在线受众的需求,培生需要一个能够快速扩展并将业务关键产品更快推向市场的基础设施平台。“我们必须超越简单地启用自动化配置,”培生云平台与 SRE 总监 Chris Jackson 说。“我们意识到,我们必须构建一个平台,让培生开发人员能够以完全不同的方式构建、管理和部署应用程序。”
培生拥有 400 个开发团队和不同品牌,这些品牌具有不同的业务和技术需求,因此采用了 Docker 容器技术,以便每个品牌都可以尝试使用其首选技术构建新型内容,然后使用容器交付内容。Jackson 选择 Kubernetes 编排是“因为它具有灵活性、易于管理以及可以提高我们工程师的生产力,”他说。
该团队在 Kubernetes 还是 1.2 版本时就采用了它,现在仍然在 1.7 版本上运行良好;他们使用 Terraform 和 Ansible 将其部署到基本的 AWS 原语上。“我们试图了解如何从这项技术中为培生创造价值,”云平台首席架构师 Ben Somogyi 说。“事实证明,Kubernetes 的好处是巨大的。我们正在努力帮助使用我们平台的应用程序开发团队更快地前进,因此我们使用 CI/CD 管道填补了这一空白,该管道为他们构建映像、标准化它们、修补所有内容,允许他们将不同的环境部署到集群上,并模糊了底层工作的难度细节。”
这项工作产生了两个用于在集群中构建和部署应用程序的工具,培生已将其开源。“我们是一家教育公司,所以我们想尽可能地分享,”Somogyi 说。
现在,开发团队不再需要担心基础设施,生产力和交付速度都得到了显著提高。“在某些情况下,我们已经从在数据中心配置物理资产的九个月,缩短到只需几分钟即可配置并将新想法展示给客户,”云平台团队的首席站点可靠性工程师 John Shirley 说。
据 Jackson 称,云平台团队可以“在几分钟内为开发团队配置新的概念验证环境,然后他们可以尽快将其投入生产。这是所有主要技术服务的价值主张,我们必须像一个公司一样竞争才能成为开发人员的首选。仅仅因为您在同一家公司工作,您就没有权利强迫人们使用平庸的服务。您的内部客户需要感觉他们正在选择最适合他们的选择。我们正在服务采用的增长中亲身体验这一点。我们看到该服务同比增长三位数。”
Jackson 估计,采用该平台的开发团队的生产力提高了 15-20%。他们还发现,影响客户的事件数量减少了。此外,Jackson 说,“以前每个学年仅限于 1-2 次发布的团队现在可以每天多次发布代码!”
可用性也受到了积极的影响。返校季是该公司一年中最繁忙的时期,“你必须保持应用程序的运行,”Somogyi 说。以前,这对遗留基础设施来说是一个痛点。现在,对于已迁移到 Kubernetes 平台的应用程序,“我们有 100% 的正常运行时间。我们不担心 9s。没有任何 9s。它是 100%,这对我们来说非常惊人,与一些存在遗留问题的现有平台相比,”Shirley 说。
“你甚至无法开始为公司节省多少钱定价,”Jackson 解释道。“减少支持案例的数量减轻了我们运营的负担。拥有可靠产品的客户情绪会推动客户保留和增长。它使我们能够考虑更多地投资于我们的数字化转型,并将更高质量的教育推广到全球范围。”
该平台本身也被分解,“因此我们可以快速发布平台的较小部分,例如升级我们的 Kubernetes 或构成我们平台的所有不同模块,”Somogyi 说。“2018 年的一个主要重点是这种交付方案,以更新平台本身。”
在培生实现 2 亿用户的总体目标的指导下,该团队对平台的扩展性进行了内部测试。“我们遇到了一个挑战:在 10 分钟内有 2800 万次请求,”Shirley 说。“我们证明我们可以实现这一目标,并具有可接受的延迟。我们看到我们实际上可以很容易地实现这一点,并且我们仅使用开源工具在几秒钟内就扩大了规模。在此向 Locust 致敬。这真是太棒了。”
在短短两年内,“我们已经看到了 Kubernetes 的巨大好处——提高了工程生产力、加快了应用程序的交付速度并简化了基础设施,”Jackson 说。“但这仅仅是开始。Kubernetes 将帮助改变在线教育内容的交付方式。”
到目前为止,大约有 15 个生产产品在新平台上运行,包括培生的新旗舰数字教育服务——全球学习平台。云平台团队继续准备、加入和支持适合该平台的客户。一些现有产品将被重构为 12 要素应用程序,而另一些产品正在开发中,以便它们可以从一开始就存在于平台上。“当然,在引入新客户时会遇到挑战,因为我们必须帮助他们看到不同的开发方式、不同的构建方式,”Shirley 说。
但是,他补充说,“这是我们的企业座右铭:始终学习。我们鼓励那些尚未开始云原生之旅的团队,看到技术的未来,学习和探索。这会引起你的兴趣。不断学习。”