1. 程式人生 > >郭理靖:“京東雲‘蜂鳥’容器服務” – 運維派

郭理靖:“京東雲‘蜂鳥’容器服務” – 運維派

由工業和資訊化部指導,中國資訊通訊研究院主辦,業界知名組織雲端計算開源產業聯盟(OSCAR)承辦的2017全球雲端計算開源大會於4月19日-20日在北京國家會議中心順利召開。本文為本屆大會嘉賓分享的大會演講速記內容,敬請瀏覽。

嘉賓介紹:郭理靖

公司職務:京東雲產品部總經理

大會演講速記

容器

大家下午好,很高興來到這裡跟大家分享一下京東在容器方面的經驗。

雲端計算

我分四個主題,第一、雲端計算的下一個時代,第二、怎麼做容器雲的,第三、我們安全怎麼做的,第四、容器雲經典的應用場景。
為什麼我取雲端計算的下一個時代是容器的時代。其實從虛擬化的實現,在1999年推出虛擬化產品到現在接近20年了,我們伴隨著虛擬化走過了很長的年頭。我們慢慢把大部分的應用,早在幾年前大部分應用都搬到虛擬機器上面去了。

但是我想給大家講的觀點是什麼?我覺得時至今日,也許我們世界應用達到80%的應用都跑到虛擬機器上了,再過五年後,全球應該有50%的應用都會跑到容器上面去,容器其實就是下一個時代,它代替QEN、代替虛擬化的。

Docker

我們先看一組資料,這組資料稍微有點過時,這是2016年的資料,docker而應用程式數量有46萬個,這個資料低估的,全球Docker應用數量絕對超過46萬的。另外幾個資料都是Docker官方公佈的,Docker化相關的開源專案數,包括Docker映象下載次數是41億次。以及Docker專案貢獻的人數3萬。

容器趨勢

在2015年的時候,2015年跟2016年Docker使用率從8.2%增長到10.7%。我預估今年增長超過45%,萬事開頭難,前面你要教育客戶,讓使用者接受這個東西都是比較困難的,但是隨著教育普及之後,我覺得大家應用起來更能接受。

容器技術

這是容器關注度趨勢分析,大家看到接近80%的使用者對容器技術非常關注的。

Docker

再看一下2015年跟2016年的對比,最下面兩個資料,在一個企業裡面同時執行容器的最大量是13萬,這個資料在2017年肯定被重新整理的,我們京東同時執行數量超過20萬了。有很多容器並不代表同時執行,這個數量有能達到400多萬的。相信2017年肯定出現一個讓大家更震驚的數字出來。

講完這個趨勢,我們講講我們京東怎麼做容器雲的?京東是怎麼使用容器的?

京東使用容器非常早,我們早在2013年當時,Docker沒有出來我們想自己搞,想搞一個類似Docker的東西,我們做到一半發現Docker出現了,我們發現這個方案特別適合我們京東,所以我們京東大膽擁抱了容器這個技術,時至今日京東大部分都容器化了,而且跑得非常穩定了,也可以說京東是容器技術的最大實踐者。

京東雲去年7月1號正式對外服務,但是我們容器服務是今年才上線的。雖然京東是容器技術的實踐者,為什麼我們公有云上這麼晚才提供容器服務,這有很深層次的原因的。

這個我簡單介紹一下,我覺得強調兩點,我們講Docker的時候,講容器,其實我們一定要把Docker的組成部分好好解釋一下。

Image
Docker在我看來有兩部分組成。第一部分是它的輕量級的隔離技術。另外一部分是Docker自身的Image體系。
大家很多時候把Docker和容器混為一談,容器是輕量級的技術,底層還有非常重要的Image的體系,那個體系才是最關鍵的我們看來。
隔離的技術我不用這個我用其他的也行,我們之前內部討論要不要容器化的時候,我們有很大的爭議,我們有自己的部署,我們有自己微服務治理,我們有自己的統一配置管理等,什麼都全了,我為什麼用容器把底層開源代替,看起來價值不高。
當時採取Docker生態,最大價值是Docker的Image體系給我帶來的優勢非常大的。容器很小,一臺機器可以起很多機器,但是對我們而言,實際工作剛才當中不可能在一臺容器起幾千個場景,反而幾百個是相對來說比較常見的。

京東

講講我們京東雲提供的容器服務是什麼樣子的?其實容器在我們看來,容器公有云提供服務最大問題在於它的安全性的問題。

因為大家都知道Docker用的是一個輕量級的隔離技術,輕量級隔離技術帶來的問題就是說如果我兩個Docker的應用,跑在一臺物理機上,很有可能A應用通過一些手段容易獲取B應用的資料,這個在公有云裡是不可接受的。

KAM

我們做了一些事情,我們用虛擬化的技術支援Docker的頁面,讓KAM跑起來像一個Docker,實際上它的用得是虛擬化的技術,它帶來最大好處就是非常安全,而且它也非常快,傳統起一個虛擬機器需要一分鐘兩分鐘,我們起一個容器服務只需要幾百毫秒,這是一個示意圖,我們在KAM上做很多裁減工作。

為什麼我們這麼做?為什麼我們相容Docker頁面的體系?最重要我們考慮點就是在標準化和相容性上。我支援容器整個映象體系的,所以所有容器的原生的image,天然可以跑到我平臺上面去的,然後我們相容了DockerAPI的管理工具。
另外我們用開源的虛擬化技術,所以跟我們現有虛擬化的技術完全相容,我可以用我們傳統提供的SDN,線上遷移工具,包括用我們分散式的儲存,以及我們提供容器應用的通用化。

然後我們配置非常豐富,KAM做不到最小記憶體做到64兆,傳統公有云上看到最小云主機是1G的,對於我們蜂鳥容器而言,我們最小顆粒度做到一核64兆。
大家跑一個小應用用我們這個最划算的,因為我們成本是別人的十二分之一,我們比別人便宜多了。當然我們也支援超大型別的容器,包括32C128G的,接下來我們提供更大記憶體的容器服務。

講講我們安全怎麼解決的?這是一個簡單的示意圖,大家在座都用Docker,我不詳細介紹了,這是一個Docker跟VM的區別。

我們看了一下業界的廠商怎麼做容器雲服務的,左邊這些圖都是業界廠商的標準做法,因為我們解決不了Docker帶來的隔離性問題,怎麼辦?我用傳統的隔離辦法解決。

大部分廠商在公有云上提供容器服務,或者你在公有云搭建自己的容器的時候,你採取做法就是我買很多虛擬機器,在虛擬機器我在去做容器,我把虛擬機器當做物理機來用,這樣我就把安全遮蔽掉了,因為我們不可能在物理機上直接給使用者提供容器服務,這樣不安全了。

容器

右邊是我們做法,我們可以在一個物理機上起不同使用者的容器服務,而且能做到安全隔離,這樣我比其他廠商而言,我們的容器顆粒度也小,用於管理容器管理工具的損耗也很小。

DevOps

現在講講典型的應用場景,前面嘉賓也講了很多,做容器跟微服務,我跟大家分享一下我們怎麼看待容器和微服務的?

微服務概念出來的時間也不晚,2004年就有人提出微服務的概念,我們以前講敏捷、微服務、DevOps,微服務+敏捷+DevOps一定帶來便捷嗎?

這個觀點不對的,敏捷、微服務、DevOps提供一些工具和理念,關鍵組織是不是很敏捷,組織有沒有同樣的文化,同樣的思想,有沒有接受這樣的概念,如果一個組織沒有這樣的概念,用了再多的微服務、敏捷、DevOps,其實對於你開發生產並沒有多少提高。

Docker出現給微服務帶來了契機,微服務帶來的部署成本、運維正本、服務治理成本非常高,剛好容器Docker的出現彌補了微服務的缺點,所以時至今日我們講微服務的時候一定會講到微服務

感覺這兩個東西天然在一塊一樣,其實不然的,其實微服務的概念出現時間比容器早很多,早十年。只是說容器出現之後把微服務那些弊端基本上都解決掉了。然後容器發現微服務是它最好的服務場景。

所以我們講容器一定會討論微服務,討論微服務一定會講容器。

下面是講一下DevOps,DevOps不僅是在部署生產上容器有它自己的優勢,更重要我們開發者在當前進行開發帶來的便利性非常關鍵的。

我自己研發出身的,我們以前開發過程中最痛苦的事情就是我要跟別人進行聯調,我要別人的聯調環境,我進度依賴別人給我提供的聯調環境,整個公司整個組織一個部門,整個應用全部聯化,在一個開發者筆記本上我能部署一套比較完整的DevOps環境。

別看這是很小一個進步,其實對整個研發效率提升很大,至少提升了50%,因為你在大型企業你開發跟其他部門有很強烈的依賴關係。

以上是我們京東雲的實踐,我總共給大家講一個關鍵,第一個我覺得容器是一個未來。
第二個在公有云上提供容器雲服務的話,我覺得采取像我們服務方式是比較合適的。也可以給開發者帶來更多的便利。謝謝大家。

文章來自微信公眾號:雲端計算開源產業聯盟