淘新聞

容器技術的火熱現狀與未來展望 | 硬創公開課

上周,雷鋒網曾報導微軟宣佈收購軟體容器提供商Deis。大公司的介入也再一次讓容器領域走入公眾的視野。自2013年剛剛誕生到今年,容器Docker鏡像的下載量超20億,容器行業發展可謂如火如荼。

本次雷鋒網硬創公開課,我們邀請到了企業級私有容器服務平臺提供商Rancher Labs大中華區總經理George Qin秦小康,講解Deis是一家怎麼樣的公司,微軟為何會收購它,並談談容器技術在傳統企業IT環境的落地實踐,及行業落地需求本身對容器技術發展的要求方面。

George Qin秦小康,Rancher Labs大中華區總經理,在開源和雲計算領域擁有十多年的豐富經驗。在此之前,曾負責Citrix雲平臺事業部在大中華地區的業務,Oracle Linux/VM在大中華區業務發展,以及在RedHat 負責JBoss、KVM業務在中國地區的產品團隊。 

以下是雷鋒網整理的公開課主要內容:

首先是為什麼Deis的消息會引起業內人士的關注?Deis是一家開源軟體公司,主要業務是讓容器集群管理系統kubernetes容易使用。它與容器相關,也是今天的主題。

在2015年的4月Engine Yard就收購了Deis,如今又將它轉手賣給了微軟。根據外界的分析, 這次收購最主要的意義是,讓微軟在雲計算的領域追趕亞馬遜的步伐加快了,對其雲計算有莫大的幫助。

我們要看到的是它的背後有三個關鍵字,一是雲計算,二是容器,三是Kubernetes。

Kubernetes是容器的編排調試技術,由Google在2014年正式發佈。現在容器編排工具的競爭有兩個主要玩家,一個是Docker,一個是Google。Docker公司的CTO曾放言,準備把Kubernetes殺掉。

一個Deis公司就能讓微軟的雲計算帶來這麼大的收益。其實在關注這場收購之前,還要瞭解容器技術對於雲計算行業帶來的改變。

首先要瞭解容器和雲計算的趨勢。從下面的圖中可以看出,在這一波浪潮裡,傳統的IT技術商都要靠邊站,增長受到了很大挑戰,唯有AWS的增長達到近50%。微軟和Google等公司也都發佈了公有容器服務。

在容器領域裡面,最搶眼的三個玩家是:Docker,Mesosphere(兩年前比較有名),以及CoreOS。兩年前,這幾個公司在容器裡都很流行。

反觀Docker的增長,則可以用恐怖來形容。它在2015年初的下載量是1億次,到了2015年底就是10億次了,而去年中就達到40億次。

Docker還做過一個調查,問用戶是否想把自己的產品當作雲戰略的一部分,結果80%的人已經決定這麼做了。而41%的人表示,要把應用在各種環境中遷移,不想公有雲上all in。還有60%的人想用Docker把應用遷到雲上。而與最近的新聞最有關係的,是那41%的需求。

Kubernetes從2016年的下半年開始,其關注也有很大增長。這可以解釋為什麼Deis會被業界關注。

容器行業有哪些主要玩家,可以從下圖中看出來。

別看這張圖這麼複雜,但在編排調度這裡,從2015年到現在就是剛才提到的三家的競爭。總的來說,看著這麼熱門,在核心領域貢獻的不多。不過到了去年,Mesos就不見了,不再被認為是主流的對手。

容器市場經過兩年多的標準化,也出現了兩大陣營:OCI和CNCF。前者是Docker主導,也有傳統大的IT廠商參與,它們是2015年6月成立,主要是把Docker引擎標準化。後者也想有自己的生態,上周還召開了全球大會。兩邊的成員重複很多,這也說明容器的火熱,所有人都不願意在浪潮中把自己落下。

Docker為什麼如此受歡迎?

Docker作為容器引擎的事實標準,很多人將它與容器對等。看下圖,左邊是過去的IT工作模式,要麼在一個物理機上,要麼在虛擬機器上,先裝作業系統,比如選擇Linux,再上面選擇中介軟體與資料庫,再到上面做應用。

而Docker則不管什麼,都打包成一個格式,多個Docker放在一個作業系統裡。打包好了成為鏡像,供開發者去複製分發。

之所以如此重要,一是Docker打包方式快速高效。

二是有更高的資源利用率。與VM作對比,如果已經有了一個應用,在有另外一個應用時就需要跑另一個VM。這裡的問題是,無論應用大小,VM的規格是固定的。容器就不一樣,同樣的情形,兩個應用可以放在同一個VM裡,其中一個不運行時,另一個可以充分利用資源。

不過這還不是最主要的,容器的流行還有第三點,即打包方式可以讓開發測試環境和生產環境,保持運行環境的一致性。這對應用本身不會發生影響,這一點十分重要。

在研發環境和生產環境中,沒有一個環境部署,只要IT環境支持Docker,裡面打包的應用就不需要作修改了。有一個研發測試理論稱,測試裡出現的80%的bug是由運行環境導致的,這也被一些大企業證明了。高盛用Docker的原因,就主要是為了這一點。

無論容器有多少應用,第三點都是最根本的好處,對研發人員和運維及測試,都帶來了好處,提高了效率。

隨著打包功能的拓展,又產生了一個新想法,即下一代雲計算技術:Caas/容器雲。在容器雲上把應用在不同的架構間做遷移,或者同時在不同的架構上做佈署,包括AWS和自己的資料中心等。

新一代的雲平臺,把所有的雲都當作一種資源來使用,在其上跑應用,用Docker打包。只要資源都支持容器,應用可以佈署在任何地方。這特別適合業務爆炸式增長的公司,或想專注於業務的公司。不過目前好用的容器雲還沒做出來,Google和微軟等公司也都在發力。

那容器帶來了什麼樣的變革,以至這麼多大公司都在關注?

這可以對比流覽器對桌面作業系統的影響。十年前,上網用Windows還是Linux還是很大的差異,而主要的改變來自流覽器,現在已經沒多少人在乎作業系統了。以此類比,容器雲可以讓IaaS被隨意切換,讓AWS或華為雲或阿裡雲都沒有區別,讓開發者主要關注雲的應用。這就是容器帶來了可能性。

在企業生產環境中落地Docker和容器雲

不過現在的情況是,很多公司一部分業務在公有雲上,一部分在企業的私有環境中。這時就更複雜了,怎麼在企業生產環境中落地Docker和容器雲呢?

根據一項調查,其中最主要的三個困難在於:存儲,網路與安全。這也是IT領域的老問題。可以看到,這裡沒有出現編排調度的問題,在企業眼中這不是一個重要問題。但結果卻是,編排調度的公司在國內有20多家創業公司之多。

要滿足企業的需求,要解決很多問題。企業要的是這樣一個容器雲:要解決資源、容器作業系統,存儲,網路,分散式資料庫,存取控制,監控,編排調度,應用市場等各種模組。這需要一個全棧化的技術。

容器還有進階,即更進一步需要Cloud Native,即原生雲。它有三個特點:一是容器化,二是可動態編排調度,三是面向微服務。

總結來說,我們的觀察是,容器技術主要在美國,歐洲與中國(三年前日本還處於領先地位)。另外,開發人員及在生產環境中使用容器技術仍舊十分困難。

容器發展需要解決的問題

一是將遠期願景分解,讓它變得實用。細分為,一是應用從桌面到伺服器端的遷移,二是從傳統資料中心到公有雲的遷移,三是開發測試環境到生產環境的遷移。

這就要讓應用在公有雲、私有雲環境中都沒問題。而相應的解決方案,要把存儲、網路、安全、DNS、負載均衡(再加防火牆)等問題解決。

第二,容器落地要從簡單場景到複雜環境轉化。簡單場景往往只有一個簡單的三層架構,負載均衡,加週邊應用和資料庫。但企業裡會有監控、日誌,資料庫等問題,部分公司會因此往前延伸一步,不過這三個也有些簡易的解決方案。

稍微複雜的場景是如下圖:

有自己的IaaS,有不同的資源池;容器網路也不一樣;基礎服務等也有服務發現,健康檢測,負載均衡等;存儲上要支援NFS、CEPH等;還有應用服務商店和API等等。

但這其實也只是一個比較簡單的場景,還有更複雜的。可以說,容器在企業的應用,從簡單場景到複雜場景,有很多問題要解決。

三是,容器要從資料中心領域向移動領域遷移。

這是因為如今手機的使用量大於PC,其上的應用也會更多,而容器正好是為應用而生的。當前的容器編排調度工具基本沒有考慮移動設備,只為資料中心設計。好消息是,Docker已經運行在ARM上。

另外,當把一個企業IT作綜合管理考慮時,容器平臺還要與諸多周邊系統對接。企業有很多東西沒有容器化,比如防火牆,資料庫,分散式存儲等,這些都需要相容。這就需要一個好的框架。

結合上面說到的問題,總體來看,我們認為容器技術在未來會有下面的幾個主要趨勢。

一是互聯網客戶對容器的使用已經很廣泛,而傳統的大中型企業在加快容器的使用,這也促進Docker等產品的成熟,只是目前成熟度還不夠。

第二是隨著Kubernetes和Docker Swarm的進步,以及各大公有雲公司如微軟Azure、Google雲和AWS提供對這兩者的支援,開發和定制Kubernetes分發版的提供商要找到真正的增值。

三是簡單易用的公有容器服務會變得流行。