挑戰
幾年前,該公司決定將其資料中心遷出。其在公共雲上的首批部署是規模較小、不那麼關鍵的應用程式,這些應用程式透過虛擬機器進行管理。《紐約時報》工程執行總監 Deep Kapadia 表示:“我們開始構建越來越多的工具,到某個時候我們意識到,將 Amazon 視為另一個數據中心是不利的。” Kapadia 受命領導一個交付工程團隊,該團隊將“為雲提供商提供給我們的抽象層進行設計”。
解決方案
該團隊決定使用 Google Cloud Platform 及其 Kubernetes 即服務產品 GKE。
影響
交付速度提高了。一些基於傳統虛擬機器的部署需要 45 分鐘;而使用 Kubernetes,時間“只需幾秒鐘到幾分鐘”,工程經理 Brian Balser 說。Li 補充道:“以前按周部署或需要與基礎設施團隊協調部署時間的團隊,現在可以獨立部署更新,並且在必要時可以每天部署。” 採用雲原生計算基金會技術,可以實現工程人員之間更統一的部署方法,併為公司帶來可移植性。
《紐約時報》成立於 1851 年,被稱為報業記錄,是數字領域的先驅:其首個網站於 1996 年推出,甚至在谷歌誕生之前。幾年前,該公司決定遷出其私人資料中心,其中包括位於曼哈頓昂貴地段的一個數據中心。最近,它透過轉向雲原生又邁向了未來一步。
最初,基礎設施團隊“管理 Amazon 雲中的虛擬機器,他們將更關鍵的應用程式部署在我們的資料中心,將不那麼關鍵的應用程式部署在 AWS 上作為實驗,”《紐約時報》工程執行總監 Deep Kapadia 說。“我們開始構建越來越多的工具,到某個時候我們意識到,將 Amazon 視為另一個數據中心是不利的。”
為了充分利用雲計算,Kapadia 受命領導一個全新的交付工程團隊,該團隊將“為雲提供商提供給我們的抽象層進行設計”。2016 年年中,他們開始關注 Google Cloud Platform 及其 Kubernetes 即服務產品 GKE。
當時,團隊成員、站點可靠性工程師 Tony Li 說:“我們有一些內部工具,試圖做 Kubernetes 為容器所做的事情,但針對的是虛擬機器。我們問自己,為什麼我們要自己構建和維護這些工具呢?”
2017 年初,第一個生產應用程式——nytimes.com 移動主頁——開始在 Kubernetes 上執行,僅處理 1% 的流量。如今,nytimes.com 網站幾乎 100% 的面向終端使用者的應用程式都在 GCP 上執行,其中大部分在 Kubernetes 上。
團隊發現交付速度立即受到了影響。工程經理 Brian Balser 說:“部署 Docker 映象比啟動虛擬機器快得多。” 一些基於傳統虛擬機器的部署需要 45 分鐘;而使用 Kubernetes,時間“只需幾秒鐘到幾分鐘”。
該計劃是儘可能多地讓應用程式,而不僅僅是網站,在 Kubernetes 上執行,並在此基礎上,轉向無伺服器部署。例如,《紐約時報》的填字遊戲應用程式是基於 Google App Engine 構建的,該平臺一直是該公司進行無伺服器實驗的主要平臺。首席技術官 Nick Rockwell 最近告訴《CTO Advisor》:“最困難的部分是讓工程師們克服他們不得不做的事情很少的障礙。” “我們的經驗非常非常好。我們投入了大量工作將應用程式部署到容器服務上,我非常期待嘗試將這些應用程式部署到 App Engine Flex 和 AWS Fargate 上,看看感覺如何,因為那是一個很好的遷移路徑。”
當然,轉向雲原生也有一些例外。Kapadia 說:“我們也有印刷出版業務。” “其中很多肯定不會走雲原生路線,因為他們使用的是供應商軟體,甚至還有列印實體報紙的特殊機器。但即使是這些團隊,如果可能的話,也在考慮 App Engine 和 Kubernetes 等技術。”
Kapadia 承認,一些工程師的學習曲線很陡峭,但“我認為一旦你克服了最初的障礙,事情就會容易得多,實際上也快得多。”
在《紐約時報》,他們做到了。隨著團隊開始相互分享他們自己的最佳實踐,Kapadia 說:“我們不再是發現某些事情的瓶頸了。” “大多數基礎設施和系統都是由一個集中職能部門管理的。我們已經將其打破,部分原因是 Google 和 Amazon 提供了允許我們這樣做的工具。我們為團隊提供對其 Google Cloud Platform 專案的完全所有權,併為他們提供一套合理的預設設定或標準。我們讓他們知道,‘如果這對你來說行得通,那就太棒了!如果不行,請來找我們,我們會想辦法讓你成功。’”
因此,Kapadia 說:“這確實讓團隊能夠以比過去快得多的速度前進。” Li 補充道:“使用 GKE 意味著每個團隊都可以獲得自己的計算叢集,減少了他們需要關注的單個例項數量,因為開發人員可以將叢集作為一個整體來處理。由於請求資源和連線的基於票證的工作流被取消了,開發人員只需呼叫 API 即可獲得他們想要的東西。以前按周部署或需要與基礎設施團隊協調部署時間的團隊,現在可以獨立部署更新,並且在必要時可以每天部署。”
採用 Kubernetes 的另一個好處是:允許在工程人員之間採用更統一的部署方法。Balser 說:“以前,許多團隊都在構建自己的部署工具。” 有了 Kubernetes,以及《紐約時報》使用的其他 CNCF 專案,包括用於收集所有 AWS 伺服器日誌的 Fluentd、用於其 出版管道 的 gRPC、Prometheus 和 Envoy,“我們可以從這些技術的進步中受益,而不是試圖趕上。”
這些開源技術為公司帶來了更大的可移植性。Kapadia 說:“CNCF 使我們能夠遵循行業標準。” “它讓我們思考是否要脫離當前的雲服務提供商。我們的大多數應用程式都連線到 Fluentd。如果我們將日誌提供商從提供商 A 切換到提供商 B,我們可以做到。我們今天在 GCP 中執行 Kubernetes,但如果我們想在 Amazon 或 Azure 中執行它,我們也可以考慮。”
Li 稱雲原生計算基金會的專案是“我們都可以仰望和追隨的北極星”。在這顆星的引導下,團隊正在展望未來一年,將大約 40 個產品工程團隊中剩餘的一半團隊納入其中,以從技術中獲取更多價值。Kapadia 說:“目前,每個團隊都執行一個小型的 Kubernetes 叢集,但如果我們都能生活在一個更大的生態系統中,那會很好。” “然後我們可以利用服務網格代理等工具的力量,這些工具可以在微服務之間進行大量的度量,或者進行服務到服務的編排。這些是我們在未來想要嘗試的新事物。”