挑戰
Woorank 成立於 2011 年,早期便採用微服務和容器化技術,其核心產品是一個協助數位行銷人員提升網站於網際網路能見度的工具,由 12 位技術團隊成員開發和維護的 50 個應用程式組成。基礎架構在 Mesos 上平穩運行了兩年,但「我們仍然需要自行部署許多函式庫,並且導入應用程式,因此對於我們這樣的小團隊來說,要維持這些東西的運作並進行更新非常麻煩。」技術長暨共同創辦人 Nils De Moor 說道。因此,他開始尋找具有更多自動化和內建自我修復功能的新解決方案,以更符合公司的人力資源狀況。
解決方案
De Moor 決定轉換到在 AWS 上運行的 Kubernetes,「這讓我們只需定義應用程式、它們需要如何運行、需要具備多少延展性,並且讓開發人員不必再費心思考這些問題。」他說。「當系統發生故障和錯誤時,它會嘗試自我修復,這對我們來說真的是使用 Kubernetes 的主要原因。」該公司現在也使用 Fluentd、Prometheus 和 OpenTracing。
影響
該公司最關心的問題立刻獲得解決:維護 Kubernetes 僅需一名員工,而且並非全職工作。基礎架構更新過去需要兩個工作天才能完成;現在只需「被動地追蹤流程幾個小時」即可,De Moor 說道。導入新工具 — 過去需要數週的規劃、安裝和導入 — 現在僅需幾天。「我們在成本方面已經相當彈性,並且能夠應對流量高峰和整體較高的負載,」De Moor 補充說,「但藉由 Kubernetes 和我們使用的其他 CNCF 工具,我們已經實現約 30% 的成本節省。」此外,每日部署率也幾乎翻倍。
「我們協助他們獲取大量數據,然後以有意義的方式呈現給他們,以便他們可以使用這些數據,」技術長暨共同創辦人 Nils De Moor 說道。在作為新創公司的七年中,該公司遵循熟悉的技術路徑來建構該產品:從單體式應用程式開始,將其分解為微服務,然後採用容器化。「我們的現代基礎架構就是從那裡開始的,」De Moor 說道。
隨著新功能不斷添加到產品中,它已發展成由底層的 50 個應用程式組成。儘管 Docker 讓部署變得更容易,而且團隊自 2015 年以來一直使用 Mesos 作為 AWS 上的協作框架,但 De Moor 意識到管理基礎架構的額外負擔仍然太重,尤其是對於只有 12 位技術人員的團隊而言。
「痛點在於我們仍然需要自行部署許多函式庫,並且導入應用程式,因此對於我們這樣的小團隊來說,要維持這些東西的運作並進行更新非常麻煩。」De Moor 說。「當部署過程中出現問題時,必須有人手動介入並找出問題所在。並非技術或 Mesos 本身有任何問題;只是它不太適合我們這種小型公司的模式,我們沒有人力資源來確保一切正常運作並且可以更新。」
在 Woorank 努力解決這些問題的同時,Kubernetes 正在嶄露頭角成為一項技術。De Moor 知道他想要一個更自動化和自我修復的平台,當他開始試用 Kubernetes 時,他發現它符合所有這些條件。「Kubernetes 讓我們只需定義應用程式、它們需要如何運行、需要具備多少延展性,並且讓開發人員不必再費心思考這些問題。」他說。「當系統發生故障和錯誤時,它會嘗試自我修復,這對我們來說真的是使用 Kubernetes 的主要原因。它讓我們能夠建立某些測試框架,以便在出現問題時收到警報,而不是必須查看一切是否正常。它讓大家的生活變得輕鬆許多。這是一個相當大的思維模式轉變。」
一旦一個小型的 Kubernetes 叢集啟動並運行,團隊便開始一次遷移幾個應用程式,在幾個月的時間裡逐步增加負載。到 2017 年初,Woorank 已 100% 部署在 Kubernetes 上。
該公司最關心的問題立刻獲得解決:維護 Kubernetes 的責任僅由一名員工負責,而且並非他的全職工作。更新舊基礎架構「一直以來都很麻煩」,De Moor 說道:過去需要兩個工作天,「而且每次執行時總是讓人有點害怕。」使用 Kubernetes,現在只需「被動地追蹤流程幾個小時」即可。
從程式碼到伺服器,各個層面的透明度也是轉移到 Kubernetes 的副產品。「整個團隊更容易更好地了解基礎架構、它的運作方式、它的外觀以及正在發生的事情,」De Moor 說。「它不再是那種正在運行的東西,除了那一個人之外,沒有人真正知道它是如何運作的。現在這真的是團隊的共同努力,每個人都知道,『好吧,當出現問題時,可能是在這個區域,或者我們需要檢查這個。』」
為此,Woorank 已開始導入其他有助於提升能見度的雲原生工具,例如用於日誌記錄的 Fluentd、用於監控的 Prometheus 以及用於分散式追蹤的 OpenTracing。導入這些新工具 — 過去需要數週的規劃、安裝和導入 — 現在僅需幾天。「藉由 CNCF 保護傘下的所有工具和專案,我們比過去更容易測試和使用技術,」De Moor 說。「對於 Prometheus,我們很早就開始使用它,但無法使其穩定運行。幾個月前,這個問題再次出現,因此我們在兩天內完成了設定,現在每個人都在使用它。」
部署也受到了影響:部署率增加了一倍以上,De Moor 將部分原因歸功於新流程的透明度。「使用 Kubernetes,您可以知道這三個容器由於這個原因而沒有啟動,」他說。此外,「現在我們將部署訊息導入到 Slack 中。如果您看到每天都有部署在進行,它確實會以某種間接的方式促使您認為,好吧,我需要成為這列火車的一部分,所以我還需要進行部署。」
然而,也許最大的影響在於營收。「我們在成本方面已經相當彈性,並且能夠應對流量高峰和整體較高的負載,但藉由 Kubernetes 和我們使用的其他 CNCF 工具,我們已經實現約 30% 的成本節省。」De Moor 說道。
而且還有更大的節省空間。目前,Woorank 的大部分基礎架構都在 AWS 隨需執行個體上運行;公司支付固定價格,並為其計劃所需的資源量進行一些預留。De Moor 計劃針對某些資源密集型工作負載(例如網路爬取)進行更多競價型執行個體的實驗:「我們可以根據特定時間軸規劃這些事情,嘗試使我們的資源使用量與之相符,然後導入競價型執行個體,這有望進一步降低成本。」
轉移到 Kubernetes 對 Woorank 來說非常有利,以至於該公司正在加倍投入雲原生技術和社群。「對我們來說,CNCF 作為一切的保護傘絕對非常重要,」De Moor 說。「我們一直以來都使用開源函式庫、工具和技術。這對我們來說非常有效,但有時情況可能會失控、維護者退出,並且專案可能會陷入混亂。對我們來說,重要的是知道無論哪個專案被納入這個保護傘之下,都會受到非常認真的對待。我們回饋的方式也是加入這個社群。對我們來說,這是表達我們對這個框架中所發生一切的感謝之意的方式。」