有容雲:樑勝-如何讓Docker容器在企業中投產(上)

有容雲發表於2016-06-14

編者注: 本文是對上海容器大會有容雲專場樑勝博士演講視訊的文字回播,力求高度還原當天演講內容未加個人觀點,如在細節部分略有出入歡迎留言指正。(文章較長,分為上、下兩個部分,視訊原版觀看地址見文末)

enter image description here

在美國的Dockercon大會中,大會主題是怎麼樣讓Docker容器在企業中投產。大家一直在講這個關於投產的話題,但其實這裡面有一個很關鍵的問題,Docker是一項不錯的技術,但是要變成生產力,僅僅是一些研發人員或者是網際網路公司能把容器用好還遠遠不夠。怎樣讓廣大企業能夠把容器用起來,能夠進一步加快自己內部軟體開發及部署的速度,這才是我們要達到的大目的。

enter image description here

大家知道,Docker從釋出到現在,短短三年,發展非常迅速。這裡我們能看到的24億下載量,我相信其中絕大部分是開發者。因為今天我們講的課題是企業投產,所以找一個全球比較大的金融系統企業來看。

enter image description here

這是去年年底開始的一個專案(編者著:高盛),專案計劃一年內要把公司90%計算量從原有虛擬機器,私有云等搬到容器上。這是一個非常大的目標,高盛不僅是世界上數一數二的金融公司,同時也是一個IT公司。他全公司大概有3萬員工,有將近1萬是IT人員,其中絕大部分是研發人員。所以像這種公司有目標有信心,要做到這個結果,我想經過這個過程,做出來的事情對我們大家也有很大啟發。

enter image description here

我們想的一個問題是:短短三年時間,容器為什麼有這麼大的成長?大家知道,最早容器的應用應該是從研發者開始,他們使用容器只是在研發系統裡面把容器搭好,後來為什麼要把容器應用到生產環境中呢?我記得早年的時候跟一些把容器投產的廠商進行交流,那時候這些廠商還是網際網路公司,歸根結底的原因,還是研發生產環境的一致性。

enter image description here

當時我跟美國一個著名的網際網路公司做交流,他們是比較早就大規模將容器投產的公司,將近100%的應用都在亞馬遜上,這跟許多網際網路公司一樣。其實該公司內部的DevOps、CICD已經做得非常好。因為當時我也不太理解這麼大規模的用容器,所以我就問他,你們為什麼要用容器?因為如果在亞馬遜上釋出你可以用AMI釋出,可以用雲映象、虛擬機器映象釋出,都是非常自動化的。亞馬遜上包括編排、排程、應用、基礎設施等軟體也很多,為什麼要大規模用容器呢?

enter image description here

其實後來想想原因也很簡單,你看亞馬遜,包括國內的公有云比如阿里雲、華為雲等,這些東西是好,但是研發人員沒有辦法在本地主機上用,所以這才是個問題:你不能讓研發人員每天一做研發就得上區域網,什麼研發系統都搭在雲上,當地編譯什麼都得上去儲存下,這個體驗很差。所以這樣一想,就算今天大家沒有真正計劃想脫離亞馬遜,或者說國內企業根本沒計劃脫離私有云,在這種情況下其實對容器的需求依然很強烈,因為從根本上來講有一個研發生產環節一致性的需求。所以即使沒有混合雲,但每個人都有一個混合雲的需求,這最早就是這樣出來的。從這個角度來講,這就是因為容器投產勢在必行。從下載量來看現在容器已經非常普及,但是容器不能僅限於研發人員,也不能僅限於CICD,最後它一定是大規模的實踐投產,這是一個必然的事情。

其實業界目前對此也沒有很深刻的認識,我們一直在國內外做業務,可能在中國的發展並不比國外慢很多。我也經常聽到有人在說,容器這東西是好,研發人員都在用,DevOps環節也開始用起來了。雖然真正在企業中投產落地還是很少,但這是必然的事情,這不是一個會不會投產的問題,這是一個時間的問題。Docker是一個新技術,發展才短短三年,還需要一段時間對市場認知做一定工作,使用容器投產勢必在大企業會有非常大的推廣,這已經很明顯。去年我來中國開容器會的時候,基本演講分享的都是網際網路公司,而今年可以看到,已經有很多其它行業企業在這方面做了很多工作,也有一些是實踐分享,所以這其實是一個很大的進步。

enter image description here

下面我想花一點時間講一下容器在企業投產中的具體模式。我為什麼要挑這四個場景跟大家分享呢,因為我們公司從去年進入中國市場,到現在為止已經跟使用者有了一定接觸。我們早期的時候架構師洪喜做了很多工作,跟國內客戶有了很多交流,所以總結出這四種模式。這方面他做得很好,所以我想拿出來跟大家交流。(編者注:馬洪喜為有容雲聯合創始人兼首席架構師,此前擔任Rancher Labs中國區技術負責人)

enter image description here

其實容器一個很重要的場景,就是新一代的私有云跟混合雲。現在雲端計算還是國內非常熱門的東西,我知道很多企業都在構建私有云,也知道有很多非常強大、讓大家認可的私有云技術。但是從國外來看,早期第一批私有云建設任務並不是特別成功。很多人在建私有云,但其實伺服器虛擬化就可以實現很多私有云的目標,如果說真要用私有云,很多人會說那還不如直接對映到公有云上,公有云有取之不盡用之不竭的資源,私有云怎麼做都不可能將資源池做得那麼大,所以其實這幾年私有云發展碰到了一些問題,但並不是說私有云的趨勢不存在。

直到後來容器技術處出現了,給了企業容器雲這樣一個機會。容器雲跟私有云非常相似,不同的地方在於私有云上面run的是虛擬機器,容器雲上面run的當然是容器。容器雲下面執行的只要是臺不管從哪來的Linux主機就行,而不像之前的私有云,你一定需要一個ROM。如果你要搭一個OpenStack,你可以用私有云;你也可以通過容器雲把之前的主機整合上來,如果之前你投資做了一個大規模VMware叢集,也可以組合進來,或者你現在想用阿里雲,亞馬遜,你也可以很容易的組合進來。所以其實你可以把容器雲叫做混合雲,但是我更喜歡叫做私有云,新一代的私有云。雲是私有的,但是資源可以是公有的,資源是取之不盡用之不竭的,但是你對資源的控制完全是根據企業應用出發的,所以在我看來最主要的場景是企業容器雲是新一代的私有云 。

enter image description here

這也是洪喜做的一個案例,有了私有云之後,就是在今天也確實有一些企業客戶有這樣的願望,把一個應用規定怎麼遷移。容器還沒做到支援活遷移的程度,但是他可以至少做到在Disaster或是擴容的時候可以有條理的從私有資料中心遷到阿里雲、亞馬遜,或者可以做到應用同時跨多個資料中心,跨多種雲,這是第一種場景。下面我跟大家分享第二種場景。

enter image description here

現在IaaS的概念已經被業界廣泛接受,不管你是做公有云還是私有云,哪怕你是在VMware上搭一個自服務的介面做得像IaaS, 但是從根本上來講,IaaS不管是亞馬遜、OpenStack還是阿里雲,最後都只解決了一個快速部署虛擬機器的問題。但是對大部分企業來講虛擬機器不能解決所有的問題,其中最重要的一個是應用部署的問題。

enter image description here

這是一張去年6月份美國通用電氣公司GE在Docker上的一張圖片,我把它拷貝下來。它主要的意思是前面花了15分鐘來部署虛擬機器,這裡做得很有效,用亞馬遜,虛擬機器部署出來很快,但是後來他花了兩三個星期才把應用部署、調配好,最後做出來的東西還不可複製,還要手動與那些雜亂的指令碼捆解,所以這個IaaS其實並不能解決企業從頭到尾敏捷開發的問題,所以容器出現就是一個很大的機會。

enter image description here

我這裡講的一個例子,左邊是一個模板,這裡用的是docker-compose, docker-compose大家知道,只是一個編排容器的模式,但用得比較廣泛,因為比較簡單。當然你也可以用馬拉松部署,可以用Kubernetes部署,可以用很多新的技術。但是其實不管你用什麼技術,哪怕你只用一個bash指令碼,最後都只是一種模式,因為容器可複製,容器啟動快,所以容器徹底改變了應用部署和管理的模式。這只是一個我們產品的截圖,但不是隻有我們產品做了這個事情,很多在場的廠商可能也做了。

enter image description here

在有了容器後很容易做出這樣一種體驗來,把伺服器上的應用做成類似於手機上應用的體驗,就像你到類似一個應用商店、應用商城的地方挑選你所需要的應用。這些應用關鍵的地方不在於指令碼,關鍵的地方是前面這些指令碼給了一個模板,你拿到這些模板之後你可以很快的一鍵點選完成部署。而且在部署之後,將來的升級、遷移,或者部署出現錯誤之後的回滾,都可以自動化。

就在十五分鐘之前我跟我的一個客戶做了交流,他們的想法比這個更加先進。他們想的是:既然應用商店可以讓我一鍵部署、一鍵升級、一鍵降級,那為什麼我不可以把這些應用裡面所有的模板放到EXI的XEN裡面去,這樣我可以去控制、無止境的保留我生產部署環境的一種狀態,我可以後退看到狀態的改變;如果這個狀態有問題,我可以後退到之前的狀態,這是一種非常強大有效的用法。其實這也是大家的需求。我做IT很多年了,十年以前,IT公司都有這個需求,包括我自己做應用時也有這個需求。只是當時技術不到位,所以最後只有一些網際網路公司可以通過自己內部的開發達到灰色釋出、滾動式升級降級這些效果。而現在有了容器技術之後,可以讓廣大企業都得到這種好處。所以有的時候部署應用也不僅僅是新一代敏捷式簡單的應用。

enter image description here

這也是我們客戶的一個例子。容器有什麼好處呢?容器只是一個包裝方式,但這是對企業特別適用的一種方式。在做容器之前我花了大概六七年的時間去研究雲 ,之前也介紹了我是思傑公司的CTO,專做雲端計算。那時我們做雲端計算市場也不是很開闊,我們對客戶講雲,告訴客戶你要把你的研發、應用的方法改一下;你原來那是老式的做法,現在雲的做法不一樣了。但是這種坎很難跨過。很多客戶會說,你這個雲是好,但是我的應用在上面run不了,我要run BMC Remedy,你的應用實在是太舊,我這是很成熟的應用,我不想動它,也沒辦法把它搬到雲上去。後來到了容器發現,除了BMC Remedy,包括現成的執行在Application server上的應用,比如 Web C、Weblogic,只要是程式它都可以很容易的打包成容器,然後可以很快的部署。所以其實從很大角度上來講,容器在企業裡面的應用落地比早年的雲端計算容易的多。歸根結底它不僅僅是對新式的應用、原生雲應用的試用,它對傳統穩定的應用起到很大效果。比如說你一旦把這些應用,例如BMC這種的,一旦放到一個容器裡面之後,就消除了它對執行環境的依賴性。同一個容器打包後放到哪都能執行。

enter image description here

剛我舉的這個是Remedy的例子,一個容器做得特別大,特別複雜,把企業級應用放在上面。另外一個角度來說就是做資料也好,計算數列也好,你做的叢集非常大,你做的容器個數非常多,這更像是一個原生雲服務,容器都可以支援得很好。

(上篇完,下篇更新中。。。)

PPT下載地址:(需傳送至郵箱請關注【 有容雲 】公眾號,在公眾號後臺回覆“PPT”)

http://pan.baidu.com/s/1gfjnWHX

視訊觀看地址:(可關注【 有容雲 】公眾號 ,在公眾號後臺回覆“容器大會”直接觀看)

本文連結:樑勝 | 如何讓Docker容器在企業中投產(上) 有容雲-構築企業容器雲 www.youruncloud.com

溫馨提示

對Docker容器技術或容器生產實施感興趣的朋友歡迎加群454565480討論。我們彙集了Docker容器技術落地實施團隊精英及業內技術派高人,線上為您分享Docker技術乾貨。我們的宗旨是為了大家擁有更專業的平臺交流Docker實戰技術,我們將定期邀請嘉賓做各類話題分享及回顧,共同實踐研究Docker容器生態圈。

相關文章