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