1. 程式人生 > >Docker首個國內合作商,阿里云何以認定容器技術將成主流?

Docker首個國內合作商,阿里云何以認定容器技術將成主流?

編者按

10月13日,在2016杭州·雲棲大會上,全球知名的容器技術公司Docker與阿里雲宣佈達成戰略合作,雙方將在容器服務領域進行緊密合作,阿里雲稱其將為客戶提供更加先進的雲上應用管理服務。雙方稱在開源容器技術以及其發展方向共同努力,為客戶提供本地化Docker的企業級支援和諮詢服務。

Docker自問世三年來,社群不斷壯大,專案升溫之迅猛在開源社群中並不多見,並受到IT業內的廣泛關注。不過,Docker在國內真正的大規模應用仍然不多,目前國內Docker的使用狀況還尚未達到生產環境化的普及。雖然有少數研發能力強的網際網路公司已經積累了兩三年的Docker技術儲備並用於實際生產環境之中,同時還有一些Docker技術創業新銳公司;但是對於一些傳統企業而言,由於業務需求完全迥異、技術包袱長久積累、技術團隊人力不足等原因,Docker這項技術的使用只停留在開發嘗試尚未擴充套件甚至觀望的狀態。

Docker選擇阿里作為中國的首個官方合作伙伴,但這並不是Docker第一次和IT企業合作。2016年Docker動作頻頻,6月合作HPE,9月牽手微軟。此前也早與AWS、IBM達成合作協議。這些合作也都涉及到商用版的Docker Engine和Docker Datacenter。

阿里研究員畢玄表示阿里內部對容器技術積累已有五年,隨著Docker的2013年問世與發展,阿里雲在2015年底推出了Docker容器服務,並於今年上半年決定將電商核心應用的基礎平臺轉向Docker技術。阿里雲彈性計算總監張卓表示阿里還會與Docker生態圈中的其他創業公司進行合作。阿里雲產品技術負責人李津承認該合作或將給創業公司帶來一定壓力,但是創業公司可以通過深耕技術創新以增加競爭力;並稱未來兩年內雲端計算和相關產品市場將面臨洗牌的殘酷競爭,但是競爭之後,除了雲平臺提供商,還會鳳凰涅槃般地出現一批新的軟體服務巨頭。

兩家公司為什麼會進行合作?合作是怎樣的,又會給容器生態帶來怎樣的影響?InfoQ採訪了阿里雲產品技術負責人李津,他就InfoQ一系列問題發表了看法。國內容器技術的創業公司又如何看待這個合作?幾家公司的創始人對阿里和Docker的合作表示認同,認為這將助力國內容器生態並有利於基於Docker的創業服務發展。

阿里雲之解讀

以下來自InfoQ對阿里雲產品技術負責人李津的採訪整理。

阿里怎麼看待Docker技術

Docker其實類似於早期的LXC,是由namespace和CGroup兩個技術疊加出來的,但又不完全是。Docker的最大價值其實是讓DevOps開發和運維的一體化能夠輕鬆落地。早前DevOps很難落地,因為去部署、釋出、運維和管理那些應用的過程很麻煩,所以在雲上面衍生了大量的編排類的服務出來。Docker通過映象分發,可以快速部署;這種把配置和環境解耦的方式,讓快速部署變成可能。這就意味著Docker的彈性非常好,而且速度很快。他可以快速擴容部署一百臺,然後再迅速縮容到一臺,隨後再快速部署一百臺;這是Docker從誕生開始的優點,所以運維的人很喜歡他。

Docker的出現改變了很多過去的開發形態。Docker是一種非常輕量級的開發和部署環境的形態,它提高了開發效率。此外,因為Docker會適配很多東西,所以底層虛擬化變得更簡單。我們認為Docker在未來3—5年裡面,變成一個非常主流的開源技術和商業生態,這個時候很多開發者會在上面做牽引,搬到Docker上面去。這種模式會變成一種方向,而這個方向的代表就是Docker。

不過在Docker的使用有兩個問題,第一個是使用時需要拉取Docker映象,第二個是後期維護的比較困難。因為映象分發會遇到一個儲存的問題,映象檔案非常大,儲存在哪裡?存在儲存上。之所以出現Docker雷聲大雨點小的現象,是因為中國開發者使用Docker Hub服務不是很方便,所以看起來它很熱,但是使用起來就不是那麼簡單。而對於大公司,開發規模動輒幾百上千人,Docker映象的訪問也會變成一個瓶頸,這是非常討厭的事情。

Docker今天的原生態服務在中國沒有用起來,大家都是拉碼下來之後自己去搭建。很多線下的專有云或者私有云去使用Docker的時候,後期的維護並不比不用Docker簡單。

基於這些看法,不論是今天我們和Docker的合作,還是讓Docker去支援我們的OSS,都是為了提升當前的產品、效率和能力,我們希望以一種平臺式的方式分享出來。我們必須跟Docker官方合作,因為目前阿里雲我們是全球第三的概念產品。這種官方服務,會提供出來今天真正的那些技術能力,而不是簡單的改碼,簡單改碼就沒有意義了。

關於此次合作

一、三方面內容 
這次合作主要包含以下幾方面的內容:

  • Docker公司選擇阿里雲平臺作為Docker Hub在中國運營的基礎服務。Docker Hub等服務落地中國,可以更好地服務國內開發者,促進中國技術社群的成長。得益於阿里雲強大的雲基礎設施,將會極大提升國內使用者對Docker服務的訪問體驗。
  • 阿里雲也是首家在國內獲得Docker Engine CS(商用版)以及Docker Datacenter (DDC)銷售權,為Docker客戶提供企業級支援和諮詢服務。阿里雲將利用自己的技術能力和市場影響力推動容器技術在國內企業落地,和合作夥伴一起幫助企業利用容器技術提升效率、實現業務創新。
  • 阿里雲將成為Docker官方支援的雲服務提供商。Docker可以更好地支援阿里雲能力,提升使用者體驗,把阿里雲打造成為容器執行的最佳平臺之一。

二、關於Docker Hub的詳情 
關於Docker Hub,阿里雲和Docker公司會一起攜手合作,具體時間表之後會官方釋出。阿里雲會成立相應的團隊,一方面幫助Docker服務落地中國;另一方面支援Docker商業化軟體的銷售、服務和諮詢等,和國內的合作伙伴一起在企業中推廣容器技術。

阿里雲不會對Docker Hub的官方映象做任何修改。使用者可以從Docker Hub中國站得到與現有Docker Hub中完全一致的、可信的Docker映象。

三、覆蓋私有云和公有云 
此番合作涵蓋了私有云和公共雲等領域。使用者購買的Docker Engine CS和DDC既可部署到自己的資料中心,也可部署在公共雲上。同時Docker將支援阿里雲作為認證的公共雲提供商。雲平臺可以提供了彈性的基礎設施,而Docker變革了軟體交付流程;有機的將二者結合起來將重新定義企業的IT基礎架構。

Docker具有良好的可移植性,可以輕鬆在不同環境中進行應用部署,這大大加速應用上雲過程。同時可以方便地實現混合雲方案,當業務出現峰值流量時,可以快速將本地資料中心應用擴充套件到雲端。在阿里雲發起的中國容器調查報告中,70%的使用者選擇將Docker用於公共雲,而45%的使用者會選擇利用容器構建混合雲方案。

在公共雲上,阿里雲容器服務在相容社群標準的基礎之上提供了和阿里雲能力的深度整合和優化。容器服務提供的儲存外掛可以滿足不同應用負載對儲存的需求;利用VPC的網路能力,提供了更加高效的容器互聯方案,並且支援混合雲;利用ECS,支援容器叢集節點的彈性伸縮,可以輕鬆應對峰值流量。同時容器技術不是銀彈,無法解決一切問題,容器服務可以方便地組合容器和雲服務實現一個完整的應用棧,比如容器中的Java應用使用由RDS提供的高可用、高效能的資料儲存能力。

未來阿里雲會繼續推動自身的容器服務發展,進一步推動虛擬化和容器技術的整合。除了對使用者直接提供服務外,容器服務還會為阿里雲其他的雲服務提供應用基礎環境。比如在阿里雲“輕計算”中,儲存服務了提供一系列即開即用的資料處理功能,比如視訊轉碼;而容器服務就是其底層的資源排程和執行系統。在深度學習應用中,傳統方式存在部署複雜、迭代緩慢的問題,而HPC和容器服務團隊一起攜手實現了支援GPU加速的應用快速部署、彈性伸縮和DevOps的全鏈路支援,極大提升了工作效率。

與傳統的硬體虛擬化技術不同,容器技術是作業系統級別的虛擬化。在Linux宿主機上,所有容器會共享相同的作業系統核心,只是通過namespace、cgroup進行隔離,並利用SELinux等安全策略限制容器內程序的許可權。目前而言,容器的安全、資源和網路的隔離能力都弱於虛擬化技術。在雲環境中為了保證使用者應用的安全和SLA,阿里雲容器服務結合了虛擬化和容器技術。使用者的容器應用是執行在使用者獨享的虛擬機器之上,這樣就可以充分利用虛擬化技術來保障隔離性和安全。同時還可以完全複用成熟的虛擬機器熱遷移、儲存、網路等能力。

四、阿里雲的容器服務 
阿里雲非常關注容器,阿里雲在2015年底就推出了容器服務,並在2016年5月正式商業化。容器服務為使用者在雲端提供了一個高效能大規模的容器應用管理服務,支援在一組雲伺服器上通過Docker容器來進行分散式應用的部署、更新和彈性伸縮。

容器服務在產品定義之初就制定了全面擁抱開源生態、深度整合阿里雲自身能力的目標。容器服務完全相容Docker API和Docker原生編排技術(Docker Swarm/Compose),可以方便地和三方工具整合並複用任何Docker映象和Docker Compose模板,這也將大大降低使用者的學習成本。在此基礎上,充分實現了容器和阿里雲能力的整合。比如利用Docker的Volume和網路外掛,實現了對阿里雲端儲存服務(檔案儲存、物件儲存等),網路能力(比如VPC)的整合。除此之外,容器服務在資源排程、微服務支援等方面有很多獨到之處,而這些擴充套件能力大多是在Docker技術框架下利用宣告式的方式為使用者提供出來的,比如使用者可以簡單地在容器啟動引數中新增label,就可以描述應用的可用性約束(比如跨可用區部署)或者操作SLB實現服務路由。

在和Docker公司的討論中,Docker公司專家非常讚賞阿里雲在相容Docker方面所做的努力和創新,這非常吻合Docker社群技術的發展戰略,充分體現了雲+容器的獨特價值。

阿里雲容器服務團隊會推動Docker社群對阿里雲的支援,比如我們會將之前為阿里雲端儲存、網路等提供的外掛逐漸開放到Docker社群,這將大大提升容器應用在雲端的能力。同時阿里雲團隊也會更多參與到Docker社群中推動Docker Engine的開放性,允許通過合理設計的擴充套件點支援不同應用型別需求。

阿里如何看待使用者對Docker商業化軟體的私有定製需求?每個企業都有自己獨特的需求,所以定製能力和可擴充套件性是企業軟體的必備能力。

一方面,Docker Engine本身提供了擴充套件機制來應對應用執行和運維的多樣化需求,比如儲存、網路、日誌等。在Docker商業化產品上也提供了一些擴充套件點,比如應用的路由和負載均衡等。

另外一方面可以使用者或者ISV可以通過容器化的解決方案來滿足企業的特定需求。比如可以部署一個容器化的Jenkins服務來支援企業的CI/CD流程,等等。Docker公司、阿里雲和三方的軟體商、合作伙伴都會為企業提供定製化的解決方案。

阿里看Docker的生態發展

一、與國內Docker創業公司是同路人 
國內現在有很多Docker創業公司,所有國內容器的創業公司都是我們的同路人,因為我們都相信容器技術的價值,並一起推廣容器技術在國內的普及和應用。隨著Docker落地中國,更多開發者可以接觸到容器技術,而更多的企業會開始基於容器技術實現業務創新,這都將大大加速容器技術成熟和市場的擴充套件。

容器基礎設施和商業落地本身就意味著更多的創新機遇。在美國的容器初創企業的生態非常豐富:容器基礎服務(儲存、網路),管理服務(監控、安全),應用服務(Serverless、大資料、機器學習、IoT),開發服務(DevOps)等風起雲湧。同時容器生態的成熟將促進相應的培訓、諮詢、實施等服務產業的健康發展。阿里雲願意和國內的容器創業公司一起推動這次技術變革和產業鏈升級。

二、致Docker創業者的一些建議 
阿里雲彈性計算總監張卓曾在雲棲大會上表示“比起來單純地做Docker解決方案,更好的思路應該是深耕Docker生態圈中的技術創新”。我非常認同張卓的觀點,由於平臺化公司自身擁有良好的規模優勢,並可以迅速整合自身能力和上下游產業鏈,技術初創公司只有深耕技術創新才能擁有自己在市場上獨特的定位和價值。

我們知道,對於初創技術公司,要有自己的核心競爭力,並在自己擅長的垂直領域迅速建立競爭門檻並形成規模效益才能獲得長遠的成功,同時要借力推動生態的建立。

Docker公司就是一個典型的例子,作為一個初創公司,他首先利用簡化的使用者體驗迅速建立起容器應用社群,很短的時間裡積累了大量的使用者和Docker化應用。之後通過一系列對業內頂級團隊的收購,不斷實現自我進化,擡高了競爭門檻,從而確立了自己的技術領導地位。同時,Docker公司也在和雲平臺和IT企業公司的合作一起拓展生態。這次Docker公司選擇阿里雲作為合作伙伴,就是希望借力拓展國內市場而非自己完成所有的工作。

談到創新的機會,Docker公司的創始人 Solomon Hykes說過 “Nobody cares about containers, it's the application that matters!” 這句話非常有道理,容器只是一個技術,而應用才是王道。我想信越來越多的容器創新將圍繞著應用、解決方案創新而出現。

三、願容器技術生態繁榮開放 
阿里雲非常希望看到一個繁榮、開放的容器技術生態,我們非常歡迎各種編排技術在阿里雲落地。阿里雲做了很多工作來推動容器技術在中國落地,包括對Docker等開源社群的支援。

Docker是目前容器引擎的事實標準,尤其目前超過40萬的Docker映象更是其最大的一筆財富。其他容器引擎比如CoreOS的Rocket也會有自己的細分市場。開源社群OCI(Open Container Initiative)也在推動開放的容器映象和容器互動標準。在2016年10月, OCI的參考標準的1.0 RC版釋出,我們也期待在這個開放框架下能夠帶來更多的創新。

在容器編排領域,目前Kubernetes、Mesos和Docker Swarm三雄爭霸,各有所長,各有適合的場景和活躍的技術社群在背後支援。從技術上而言Kubernetes對微服務應用的支援比較完整;Mesos在大資料領域目前一枝獨秀;Docker Swarm出現雖晚,但強在易用性和與Docker生態的良好相容。一方面,使用者應該根據自己的需求和技術能力選擇合適的技術;另一方面技術的良性競爭也會讓使用者收益,比如K8S最新的1.4中大大簡化了部署複雜度,而Docker Engine內建編排能力也不斷增強。

四、容器技術之於雲端計算 
關於PaaS (Platform as a Service)每個人都有自己的定義,我們先給出我們的理解。PaaS為應用提供了一個支撐環境,讓使用者關注於應用自身,而平臺會通過自動化的方式解決應用部署、伸縮等複雜性

阿里雲一直基於容器探索PaaS服務領域,從早期基於LXC到現在基於Docker技術。一方面,阿里雲已經有一些服務化的基礎產品供大家使用,如容器服務、API閘道器、函式計算和彈性web等等。另一方面,我們也會通過適配阿里雲的計算、儲存和網路等能力來幫助客戶在阿里雲上部署開源的PaaS產品,如Cloud Foudry、OpenShift等。

從前PaaS的發展沒有達到人們預期的一個重要原因是:傳統的PaaS有很多限制,使用者需要根據PaaS平臺的要求來調整、改變自己應用的開發和運維流程。而Docker提供的交付和部署的抽象化和標準正好可以解決這方面的問題。我們認為CaaS(Container as a Service)是在PaaS領域一個新的探索,它更好的平衡易用性和靈活性的二者關係。一方面Docker技術在軟體生命週期中提供一個標準化的方法來進行開發、交付和運維,在簡化流程的同時優化效率;另一方面它又提供了良好的靈活性,允許使用者自由的選擇程式語言框架,並和自己的DevOps流程方便地整合。

以阿里雲容器服務舉例,很難說他是一個純粹的CaaS,首先它管理的不僅僅是Docker映象或容器。更重要的是它從應用的視角關注如何組合容器和雲服務來提供應用生命週期的支援。它在相容Docker Compose編排模板和Docker Swarm叢集管理能力的基礎之上,提供了擴充套件來支援服務註冊、發現、路由,監控,彈性伸縮等微服務架構需求,並提供了良好的DevOps能力,比如支援多種釋出策略(滾動升級、藍綠髮布)等,提供一站式應用生命週期管理。

我們可以看到傳統PaaS和CaaS技術也在融合,我們完全可以不侷限於概念之爭,而是從解決開發者的痛點出發,推出不同垂直領域的服務為使用者提供價值。

從應用架構的角度,容器技術可以方便地支援微服務架構實現應用的現代化,更加靈活的應對變化和彈性擴充套件。在軟體生命週期管理上面,容器技術可以幫助把DevOps等最佳實踐落地成可運用的標準化工具和框架,大大提升開發效率,加速迭代。在基礎架構層面,利用容器技術帶來的可移植性,幫助開發者和企業更便捷的上雲和遷雲,讓應用在自有資料中心和雲端實現動態遷移,擴大並進一步催熟雲端計算市場。同時隨著容器技術和已有云計算的計算、儲存、網路的進一步融合,將推動從傳統以基礎設施為中心,向以應用為中心的IT架構轉變。

站在雲廠商角度看,容器技術是對雲端計算、虛擬化的良好補充,可以提供了更加敏捷的軟體交付方式,促使雲端計算廠商逐漸將業務從IaaS層演進到PaaS等應用層解決方案,大大豐富雲端計算的場景。

容器創業公司觀點

數人云創始人王璞:容器已經成長為一個生態,Docker、阿里雲、容器初創公司都是其中重要角色。多元化的容器技術, 雲端計算的巨頭參與,以及容器創業公司的垂直專注,都會推動開源容器生態的快速發展。目前還處在成長初期的容器市場,Docker和阿里雲兩個巨頭合作無疑會推動容器相關市場快速發展。同時,容器相關生態也在動態變化中,更多的容器開源技術不斷湧現。容器生態中的各個角色包括創業公司在內都會有更多的發展空間。

才雲創始人鄧德源:阿里與 Docker 的合作將進一步推動國內容器市場的發展,對創業公司而言實際上是一大利好訊息。就目前形式來看,儘管國內市場體量大,企業普遍對容器感興趣,但真正敢於將容器技術落地在生產環境的企業畢竟是少數。相信阿里與 Docker 的合作會極大改善這種局面。容器僅僅是構建整個平臺的基石,這次的合作實際上是進一步鞏固了該基石。如果創業公司的切入點是在這個平臺能力之上提供SaaS服務,跟Docker實屬上下游的關係,那麼對於這部分創業公司是有百利而無一害的。

好雨雲創始人劉凡:容器技術市場正處於成長初期,阿里雲和Docker達成戰略合作,不僅證明了容器技術方向上的正確性,為整個容器生態的快速發展帶來了巨大的推動作用,也為專注容器技術的創業者提供了更大的發揮空間。另外一個不爭的事實是,容器技術這一市場體量足夠大、機會足夠多,在這個生態中被大魚吃掉的往往不是小魚,而是懶魚,短期內幾乎很難出現一家獨大的局面。Docker的確是一種非常優秀的容器技術,但在整個容器結構上,編排工具的重要性不容忽視,甚至要超過容器技術本身。以Docker為代表的容器技術+以Kubernetes為代表的編排工具才是目前雲端計算的方向所在。