挑战
作为高品质音响设备的家喻户晓的品牌,Bose 提供连接产品已有五年多时间,随着需求增长,基础设施必须改变以支持这种需求。首席云工程师 Josh West 说:“我们需要为开发人员提供一种机制,使其能够快速原型设计并将服务快速部署到生产环境。” 2016 年,公司决定开始从零构建一个平台。云架构经理 Dylan O'Mahony 说,主要目标是:“领先于不同的产品组一到两步,这样我们就永远不会手忙脚乱地追赶他们的规模。”
解决方案
从一开始,团队就知道他们需要一个微服务架构。在评估和原型设计了几种编排解决方案后,团队决定采用Kubernetes 来构建其运行在 AWS 上的规模化物联网平台即服务 (PaaS)。该平台还集成了 Prometheus 监控,于 2017 年悄然进入生产环境,从一开始就为超过 300 万个连接产品提供服务。此后,Bose 还采用了许多其他 CNCF 技术,包括 Fluentd、CoreDNS、Jaeger 和 OpenTracing。
影响
随着约 100 名工程师入职,该平台现在支持每年跨数十个微服务的 30,000 次非生产环境部署。2018 年,生产环境部署超过 1250 次。仅一个生产集群就拥有 1,800 个命名空间/独立服务和 340 个工作节点。O'Mahony 说:“我们有一个全新服务,从概念、编码、部署到最终投入生产,包括加固、安全测试等等,整个过程不到两周半。”
首席云工程师 Josh West 说:“我们需要为开发人员提供一种机制,使其能够快速原型设计并将服务快速部署到生产环境。” “我们希望提供很多云能力来支持我们的音响设备和体验。”
2016 年,公司决定开始从零构建一个物联网平台。云架构经理 Dylan O'Mahony 说,主要目标是:“领先于不同的产品组一到两步,这样我们就永远不会手忙脚乱地追赶他们的规模。”“如果他们发布一款新的连接产品,我们希望能够远超处理他们将抛给我们的任何规模的需求。”
从一开始,团队就知道他们需要一个微服务架构和平台即服务。在评估和原型设计了包括 Mesos 和 Docker Swarm 在内的编排解决方案后,团队决定采用Kubernetes 来构建其运行在 AWS 上的平台。Kubernetes 当时还在 1.5 版本,但这项技术已经能够满足团队当下和未来所需的大部分功能。对 West 而言,这意味着存储和网络得到了处理。O'Mahony 指出 Kubernetes 的可移植性,以备 Bose 决定走向多云。
West 说:“Bose 是一家着眼于长远的公司。” “选择一个快速的商业现成解决方案可能在当时有效,但它无法带领我们走向未来,这正是我们从 Kubernetes 和 CNCF 所需要的。”
团队花时间研究如何选择工具,让开发人员的使用体验更轻松。O'Mahony 说:“我们的开发人员与我们运维团队提供的工具交互,运维团队在 Kubernetes 之上运行他们的所有工具。我们尽量不将直接访问 Kubernetes 作为唯一方式。事实上,理想情况下,我们的开发人员甚至不需要知道他们正在 Kubernetes 上运行。”
该平台集成了 Prometheus 监控,从一开始就于 2017 年悄然进入生产环境,为超过 300 万个连接产品提供服务。O'Mahony 说:“即使我们设计这个平台的扬声器和产品距离正式发布还有一段时间,我们市场上确实已经有一些连接扬声器了。我们基本上开始将这些扬声器的某些功能以及配套应用程序指向这个平台。”
今天,仅 Bose 的一个生产集群就拥有 1,800 个命名空间/独立服务和 340 个节点。随着约 100 名工程师入职,平台基础设施现在支持实现每年跨数十个微服务的 30,000 次非生产环境部署。2018 年,生产环境部署超过 1250 次。这比 Bose 之前的一些部署流程有了惊人的改进,之前的流程支持的部署和服务数量要少得多。
O'Mahony 说:“我们有一个全新服务,从概念、编码、部署到最终投入生产,包括加固、安全测试等等,整个过程不到两周半。” “团队里的每个人都倾向于自动化思维,精简流程,尽快完成工作。当你退一步看看这意味着什么,对于一家拥有 50 多年历史的音响公司来说拥有这样的文化,确实相当令人难以置信,我认为我们使用的工具以及我们构建的基础是其中一个重要部分。”
其中许多技术——例如 Fluentd、CoreDNS、Jaeger 和 OpenTracing——来自 CNCF Landscape,West 和 O'Mahony 在 Bose 的云原生之旅中一直以来都依赖它。West 说:“CNCF Landscape 快速解释了从存储到云提供商再到自动化等等所有不同领域正在发生什么。这是我们构建云基础设施的购物清单。我们可以从不同的‘货架’上选择。”
他补充说,“如果没有 Kubernetes 和其他 CNCF 项目作为拥有如此强大社区的免费开源软件,我们永远无法实现规模化,甚至无法按计划发布。”
采用云原生的另一个好处是:West 说,“我们甚至吸引了更多人才加入 Bose,因为我们积极参与 CNCF Landscape。”(是的,他们正在招聘。)“它只是让很多人能够做很多伟大的事情,真正将 Bose 带入了云的未来。”
在未来一年,团队希望致力于服务网格和无服务器,以及全球扩展。O'Mahony 说:“通过采用多区域部署来降低延迟将成为我们的一个重要重点。为了确保我们在日本、澳大利亚和其他地方的客户拥有良好的体验,我们希望在更靠近他们的地方部署接入点。这在 Bose 之前从未有过。”
但这不会阻止他们,因为团队致力于宏伟目标。West 说:“我们希望连接数十亿个产品!” “除了我们目前服务的消费电子部门之外,我们还有很多事情正在进行,支持 Bose 的更多业务部门。只有凭借云原生生态系统以及可用的工具和功能,我们才能提供如此出色的云平台,为所有正在努力实现一些非常出色体验的开发人员和部门提供支持。”
事实上,考虑到平台已经支持的规模,O'Mahony 说,“我认为,在这一点上,做除了 Kubernetes 之外的任何事情都将是愚蠢的。”