網易蜂巢(現已改名爲網易雲計算基礎服務)用了什麼技術?

本文來自網易雲社區docker

 

近日遇到一些同窗想了解下網易蜂巢 (現已改名爲網易雲計算基礎服務)在技術上是怎麼個原理, 這裏隨手記錄一下蜂巢技術架構的科普貼。數據庫


組成網易蜂巢(現已改名爲網易雲計算基礎服務)的技術可分爲4大塊
  • 容器技術
  • 編排技術
  • IaaS技術
  • PaaS技術
這每一塊技術論原理其實都有許多很好的公開資料能夠參考,因此沒有多少神祕的東西,這裏就只簡單介紹一下。

容器技術基於當前流行的開源項目 Docker,一個很好的類比是集裝箱的概念,一個容器是一個完整的軟件運行環境,打包了操做系統、庫、運行時環境、業務代碼,這使得容器做爲一個總體一旦構建完成後可隨處運行,在網易蜂巢中交付給用戶的最小單位就是容器。這裏有一個問題容器和虛擬機的區別是什麼,在技術上固然有不少區別,例如容器只是利用資源隔離加名稱空間這樣的技術在操做系統層面作了虛擬化,與宿主機共享內核空間這是與虛擬機顯著不一樣的,但我的認爲這並非最重要的,關鍵在於容器提供了一種像代碼同樣描述運行環境的手段,構成環境的每個零件都在開發者掌控之中,運行環境可像代碼同樣作版本控制,這也使得基於 Docker 開發可得到一個最大的好處—環境的一致性。

容器蜂巢提供的計算資源的最小單位,而要實現一個可水平擴展的產品服務端架構,則須要引入集羣的概念,在網易蜂巢中稱之爲」服務」,集羣的運維如發佈、回滾、擴容、縮容以及集羣的成員管理須要引入編排服務來實現,網易蜂巢的編排服務基於開源項目 kubernetes,編排服務將受控的資源抽象爲三個層次,容器(軟件及運行環境),Pod(相關聯的容器的組合,相互間通訊無需跨網絡,例如應用服務器和本地緩存)容納一個或多個容器,Node(提供計算、網絡、存儲的資源節點)容納一個或多個 Pod。

前面提到須要 Node 來提供資源,管理資源的即爲 IaaS 服務,IaaS 服務提供的資源能夠是虛擬機、容器,但 IaaS 服務要確保計算能力(CPU,內存),網絡IO,磁盤 IO 按需分配、並保障計算、IO 能力是穩定供給的,也就是須要保障 QoS。IaaS服務的技術基礎是虛擬化技術,包括計算、網絡、存儲的虛擬化技術,計算的虛擬化不管在硬件或軟件層面都相對成熟,而在網絡、存儲的虛擬化上網易蜂巢的選擇是軟件定義的技術,咱們僅僅依賴通用的硬件與x86服務器來實現虛擬化,軟件定義帶來的好處是咱們能夠針對業務需求在網絡、存儲的控制層面作靈活的定製,網易蜂巢簡單平坦的私有網絡即是得益於軟件定義網絡的實現。

而真正開發一個產品隨着產品規模的不一樣還須要一些基礎 PaaS服務的支持,例如數據庫服務、緩存服務、對象存儲服務、搜索服務、負載均衡服務、DDos防護服務等等,網易蜂巢中目前集成了負載均衡服務與關係數據庫服務(其餘 PaaS服務後續會陸續上線),這些基礎服務的實現與容器沒有直接聯繫,其中負載均衡服務、DDos 防護服務比較特殊位於流量的入口對業務透明,其餘的PaaS 服務咱們在蜂巢中傾向於將其抽象成backing service 的概念,對用戶來講只暴露一個 url及提供相應的管理工具,用戶無需關心 url 背後是怎樣一個服務集羣,集羣的成員是什麼,集羣是基於什麼實現的。

雖然說雲計算平臺的技術原理大同小異,但真正在設計實現層面要面對的是極高的工程複雜度,這纔是雲計算技術真正充滿了挑戰和創新的地方,咱們也挺樂意在這方面和你們多多分享的。 

最後仍是盛情邀請你們來試用一下網易雲計算基礎服務,感覺下docker容器服務的樂趣, 點擊可免費試用
 
 

網易雲新用戶大禮包:https://www.163yun.com/gift緩存

本文來自網易雲社區,經做者陳諤受權發佈。服務器

相關文章
相關標籤/搜索