大勢已來:阿里雲梭哈雲原生

老王 發表於2019-10-09

雲原生是什麼?

技術圈總是在不停地蹦各種新名詞。也不知道從什麼時候開始,人們慢慢不怎麼提“雲端計算”這個名詞了,而是頻繁提到一個新名詞“雲原生”,好像不這麼提就不足以體現雲端計算原住民的身份。不過,要真的問什麼是“雲原生”,其實很多人都說不太清楚。隨著雲原生生態如火如荼的發展,甚至連 CNCF 官方都覺得有必要專門做個定義出來:

前一段時間,我在雲棲大會上見到了阿里雲的李響,就有人問他,“怎麼理解‘雲原生’?”作為 CNCF 的技術監督委員會成員的李響,以他的角度對此作了闡釋:

“我覺得雲原生本身實際上就是比較泛的概念,它最終的目標就是利用雲上的資源、雲上的服務來重構軟體開發以及執行時的生命週期。簡而言之就是怎麼更好利用雲。……隨著雲的發展,雲原生本身也會有一些變化,大家接受雲原生的理念和實現雲原生的情況也會有變化。……我覺得不用太把雲原生本身在一個框框裡圈定,它更多還是一個核心的概念——更好地利用雲釋放雲的紅利,產生相關的技術讓大家去實踐。”

在我看來,雖然現在雲原生的概念的內涵和外延都在不斷的變化當中,但是不可否認的是,雲端計算生態已經從最初的巨石應用、剛性的分散式計算逐漸演變到原生地基於雲端計算環境進行設計、開發、部署、運維和彈性伸縮。可以說,雲原生重新定義了雲端計算。

藉助於雲原生技術,一個計算系統可以很便捷的從一個環境中遷移至另外一個環境當中,而這在之前幾年,幾乎還是不可想象的。就這個場景,阿里雲舉了一個例子:比如像三維家,他們在上海雲棲大會上宣佈了全站上雲的訊息,因為他們已經應用了雲原生的方式,僅花了三天把全部業務遷到阿里雲上。而在遷移之後,三維家現在可以利用雲原生的方式可以充分發揮雲端計算的彈性,三分鐘之內就可以建立 100 個神龍節點去應對突發的業務需求,極大提升企業 IT 的靈活性,並且降低了 IT 成本。三維家表示,“阿里雲的容器生態系統打造得非常完善,從監控、日誌、服務暴露、應用拓撲、伸縮擴容方面能夠做的更加靈活;基礎設施的建設和維護穩定性交給阿里雲,目前沒有出現過問題。”

雲原生進化

今年我參加雲棲大會,有一個明顯的感受就是,阿里雲在不斷的大聲談論雲原生。事實上阿里雲早已是雲原生計算基金會的成員(現在是白金成員),也在這個領域耕耘良久,但是今年,無論是多到你參加不過來的各種主題演講,還是各種產品和服務的訊息,都在不斷的講,雲原生、雲原生……

在過去大家更多是把網際網路和移動網際網路的應用,大部分是無狀態應用部署在容器平臺之上,今年越來越多的企業開始把有狀態的應用、交易類的應用以原生化的方式進行交付,進行自動化的運維。

這次雲棲大會上阿里雲還發布了 ACK 2.0。ACK 是阿里雲容器服務 Kubernetes 版,它提供了高效能可伸縮的容器應用管理能力,支援企業級 Kubernetes 容器化應用的全生命週期管理,簡化了叢集的搭建和擴容等工作,整合了阿里雲虛擬化、儲存、網路和安全能力,以打造雲端最佳的 Kubernetes 容器化應用執行環境。

關於阿里雲容器服務,阿里雲的易立說,從 2015 年底公測、2016 年中正式上線到現在的 4 年時間發展非常快,現在已經覆蓋了阿里雲全球 20 個地域,支撐了國內外數千家客戶的生態系統。同時容器產品在持續保持增長,過去 3 年都能保持 400% 以上的增長速度,現在一個月下載次數超過 3 億次。今年在 Forrester 全球公共雲容器平臺的評測裡面,阿里雲是國內排名第一,在 Gartner 報告也唯一入選公共雲容器平臺競爭格局。

阿里雲容器服務優化整合了阿里雲整體的計算、儲存、網路、安全等核心能力。

比如說計算,不但能夠支援強大虛擬機器,像神龍這樣的裸金屬服務,還有異構計算的 CPU、GPU,未來也會包括雲棲大會當天釋出的含光晶片,通過容器的高效排程能夠讓 GPU 的利用率提升了 5 倍,而且容器產品能充分把計算資源彈性發揮出來,可以實現分鐘級千節點的彈性伸縮,這對客戶來說是非常重要的。

而在容器網路方面,它和阿里雲的虛擬化網路進行了優化整合,可以實現原生網路一樣的效能,與社群的 VXLAN 實現相比提升了 20% 效能。

在儲存方面支援阿里雲所有的儲存產品,包括塊儲存、網路儲存、物件儲存等。針對容器場景進行了很多創新,比如說容器高密度部署時容器之間會對 I/O 進行爭搶,通過跟作業系統團隊進行深入合作,實現了更好的儲存 I/O 隔離。另外,還實現了透明、高效的儲存快取,可以低成本支援像高效能運算和AI場景下大資料吞吐量的需求。

本次雲棲大會上阿里雲釋出的 ACK 2.0 面向雲原生進化,最重要的是它為整個企業上雲奠定了一個新的基石。首先是容器服務全球化的部署,利用在阿里巴巴集團的大規模生產實踐沉澱,建立了這樣的基礎設施。其次,雲邊端一體化可以實現邊緣節點極大降低訪問的延遲降低 75%。第三,可以讓客戶把他的私有云和雲端利用 Kubernetes 進行統一管理,應用釋出效率可以提升三倍,另外,還提供了全鏈路的安全架構,對安全風險進行監控。

對於雲原生的發展,作為阿里雲內部基礎設施負責人的李響,在幫助阿里經濟體以更為雲原生的方式上雲,在推動阿里經濟體採用 Kubernetes、Service Mesh、Serverless 這些技術。他談到:

“阿里巴巴執行著最大的 Kubernetes 叢集,我們對 Kubernetes 上游擴充性、功能性是最大的貢獻者之一,我們今年嘗試落地Service Mesh,之前大家對 Service Mesh 的疑問是,它能不能應對一個複雜的場景,尤其和傳統的微服務體系對接的場景。在阿里巴巴內部要驗證這件事情,我們要告訴大家可以做到,而且我們要告訴大家怎麼做到,後續會提供解決方案讓大家去做這件事情。

第二,大家會思考 Service Mesh 的規模性是不是足夠,阿里巴巴其實有巨大規模性的挑戰,我們也會解決 Service Mesh 規模性的問題。我們認為阿里巴巴能夠使用 Service Mesh,我想世界上 99% 的公司都可以使用 Service Mesh, 而不會遇到它的規模性問題。

第三,Service Mesh 是不是會影響核心鏈路上的效能問題,會不會影響在核心時刻的效能。我們也會在雙 11 這種洪峰流量,對流量要求極高的情況下去驗證 Service Mesh,使用 Service Mesh,去打磨 Service Mesh,所有打磨的東西會反饋到上流,讓使用者、開發者享受到這種紅利。

第四,阿里巴巴通過這些事情培養出一批靠譜的工程師,我們有非常強的兜底能力,當使用者遇到任何問題,阿里巴巴都能幫你解決問題,阿里巴巴真的是運營這套體系的,有這個生產實踐的經驗。

阿里巴巴真正把‘雲原生’新的概念,在我們認為正確的方向進行落地、進行打磨,最後交付給客戶。所有這些東西,當我們說阿里巴巴雲上有這樣的產品,一定是可靠的,一定是穩定的。”

容器安全是重點

當然我們也看到企業客戶在使用雲原生技術過程中面對幾個挑戰,第一個挑戰就是安全。

安全是企業上雲的首要關注。雲原生加劇了這個挑戰,雲原生平臺高密度、高動態部署使得遭受攻擊可能性增加,而且一旦遭受攻擊,使用者不知道是誰受到攻擊,也沒有辦法實時應對。

安全是體系性的東西,永遠在最弱的一環去攻破整個企業的安全體系。阿里雲容器服務實現了非常全面的端到端的雲原生安全的架構,包括基礎設施的安全,跟阿里雲的雲安全基礎設施緊密基礎,利用 RAM 進行認證、鑑權和審計,支援儲存的 BYOK 加密等,提供了一個安全的雲基礎設施。

同時,在應用的生命週期裡面用了安全的映象檢測,上線之前要進行掃描,上線之後會進行實時的安全檢測。還有執行時的安全,因為安全的風險無處不在,一旦出現了安全問題必須第一時間對它進行監控、報警。

對於企業來講,大量採用容器之後面臨的挑戰之一就是安全隔離。比如說一臺機器上要混布多種型別的應用,但是有些像金融交易的應用,安全級別敏感性會很高,不希望受到其他應用的攻擊和干擾。另外企業除了自己的應用還要部署第三方應用,這個過程中對一些不可信的應用要進行安全的隔離,阿里雲引入了安全沙箱一系列的技術。傳統的容器 RunC 用是共享核心的機制,很高效,但是安全隔離做得不好,現在可以利用安全沙箱可以進行安全隔離。

在這方面阿里雲有一些差異化的優勢:首先就是對它進行大量的效能優化,比如說它的網路跟原生的程式沒有任何區別,網路效能非常好。整體能夠達到 90% 的原生效能,對使用者來講可以獲得非常好的安全性,同時對效能損耗是可以接受的。另外,能夠讓使用者自主選擇是 RunC 還是安全沙箱,兩種容器執行時使用者體驗是完全一致的,使用者可以根據自己對業務需求來選擇合適的容器應用技術。

在安全容器領域有幾個重要的專案,如 Google 的 gVisor,以及已經屬於螞蟻金服旗下的 Kata 容器專案等,不過和易立的溝通當中,我瞭解到阿里雲容器服務的安全容器所採用的技術並非照搬 Kata 容器技術,而是整合了目前主流的安全容器專案,加以自身的創新而成的。阿里經濟體實際上在容器安全方面投入非常大,包括 Kata,還有其他幾種技術。他們與螞蟻金服、阿里的作業系統團隊合作一起來提供這樣商業化安全容器的實現。這次釋出的安全沙箱容器底層技術針對阿里雲進行了大量優化,跟 Kata 技術有些類似,但是裡面有很多部分不同,效能也做了大量的優化。

現在提供的是基於虛擬化隔離的安全技術,後續會陸續提供其他的技術能力,它們的隔離級別和適用場景是不同的,使用者只要去選擇就好了,在保證使用者體驗是一致的基礎上,對使用者是透明的。

結語

我們看到,阿里雲正在雲原生的路上狂奔,將各個產品、服務都押寶在元原生的領域上。最後,讓我們用李響的一段話來結束這篇文章:“新興的應用,或者是新興的領域,我們建議你使用容器輕量級自動化平臺,現在我們阿里雲、ACK 都是朝著這種模式跟大家宣導的。我們要去幫助開發者,引導開發者從非原生的體系向雲原生體系去轉移,我覺得這條道路非常重要,這也是阿里雲的責任,帶動整個國內的基礎設施,帶動國內雲原生體系發展,我們要去承擔這件事情。”

訂閱“Linux 中國”官方小程式來檢視