技術圈老是在不停地蹦各類新名詞。也不知道從何時開始,人們慢慢不怎麼提「雲計算」這個名詞了,而是頻繁提到一個新名詞「雲原生」,好像不這麼提就不足以體現雲計算原住民的身份。不過,要真的問什麼是「雲原生」,其實不少人都說不太清楚。隨着雲原生生態如火如荼的發展,甚至連 CNCF 官方都以爲有必要專門作個定義出來:緩存
前一段時間,我在雲棲大會上見到了阿里雲的李響,就有人問他,「怎麼理解‘雲原生’?」做爲 CNCF 的技術監督委員會成員的李響,以他的角度對此做了闡釋:安全
「我以爲雲原生自己實際上就是比較泛的概念,它最終的目標就是利用雲上的資源、雲上的服務來重構軟件開發以及運行時的生命週期。簡而言之就是怎麼更好利用雲。……隨着雲的發展,雲原生自己也會有一些變化,你們接受雲原生的理念和實現雲原生的狀況也會有變化。……我以爲不用太把雲原生自己在一個框框裏圈定,它更多仍是一個核心的概念——更好地利用雲釋放雲的紅利,產生相關的技術讓你們去實踐。」性能優化
在我看來,雖然如今雲原生的概念的內涵和外延都在不斷的變化當中,可是不能否認的是,雲計算生態已經從最初的巨石應用、剛性的分佈式計算逐漸演變到原生地基於雲計算環境進行設計、開發、部署、運維和彈性伸縮。能夠說,雲原生從新定義了雲計算。網絡
藉助於雲原生技術,一個計算系統能夠很便捷的從一個環境中遷移至另一個環境當中,而這在以前幾年,幾乎仍是不可想象的。就這個場景,阿里雲舉了一個例子:好比像三維家,他們在上海雲棲大會上宣佈了全站上雲的消息,由於他們已經應用了雲原生的方式,僅花了三天把所有業務遷到阿里雲上。而在遷移以後,三維家如今能夠利用雲原生的方式能夠充分發揮雲計算的彈性,三分鐘以內就能夠建立 100 個神龍節點去應對突發的業務需求,極大提高企業 IT 的靈活性,而且下降了 IT 成本。三維家表示,「阿里雲的容器生態系統打造得很是完善,從監控、日誌、服務暴露、應用拓撲、伸縮擴容方面可以作的更加靈活;基礎設施的建設和維護穩定性交給阿里雲,目前沒有出現過問題。」架構
今年我參加雲棲大會,有一個明顯的感覺就是,阿里雲在不斷的大聲談論雲原生。事實上阿里雲早已經是雲原生計算基金會的成員(如今是白金成員),也在這個領域耕耘良久,可是今年,不管是多到你參加不過來的各類主題演講,仍是各類產品和服務的消息,都在不斷的講,雲原生、雲原生……less
在過去你們更可能是把互聯網和移動互聯網的應用,大部分是無狀態應用部署在容器平臺之上,今年愈來愈多的企業開始把有狀態的應用、交易類的應用以原生化的方式進行交付,進行自動化的運維。運維
此次雲棲大會上阿里雲還發布了 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 都是朝着這種模式跟你們宣導的。咱們要去幫助開發者,引導開發者從非原生的體系向雲原生體系去轉移,我以爲這條道路很是重要,這也是阿里雲的責任,帶動整個國內的基礎設施,帶動國內雲原生體系發展,咱們要去承擔這件事情。」