挑戰
身為高品質音響設備的家喻戶曉品牌,Bose 提供連網產品已超過五年。隨著需求成長,基礎架構必須隨之改變以支援需求。「我們需要為開發人員提供一種機制,以便快速地將服務從原型設計到部署一路推進到生產環境,」首席雲端工程師 Josh West 說道。2016 年,公司決定從頭開始建構平台。主要目標是:「比不同的產品團隊領先一到兩個步驟,這樣我們才不會總是手忙腳亂地追趕他們的規模,」雲端架構經理 Dylan O'Mahony 說道。
解決方案
團隊從一開始就知道他們想要微服務架構。在評估和原型設計了幾種協調解決方案後,團隊決定採用 Kubernetes,用於在 AWS 上運行的可擴展 IoT 平台即服務。該平台還整合了 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 決定採用多雲策略。
「Bose 是一家著眼於長遠發展的公司,」West 說道。「採用快速的現成商業解決方案可能在當時是可行的,但它無法帶領我們向前發展,而這正是我們從 Kubernetes 和 CNCF 獲得的需求。」
團隊花時間研究選擇工具,以使開發人員的體驗更輕鬆。「我們的開發人員與我們的維運團隊提供的工具互動,而維運團隊的所有工具都運行在 Kubernetes 之上,」O'Mahony 說道。「我們盡量不讓直接存取 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 的雲原生歷程中一直依賴它。「CNCF Landscape 快速解釋了從儲存到雲端供應商到自動化等等所有不同領域正在發生的事情,」West 說道。「這是我們建構雲端基礎架構的購物車。我們可以從不同的通道中選擇。」
他補充說,「如果沒有 Kubernetes 和其他 CNCF 專案作為免費的開源軟體,以及如此強大的社群,我們永遠無法達到這樣的規模,甚至無法按時啟動。」
採用雲原生的另一個好處是:「我們甚至吸引了更多人才加入 Bose,因為我們如此積極參與 CNCF Landscape,」West 說道。(是的,他們正在招聘。)「它讓這麼多人能夠完成這麼多偉大的事情,並真正將 Bose 帶入了雲端的未來。」
在未來一年,團隊希望致力於服務網格和無伺服器技術,以及全球擴張。「透過多區域來降低延遲將是我們的重點,」O'Mahony 說道。「為了確保我們在日本、澳洲和世界各地的客戶都能獲得良好的體驗,我們希望在更靠近他們的地方設立據點。這在 Bose 以前從未做過。」
這不會阻止他們,因為團隊的目標始終遠大。「我們希望達到數十億個連網產品!」West 說道。「除了我們目前正在做的消費性電子產品部門之外,我們還有很多工作要做,以支援 Bose 的更多業務部門。正因為有了雲原生領域以及可用的工具和功能,我們才能為所有試圖實現一些非常棒的體驗的開發人員和部門提供如此出色的雲端平台。」
事實上,鑑於該平台已經支援的規模,O'Mahony 說,「我認為在現階段做 Kubernetes 以外的任何事情都是愚蠢的。」