公司 華為 地點 中國深圳 產業 電信設備

挑戰

華為是全球最大的跨國電信設備製造商,擁有超過 18 萬名員工。為了支援其全球快速業務發展,華為為其內部資訊科技部門設立了八個資料中心,這些資料中心運行了 800 多個應用程式在 10 萬多個 VM 中,為這 18 萬名使用者提供服務。隨著新應用程式的快速增加,以 VM 為基礎的應用程式的管理和部署成本及效率,都成為業務敏捷性的重大挑戰。「這是一個非常分散的系統,因此我們發現,以更一致的方式管理所有任務始終是一項挑戰,」公司首席軟體架構師兼開源社群總監侯培新表示。「我們希望轉向更敏捷和更像樣的做法。」

解決方案

在決定使用容器技術後,華為開始將內部資訊科技部門的應用程式遷移到 Kubernetes 上運行。到目前為止,約有 30% 的應用程式已轉移到雲原生環境。

影響

「到 2016 年底,華為的內部資訊科技部門使用基於 Kubernetes 的平台即服務 (PaaS) 解決方案,管理了超過 4,000 個節點和數萬個容器,」侯先生說。「全球部署週期從一週縮短到幾分鐘,應用程式交付效率提高了 10 倍。」對於最終結果,他說:「我們也看到營運費用支出大幅削減,在某些情況下削減了 20-30%,我們認為這對我們的業務非常有幫助。」鑑於華為內部的成果,以及外部看到的需求,公司也將這些技術建置到 FusionStage™ 中,這是公司向客戶提供的 PaaS 解決方案。

華為的 Kubernetes 之旅始於一位開發人員。兩年多前,這位網路和電信巨頭聘僱的工程師之一開始對 Kubernetes 產生興趣,這是一種跨主機叢集管理應用程式容器的技術,並開始為其開源社群做出貢獻。隨著技術的發展和社群的成長,他不斷地向他的主管們介紹它。

而命運就是如此,與此同時,華為正在為其內部企業資訊科技部門尋找更好的協調系統,該部門支援每個業務流程。「我們在全球擁有超過 18 萬名員工,內部程序複雜,因此這個部門可能每週都需要開發一些新的應用程式,」華為首席軟體架構師兼開源社群總監侯培新表示。「我們的資訊科技部門經常需要啟動數萬個容器,任務遍布全球數千個節點。這是一個非常分散的系統,因此我們發現,以更一致的方式管理所有任務始終是一項挑戰。」

過去,華為曾使用虛擬機器來封裝應用程式,但「每次我們啟動 VM 時,」侯先生說,「無論是因為它是新服務,還是因為它是由於某些異常節點功能而關閉的服務,都需要很長時間。」華為轉向容器化,因此嘗試 Kubernetes 的時機恰到好處。侯先生說,採納那位工程師的建議花了一年時間——這個過程「不是一蹴可幾的」,但一旦投入使用,他說,「Kubernetes 基本上解決了我們的大部分問題。以前,部署時間大約需要一週,現在只需要幾分鐘。開發人員很高興。那個部門也很高興。」

侯先生看到了公司使用這項技術帶來的巨大好處:「Kubernetes 為基於雲端的應用程式帶來了敏捷性、橫向擴展能力和 DevOps 實踐,」他說。「它為我們提供了自訂排程架構的能力,這使得容器任務之間的親和性成為可能,從而提高了效率。它支援多種容器格式。它廣泛支援各種容器網路解決方案和容器儲存。」

而且,最重要的是,它對底線產生了影響。侯先生說:「我們也看到營運費用支出在某些情況下削減了 20-30%,這對我們的業務非常有幫助。」

對這些初步結果感到滿意,並看到客戶對雲原生技術的需求,華為加倍投入 Kubernetes。2016 年春季,公司不僅成為使用者,也成為供應商。

「我們將 Kubernetes 技術建置到我們的解決方案中,」侯先生在談到華為的 FusionStage™ PaaS 產品時說。「我們的客戶,從大型電信營運商到銀行,都喜歡雲原生的概念。他們喜歡 Kubernetes 技術。但他們需要花費大量時間來分解他們的應用程式,將其轉變為微服務架構,而作為解決方案供應商,我們幫助他們。我們已經開始與一些中國銀行合作,並且我們看到我們的客戶,如 中國移動德國電信,對此表現出濃厚的興趣。」

「如果你只是一個使用者,你就只是一個使用者,」侯先生補充道。「但如果你是供應商,為了說服你的客戶,你應該自己使用它。幸運的是,由於華為有很多員工,我們可以展示我們使用這項技術構建的雲端規模。我們提供客戶智慧。」雖然華為有自己的私有雲,但其許多客戶使用華為的解決方案運行跨雲應用程式。大多數公共雲供應商現在都支援 Kubernetes,這是一個很大的賣點。「這使得跨雲遷移比其他解決方案容易得多,」侯先生說。

在華為內部,一旦他的團隊完成內部業務程序部門向 Kubernetes 的轉型,侯先生正尋求說服更多部門轉向雲原生開發週期和實踐。「我們有很多軟體開發人員,因此我們將為他們提供我們的平台即服務解決方案,我們自己的產品,」他說。「我們希望看到他們的迭代週期大幅縮短。」

在監督了華為最初向 Kubernetes 的遷移之後,侯先生對其他正在考慮這項技術的公司提出了建議:「當你開始設計應用程式的架構時,從一開始就考慮雲原生、考慮微服務架構,」他說。「我認為你會從中受益。」

但如果你已經有舊版應用程式,「首先從那些應用程式中一些對微服務友好的部分開始,那些相對容易分解成更簡單的片段並且相對輕量的部分,」侯先生說。「不要從第一天就想著在多少天內我想遷移整個架構,或者將所有內容遷移到微服務。不要將其作為一種目標。你應該以循序漸進的方式進行。而且我想說,對於舊版應用程式,並非每個部分都適合微服務架構。無需強迫它。」

畢竟,儘管侯先生對華為的 Kubernetes 非常熱衷,但他估計「在未來 10 年內,可能有 80% 的工作負載可以分散式運行,可以在雲原生環境中運行。還有 20% 的工作負載不能,但這沒關係。如果我們可以使 80% 的工作負載真正實現雲原生化,從而獲得敏捷性,那麼最終的世界將會美好得多。」

在不久的將來,侯先生期待著圍繞 Kubernetes 開發的新功能,尤其是華為正在貢獻的功能。華為工程師致力於聯邦功能(將多個 Kubernetes 叢集放在單一框架中進行無縫管理)、排程、容器網路和儲存,以及一項剛發布的名為 Container Ops 的技術,這是一個 DevOps 管道引擎。「這將把每個 DevOps 工作放入一個容器中,」他解釋道。「然後,這個容器機制使用 Kubernetes 運行,但也用於測試 Kubernetes。透過這種機制,我們可以比以前更輕鬆地建立、共享和管理容器化的 DevOps 工作。」

儘管如此,侯先生認為這項技術只發揮了一半的潛力。首先,他希望擴大它可以協調的規模,這對於像華為這樣超大型的公司以及它的一些客戶來說非常重要。

侯先生自豪地指出,在第一位華為工程師成為 Kubernetes 的貢獻者和推廣者兩年後,華為現在已成為社群的主要貢獻者。「我們了解到,你對社群的貢獻越多,」他說,「你得到的回報就越多。」