說說雲原生落地面臨的難點與坑點

雲原生概念在近兩年十分火爆,多個互聯網一線大廠爭相落地 K8s、微服務、Service Mesh等技術,涌現出一大批值得參考的優秀實踐案例。但在落地雲原生的道路上,其實暗藏着諸多陷阱與障礙。如何識別發現並規避這些難與坑?InfoQ 記者近日採訪了 Mobvista 技術 VP 兼首席架構師蔡超老師,他也是 QCon 全球軟件開發大會(北京站)2020“雲原生技術應用”專題的出品人。

雲計算平臺帶來了 IT 基礎設施巨大變革,而每一次 IT 基礎設施的變革都會促使開發人員去思考能夠充分發揮新平臺優勢的軟件設計和開發方法。“雲原生”就是一種可以讓我們充分利用雲計算模式的優點來構建和運行應用的方法。

自 2013 年雲原生的概念首次被提出以來,其範圍不斷擴大,內容不斷充實,雲原生的理念正影響着我們設計、實現、部署和運維應用的方式。

目前,微服務及容器化技術已在雲端成爲標配。Service Mesh 技術也日趨成熟,並在不同領域的大規模系統中得到了實踐,DevOps 的文化也伴隨着相關雲原生技術發展得以落地,SRE(Site Reliability Engineering)的實踐推動了 Kubernetes operator 應用的爆發。另一方面,開發人員在擁抱容器和雲原生的同事,也面臨着文化、安全性、複雜性和監控等方面的挑戰。根據康威定律,開發團隊的構成也正發生着與雲原生相應的變革,Amazon 的 two pizza team 組織結構已爲更多的組織所採用。可以說,雲原生不僅改變了技術,也改變了文化。

對傳統開發團隊來說,無論是構建新的雲原生系統,還是將遺留系統遷移到雲原生都是一件充滿挑戰的事。而在落地雲原生的道路上,還有着大大小小的陷阱,它們是什麼?如何規避?帶着對諸多疑問,我們採訪了 Mobvista 技術 VP 兼首席架構師蔡超,他是雲原生技術應用落地的親歷者,多屆 QCon 人氣演講嘉賓,也是 QCon 北京 2020“雲原生技術應用”專題的出品人。

InfoQ:您是怎麼接觸到雲原生的?在您看來,雲原生是什麼?

蔡超:在加入 Mobvista 之前,我在 Amazon 工作了七年。Amazon 可以說是雲計算平臺的先驅,同時也是很多雲原生相關理念的早期實踐者,例如:微服務,DevOps 等。實際上,這些理念在 Amazon 甚至誕生在雲計算之前。
簡單來說,”雲原生“是一種充分利用雲計算模式的優點來構建和運行應用的理念和方法。

InfoQ:雲原生有哪些關鍵技術?它們分別有什麼價值?

蔡超:其實,談到雲原生的關鍵技術,我們可以從雲原生技術的定義入手。2018 年 CNCF 對於雲原生技術的定義如下:“雲原生技術有利於各組織在公有云、私有云和混合雲等新型動態環境中,構建和運行可彈性擴展的應用。雲原生的代表技術包括容器、服務網格、微服務、不可變基礎設施和聲明式 API。這些技術能夠構建容錯性好、易於管理和便於觀察的鬆耦合系統。結合可靠的自動化手段,雲原生技術使工程師能夠輕鬆地對系統作出頻繁和可預測的重大變更。”

(英文原文:Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.

These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil.——from CNCF)

其中提及的主要技術包括了容器,服務網格,微服務,不可變基礎設施和聲明式 API。其實,一一說明每一項技術的價值需要巨大的篇幅,這裏就不展開了,我認爲這些雲原生相關技術——

  • 使得大規模系統(涉及大量開發人員,大量基礎設施)可以持續快速發佈。
  • 有效利用雲計算基礎設施的特點,讓服務可以按需快速伸縮。
  • 提高系統的彈性,從而獲得高的可用性。

同時,這些技術也使得 DevOps 等能夠更容易的落地。

InfoQ:對很多技術來說,概念普及並不難,難的是落地,那麼雲原生的落地面臨着哪些難點?

蔡超:目前,根據我個人的實踐,從大的方面看主要有以下三個難點:

遺留系統的遷移,目前大量的企業仍然採用傳統 IDC 做爲基礎設施,爲了充分發揮雲平臺的優勢系統往往需要進行重構,如:微服務化,整合雲端後臺服務。對大規模系統而言,遷移不可能一步完成,整個遷移過程會較爲漫長,在過程中系統是處在一種混合狀態,如:既有運行在容器中的微服務,也有在容器外運行的,甚至是運行在傳統非雲基礎設施上的服務。所以,這種混合狀態會對開發和維護提出更高的挑戰,新遷移系統和遺留系統的互通,分佈的遷移過程都要通過精心的設計。

數據遷移和安全存儲,我們需要考慮到數據如何遷入雲平臺,或仍需本地存儲,並且如何保證數據在公有云存儲和訪問的安全性,本地存儲時還需考慮數據傳輸的成本及傳輸的安全性。

開發人員的思想轉變,目前大多數的架構都是成長與雲時代之前,學習的經典架構模式知識也都來自於那個舊時代。對於開發人員,雲原生的技術及理念都需要在實踐中逐漸學習,傳統基礎設施及開發流程會成爲引入新技術及理念的很大阻力,在遷移過程中開發人員處於新舊並存混合環境中。

InfoQ:您認爲,企業爲什麼需要雲原生?對於沒有采用雲技術的企業,是否也有可以借鑑的思路?

蔡超:因爲雲計算平臺所具有的按需伸縮,服務化基礎設施等特性,有效的幫助企業實現快速創新,雲平臺已經日益成爲企業的基礎設施的首選。“雲原生”本質上來說就是利用雲計算平臺的優點來構建和運行應用的技術和方法。所以,對於越來越多的上雲的企業來說,要想充分發揮雲計算的優勢,就要採用雲原生相關的技術和理念,而不僅僅是將傳統應用直接複製到雲端。

實際上甚至對於那些還沒有采用雲技術的企業,雲原生都有着很強的指導意義,如:微服務,不變基礎設施等理念都不僅僅適用於雲平臺,對於構建和運行在傳統基礎設施的企業應用也有很大的益處。

InfoQ:您怎麼看待“雲原生架構”這個詞?

蔡超:沒有所謂的雲原生架構,雲原生在我看來是一系列技術及理念,讓開發人員更好的利用雲計算構建企業應用。微服務是雲原生技術 / 理念的一部分。

IT 基礎設施(Infrastructure)的變遷總是會推動架構演進,使得架構能夠充分發揮基礎設施的特點。例如,在 大型機時代,架構就是與之匹配的單體架構,隨着 PC 及局域網時代的到來,客戶服務器架構成爲主流,那麼 Internet 的發展則推動了 WEB Service 架構的發展,也帶動 SOA/EDI 等基於 WEB Service/SOAP 的架構思想。現今,伴隨互聯網應用的規模日益龐大及雲計算平臺的廣泛應用,能夠適應大規模系統快速演化及發揮雲計算優勢的微服務架構日益流行。

InfoQ:落地雲原生過程中,有沒有哪些坑需要警惕?

蔡超:最常見的“坑”就是:直接將本地應用遷移到雲端,不僅導致系統架構無法有效利用雲的“Scale on Demand”等特性,通常還會造成成本的浪費。

“雲原生”的實踐僅僅停留在系統構建層面,而組織結構和團隊文化並不適合雲原生。猶如康威定理指出的,組織機構要適合與系統架構,開發團隊的組織結構也要隨着系統架構的遷移進行重構,如:適合微服務架構及 DevOps 的跨功能小團隊。

InfoQ:雲原生是大勢所趨嗎?2020 年有哪些值得關注的內容?

蔡超:隨着雲計算平臺的日益廣泛應用,雲原生則是幫助人們更有效的利用雲平臺,所以,當雲計算成爲趨勢時,“雲原生”必然是大勢所趨。我認爲 2020 年,值得關注的技術包括:

  • 混合雲實踐,各大雲商都推出了混合雲(Hybrid Cloud)相關的支持方案(Microsoft Azure Stack, Amazon Outposts 等),以及 Kubernetes 可以在混合雲環境下應用。
  • Service Mesh 在大規模系統中的實際應用,ServiceMesh 方案已經成熟,尤其在性能方面有很大提升。
  • 邊緣計算(The Edge),邊緣設備也將成爲雲端應用的重要部分,包括 Kubernetes 也開始支持邊緣計算場景,典型的有 Ranch 的 K3s。
  • SRE以及隨之興起的 Kubernetes Operator Pattern 相關技術。
    - FaaS (Function as A Service)作爲 Serverless 架構的核心,各大雲商都沒有缺席,並且與之相關的 OpenSource 項目也日益涌現,如:OpenFaaS 等。

採訪嘉賓

蔡超,Mobvista 技術 VP 兼首席架構師。擁有超過 15 年的軟件開發經驗,其中 9 年任世界級 IT 公司軟件架構師 / 首席軟件架構師。2017 年加入 Mobvista,任公司技術副總裁及首席架構師,領導公司的數字移動營銷平臺的開發,該平臺完全建立於雲計算技術之上,每天處理來自全球不同 region 的超過 600 億次的請求。

在加入 Mobvista 之前,曾任亞馬遜全球直運平臺首席架構師,亞馬遜(中國)首席架構師,曾領導了亞馬遜的全球直運平臺的開發,並領導中國團隊通過 AI 及雲計算技術爲中國客戶打造更好的本地體驗;曾任 HP(中國)移動設備管理系統首席軟件架構師,該系統曾是全球最大的無線設備管理系統(OMA DM)(客戶包括中國移動,中國聯通,中國電信等);曾任北京天融信網絡安全技術公司,首席軟件架構師,領導開發的網絡安全管理系統(TopAnalyzer)至今仍被政府重要部門及軍隊廣爲採用,該系統也曾成功應用於 2008 北京奧運,2010 上海世博等重要事件的網絡安全防護。

由蔡超老師擔任出品人的“雲原生技術應用”專題主要聚焦於雲原生的實踐,實踐者們將分享他們在雲原生演化過程中收穫的經驗與教訓, 幫助更多的團隊少走彎路,成功實踐雲原生,點擊瞭解詳情。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章