公司 華為 地點 中國深圳 行業 電信裝置

挑戰

華為是一家跨國公司,是全球最大的電信裝置製造商,擁有超過18萬名員工。為了支援其在全球的快速業務發展,華為為其內部IT部門設立了八個資料中心,這些資料中心執行著800多個應用程式,在10萬多臺虛擬機器上為這18萬用戶提供服務。隨著新應用程式的快速增長,基於虛擬機器的應用程式的管理和部署成本及效率都成為業務敏捷性的關鍵挑戰。“這是一個非常分散的系統,所以我們發現以更一致的方式管理所有任務始終是一個挑戰,”該公司首席軟體架構師兼開源社群總監侯佩鑫說。“我們希望轉向更敏捷和規範的實踐。”

解決方案

在決定採用容器技術後,華為開始將其內部IT部門的應用程式遷移到Kubernetes上執行。到目前為止,大約30%的應用程式已經轉向雲原生。

影響

“到2016年底,華為內部IT部門使用基於Kubernetes的平臺即服務 (PaaS) 解決方案管理著4000多個節點和數萬個容器,”侯佩鑫說。“全球部署週期從一週縮短到幾分鐘,應用程式交付效率提高了10倍。”他說,對於底線而言,“我們還看到運營費用顯著削減,在某些情況下達到20-30%,我們認為這對我們的業務非常有幫助。”鑑於華為內部取得的成果以及外部看到的需求,該公司還將這些技術融入到其提供給客戶的PaaS解決方案FusionStage™中。

華為的Kubernetes之旅始於一位開發者。兩年多前,這位受僱於這家網路和電信巨頭的工程師對Kubernetes(一種用於跨主機叢集管理應用程式容器的技術)產生了興趣,並開始為開源社群做出貢獻。隨著技術的發展和社群的壯大,他不斷向他的經理們介紹這項技術。

碰巧的是,與此同時,華為正在為支援所有業務流程的內部企業IT部門尋找更好的編排系統。“我們在全球擁有超過18萬名員工,內部流程複雜,所以這個部門每週可能都需要開發一些新應用程式,”華為首席軟體架構師兼開源社群總監侯佩鑫說。“我們的IT部門經常需要啟動數萬個容器,任務在全球數千個節點上執行。這是一個非常分散的系統,所以我們發現以更一致的方式管理所有任務始終是一個挑戰。”

過去,華為使用虛擬機器來封裝應用程式,但侯佩鑫說,“每次我們啟動一個虛擬機器,無論是新服務還是因為節點異常功能而關閉的服務,都需要很長時間。”華為轉向了容器化,所以正是嘗試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的貢獻者和倡導者兩年後,華為現在是社群的主要貢獻者之一。“我們瞭解到,你為社群貢獻越多,”他說,“你得到的回報就越多。”