精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

從Google的PaaS平臺說起,解析中美Docker生態圈

責任編輯:editor007

作者:王璞

2016-05-20 21:32:39

摘自:搜狐IT

核心模塊還要管理網絡,我們很多客戶提出來不同應用之間的網絡要進行應用隔離,有些應用可達有些應用不可達,這都需要對容器之間網絡進行有效管理。周邊模塊支撐應用運行方便應用運維,周邊模塊體現出新一代PaaS平臺的應用度。

本文選自清華大數據產業聯合會會員、數人云CEO王璞博士在5月18日第八屆中國云計算大會上主題為“中美容器之融合與變革”的分享,以下是演講實錄:

容器VS虛擬化

首先我科普一點什么是容器技術。容器技術其實本身并不是什么嶄新的技術,大家經常拿容器技術跟虛擬化技術比較。有一個通俗的說法,容器是極度輕量的虛擬機。怎么理解大家看這個圖,左邊圖展示的是虛擬機,物理服務器里裝操作系統,再裝上虛擬機管理軟件,生成很多虛擬機,然后虛擬機再裝操作系統再裝各種各樣的應用。右邊圖展示的是容器,物理服務器里裝操作系統,絕大多數情況下,容器基于的操作系統是Linux操作系統,然后Linux里裝一個容器軟件,最常見的是Docker,用Docker運行各種各樣的容器,容器里面不需要再裝一次操作系統里,容器里面只裝各種各樣的應用就好了。這兩張圖對比大家看出來容器跟虛擬機比最大的優勢就是輕量很多,容器里面不需要再裝一遍操作系統。容器里面的應用重用容器外面的操作系統,特別是Linux內核這些操作系統核心組件。再一點,容器是用于對應用進行封裝,容器里面是各種各樣的應用程序。用容器封裝應用時,會把程序本身和依賴庫都打包在一起,這樣容器應用具有可移植性,在不同的Linux環境下都可以運行,而不需要再安裝依賴庫。容器本身的理念是非常非常簡單的。

容器的技術發展歷程

容器技術本身并不是嶄新的,倒推到2000年Free BSD的Jail,2005年出現的Solaris Containers這些都是容器技術的早期實現。Docker屬于容器技術的一種。Docker有鏡像的概念,Docker鏡像和虛擬機鏡像不一樣的特點就是Docker的鏡像是分層的,最下面是基礎的鏡像,是基礎Linux環境,上面每一層鏡像裝不同應用。Docker鏡像分層最大的好處就是應用分發很方便,每次分發Docker應用的時候,只需要下載更新部分的鏡像,而不用重新下載整個鏡像,實現應用增量分發更新。容器本身用于封裝各種應用,容器之外還有各種管理需求。

這是容器的技術棧,中間部分是兩個容器的示例,還是服務器上面裝操作系統,再裝上Docker運行各種Docker應用,應用在運行時還有其他各種需求,比如網絡、服務發現、負載均衡、任務調度等需求,這些需求本身是Docker技術無法滿足的,還需要各種相應的周邊技術。這樣,容器技術棧慢慢演化成一個PaaS的環境了。

這是美國的容器技術相關的生態圈,大家看到各種各樣的廠商,估計近百家,都在美國的容器生態圈。我特別想畫出一張Docker技術中國生態圈,很遺憾現在還畫不出像美國一樣豐富的Docker生態圈,但是我相信未來兩三年時間內我們也能畫出非常豐富的Docker關于中國的生態圈。

云計算分為三層,SaaS、PaaS、IaaS,這三層隨著云計算發展得到不同程度的發展,比如說SaaS的發展,由于各行各業的互聯網相關業務發展,SaaS以服務為中心,SaaS提供各種各樣的服務,各種互聯網業務型的,HR、財務、CRM等等,這些不同的服務,企業應用的服務都可以以SaaS方式交付這些都有彈性特征。另外一方面云計算發展以后對于大規模數據中心的需求越來越旺盛,數據中心規模越來越大,數據中心相對管理負責度也增加很多,跟數據中心相關就是IaaS和PaaS,數據中心是云計算云端真正計算的載體。比如說IaaS以資源為中心,IaaS要提供資源彈性,數據中心里面IaaS管理整個數據中心資源,讓整個資源以彈性方式提供出來。PaaS在數據中心以應用為中心,PaaS提供應用的彈性,這是云計算的三層,都得到不同程度的發展。但是跟IaaS和SaaS相比PaaS發展其實是相對滯后的。比如說上一代PaaS沒有解決好本身復雜度的問題,后面我簡單介紹一下。

Docker催生的新一代PaaS

2014年前后上一代PaaS基本上是市場的最低點,我2014年回國跟國內同行討論我們如何做一個PaaS,PaaS有沒有前景,2014年國內同行都對PaaS持懷疑的態度,Docker2013年在美國誕生的,Docker出來以后催生新一代的PaaS,很重要一點Docker出來以后形成事實上應用交付的標準,未來大家普遍這樣認為,未來企業級應用都會以容器Docker的形式進行交付。這樣很好的一點Docker定義了企業級客戶和PaaS之間的一個邊界,這個邊界怎么理解?就是企業只需要關心自己的業務應用、業務程序,企業業務程序分裝在容器里面,PaaS只需要提供標準的容器運行環境,有了清晰邊界以后PaaS復雜度大大降低,PaaS作為一個標準,之前沒有容器的時候PaaS和企業客戶之間邊界在哪里?邊界在于程序編程語言這個層面,比如說Heroku等需要支持各樣的開發語言,上一代的PaaS復雜度非常高,新一代的PaaS由于Docker定義一個標準,新一代PaaS可以不用管業務應用拿java還是其他語言寫的,解決Docker運行所需要的CPU、網絡、負載均衡、報警等常見的企業內部的需求,這樣新一代PaaS復雜度大大降低,這個也就是我說為什么Docker出現催生了新一代的PaaS。

很重要一點中國和美國在新一代PaaS發展方向是齊頭并進的。

新一代PaaS平臺在中美落地情況

這張圖我列一下新一代PaaS在中美兩國落地的情況,左上角是新一代PaaS在美國落地的情況,右下角是新一代PaaS在國內落地的情況。基本上大家可以看出來新一代PaaS落地從互聯網公司到IT巨頭到傳統行業都有各種各樣的落地。落地的這些企業并不是所有我只是挑一些有代表性的,從有代表性落地企業來看國內和美國其實幾乎處在同一個起跑線上。

Google 的 PaaS

講到PaaS不得不講一下谷歌的PaaS,其中一個原因有很大影響力,尤其是谷歌內部的PaaS非常復雜、功能無比的強大,我之前在谷歌工作過,我見過谷歌的PaaS是怎么運作的。首先幾個特點,谷歌內部的PaaS分層的,PaaS管理東西很多,PaaS只管理應用,跟應用相關還有很多東西,資源分配,任務調動等等,谷歌PaaS以一種容器方式分裝分發,谷歌有著名的分布式文件系統,還有各種各樣數據管理的數據,還有Big Table、 MapReduce,這是谷歌分布式應用編程的范式,這是PaaS提供的能力。

谷歌PaaS的特點是什么?就是輕量,輕量怎么理解?PaaS支撐應用快速迭代快速上線,大家提的持續交付持續集成的概念。谷歌PaaS是以應用為中心的,PaaS平臺一定提供應用彈性能力,讓各種各樣應用按需使用資源,PaaS平臺提供容錯能力把開發運維復雜度降低,這三點我稱之為應用PaaS平臺的輕量特性。

再一點谷歌內部的PaaS非常強大,谷歌資源管理和任務調動數據,可以管理谷歌兩百多臺服務器統一進行管理。為了讓大家更深刻的理解,我找了一張谷歌數據的照片,這是谷歌數據中心照片的一角,很多機柜,每個機柜里面有差不多20臺服務器左右。這張照片我想強調一點是什么?這么大規模的數據中心其實硬件故障頻率很高的,這張圖是我從谷歌一個數據中心的PPT報告上摘下來的,就是說一個谷歌新建的數據中心平均下來一年要發生這么多各種各樣的故障。舉個例子第一個故障一年大概有半次左右過熱,一年有一次的供電單元有故障。一年至少有一個機架做挪動,至少有一次機架進行排線,一年可能有12次路由器重啟,3次路由器故障,每年大概有上千次服務器宕機,由硬件故障造成的宕機,一年有數千次的硬盤損壞。目前大規模數據中心基本都是用X86服務器,都不是像大型機或小型機這樣的高可靠硬件。基于X86服務器的數據中心怎么應對這些硬件故障,保障應用服務高可靠,這是PaaS和IaaS一起要做的工作。

基于Docker的新一代PaaS

這里面我主要把新一代PaaS的特性給它勾勒了出來,跟谷歌的PaaS有相似的地方,新一代PaaS基于微服務理念打造的,特別是像谷歌的PaaS分層管理。新一代PaaS也有輕量的特性,介紹谷歌PaaS的輕量特性,應用要具有彈性要分布發布,再一個容錯性強、易于維護,PaaS也要對計算資源故障進行容錯。這里面特別強調一點大規模數據中心或者現在這種數據中心對于硬件管理方式有兩種,一種上一代的寵物型管理方式,另外是放養型的。對于寵物型的數據中心管理方式其實是很常見的,比如說對于數據庫服務器,一般企業里面數據庫服務器絕對不允許宕機,數據庫宕機所有應用全部宕了,所以要有人為維護,DBA,人圍機器去轉,這是寵物型對數據中心的管理,一旦數據庫宕機人馬上去修。另外是放養型跟寵物型相反,放養型什么意思?比如說谷歌這樣的量級中心,兩百萬臺服務器不可能保證每一臺服務器都是處于工作狀態,一定有一些服務器處于故障狀態,要通過軟件PaaS平臺保證上面應用服務不宕機,PaaS對于軟硬件都要有很強的容錯能力,放養型的工作管理必然極大降低對數據中心維護,包括PaaS本身,維護成本運維成本都會大大降低,這是新一代PaaS很重要的特性主要就是輕量。

數人云的新一代PaaS實現

接下來簡單講一點點我們數人云對于新一代PaaS是怎么實現的?其實最主要就是分層的實現,分層實現這是谷歌提出來的理念。大規模數據中心是云端計算的載體,大規模數據中心的軟硬件系統是IT行業最高科技的結晶。這么多復雜系統拼在一起組成大規模的數據中心,對外提供云計算服務能力,不是一套系統能夠全部做下來的,一定是分層實現的。

我們實現新一代云計算平臺首先有一個是核心模塊,核心模塊本身也是分好幾個層面的,核心模塊基本上圍繞運行時的基本管理提供比如說容器運行的標準環境,這個核心模塊包括幾個層面,首先應用的封裝用到的是Docker的技術,這是很火的容器技術。光有應用封裝不夠的,應用封裝完應用運行還有別的需求,需要CPU、內存需求等等,資源分配核心模塊里面功能我們基于Apache來做的,應用不是運行在一臺服務器,大規模數據中心有成百上千臺服務器,對于大規模的集群里面應用該怎么調度這是很關鍵的模塊,我們用的是任務調度模塊做的。比如說應用分發,涉及到應用的更新上線等等,比如說老版本的應用已經運行了,新版本應用程序我要分發下去,新版本應用我要有一個分發的倉庫存在什么地方,這時Docker的鏡像倉庫用于應用分發。

核心模塊還要管理網絡,我們很多客戶提出來不同應用之間的網絡要進行應用隔離,有些應用可達有些應用不可達,這都需要對容器之間網絡進行有效管理。我們通過Calico來實現網絡管理。

還有服務發現,容器運行環境在大規模數據中心里面,對于容器調度不是靜態調度,不是一個容器應用就跑到一臺服務器上,它是動態調度的,不同應用之間我有通信需求,我應用A怎么找到應用B就需要有應用發現的需求,這是核心模塊的基本功能。

周邊模塊支撐應用運行方便應用運維,周邊模塊體現出新一代PaaS平臺的應用度。

周邊模塊很重要一塊就是持續集成,這是企業客戶對于PaaS平臺很強需求的一點,因為這些業務應用大家需要快速迭代,這是互聯網給大家帶來的企業級IT最大的沖擊,應用怎么做到快速上線需要持續的集成,開發人員做的新的代碼怎么持續集成各種各樣的應用而且發布出去。

再一個彈性伸縮這也是互聯網帶來新業務的特點,互聯網業務最大特點就是集中爆發,很經典例子就是淘寶雙十一,12306大家訂票,彈性伸縮是PaaS平臺必須提供的性能,沒有彈性面對集中爆發的業務需求這個后臺支撐不了,彈性伸縮我們用API實現的。再一個監控報警,任何企業生產環境系統不是孤立存在的,一定有各種各樣的監控報警,生產系統誰也不能保證100%的正常。

再一個日志的處理,這是企業很強的需求,生產環境里面各種各樣的業務都有,生產環境都是比較大規模的集群環境,不同應用產生的日志留在不同的服務器上,怎么把這些日志在分布式環境下進行統一收集查詢統一處理,需要有日志統一管理,我們主要用的是ELK這個模式。

再一點就是文件存儲,企業生產環境數據中心里面業務應用必然有一些數據存下來,就要存在文件系統上,文件存儲我們用的是Hadoop的文件系統。再有對于數據的管理,多個應用要對數據同時進行讀寫操作,對于數據訪問管理等等這些我們用的是HDFS。還有我們用Kafka消息隊列來處理不同應用之間的異步通訊需求,未來Kafka可以替代企業服務總線。還有數據處理,現在企業對于大數據處理有很強的需求,大家用Hadoop還有Spark這些,我們主要用Spark做大數據處理更快。

前面介紹一下我們做的新一代PaaS平臺的核心模塊和周邊模塊,我簡單給大家演示一下我們的程序,這是我們對于應用管理做的,我們做到應用統一管理,各種各樣的應用通過這個平臺統一的分發部署。再一個集群管理,它的PaaS也要向下管理各個集群的資源。中間有一個紅點代表某一臺集群主機是異常的,異常沒有關系,上面應用把這個平臺容錯自動遷走遷移到其他地方,一兩臺主機宕機不影響整個的應用使用。再一個應用管理,散落在不同集群上。跟日志相關的數據統一收集起來方便后臺運維人員管理。軟件定義世界,這是我們所有做軟件的人非常喜歡的一句話,現在大家日常工作生活都跟各種各樣的軟件在打交道,之前有大家提的隨著云計算發展提出的軟件定義存儲、軟件定義計算、軟件定義網絡等等。再進一步的提法軟件定義數據中心。我剛才講PaaS講到很多數據中心的概念,說到底我喜歡軟件定義世界這句話。

這個背景圖其實就是黑客帝國電影的主題圖。黑客帝國里邊講的是未來人類生活在虛擬軟件定義世界里面。這個軟件定義世界正在發生,每個人現在每天都要大量跟各種各樣的軟件打交道。隨著云計算新一代PaaS平臺普及,隨著容器技術如火如荼的發展和推廣,下一步就是不僅僅是軟件定義世界了,我們最后會達到容器定義的世界,所有的軟件都是以容器形式交付運行的,歡迎大家來到容器定義的世界。

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 华容县| 高阳县| 陕西省| 土默特右旗| 田东县| 宣化县| 蚌埠市| 咸丰县| 望奎县| 乌拉特中旗| 牡丹江市| 铜鼓县| 明水县| 临泽县| 新郑市| 石景山区| 车致| 上思县| 凤台县| 托克逊县| 沅陵县| 唐河县| 吉木乃县| 田东县| 花垣县| 科尔| 怀宁县| 雅江县| 忻州市| 芮城县| 兴海县| 商南县| 马关县| 会昌县| 依兰县| 永川市| 鸡泽县| 阜阳市| 福清市| 嵊州市| 扬中市|