大勢已來:阿里雲梭哈雲原生
雲原生是什麼?
技術圈總是在不停地蹦各種新名詞。也不知道從什麼時候開始,人們慢慢不怎麼提「雲計算」這個名詞了,而是頻繁提到一個新名詞「雲原生」,好像不這麼提就不足以體現雲計算原住民的身份。不過,要真的問什麼是「雲原生」,其實很多人都說不太清楚。隨著雲原生生態如火如荼的發展,甚至連 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 中國: https://github.com/Linux-CN/archive