
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對阿裡雲産品技術負責人李津的采訪整理。
<b>阿裡怎麼看待docker技術</b>
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官方合作,因為目前阿裡雲我們是全球第三的概念産品。這種官方服務,會提供出來今天真正的那些技術能力,而不是簡單的改碼,簡單改碼就沒有意義了。
<b>關于此次合作</b>
<b>一、達成三方面内容</b>
這次合作主要包含以下幾方面的内容:
docker公司選擇阿裡雲平台作為docker hub在中國營運的基礎服務。docker hub等服務落地中國,可以更好地服務國内開發者,促進中國技術社群的成長。得益于阿裡雲強大的雲基礎設施,将會極大提升國内使用者對docker服務的通路體驗。阿裡雲也是首家在國内獲得docker engine cs(商用版)以及docker datacenter (ddc)銷售權,為docker客戶提供企業級支援和咨詢服務。阿裡雲将利用自己的技術能力和市場影響力推動容器技術在國内企業落地,和合作夥伴一起幫助企業利用容器技術提升效率、實作業務創新。阿裡雲将成為docker官方支援的雲服務提供商。docker可以更好地支援阿裡雲能力,提升使用者體驗,把阿裡雲打造成為容器運作的最佳平台之一。
<b>二、關于docker hub的詳情</b>
關于docker hub,阿裡雲和docker公司會一起攜手合作,具體時間表之後會官方釋出。阿裡雲會成立相應的團隊,一方面幫助docker服務落地中國;另一方面支援docker商業化軟體的銷售、服務和咨詢等,和國内的合作夥伴一起在企業中推廣容器技術。阿裡雲不會對docker hub的官方鏡像做任何修改。使用者可以從docker hub中國站得到與現有docker hub中完全一緻的、可信的docker鏡像。
<b>三、覆寫私有雲和公有雲</b>
此番合作涵蓋了私有雲和公共雲等領域。使用者購買的docker engine cs和ddc既可部署到自己的資料中心,也可部署在公共雲上。同時docker将支援阿裡雲作為認證的公共雲提供商。雲平台可以提供了彈性的基礎設施,而docker變革了軟體傳遞流程;有機的将二者結合起來将重新定義企業的it基礎架構。
docker具有良好的可移植性,可以輕松在不同環境中進行應用部署,這大大加速應用上雲過程。同時可以友善地實作混合雲方案,當業務出現峰值流量時,可以快速将本地資料中心應用擴充到雲端。在阿裡雲發起的中國容器調查報告中,70%的使用者選擇将docker用于公共雲,而45%的使用者會選擇利用容器建構混合雲方案。在公共雲上,阿裡雲容器服務在相容社群标準的基礎之上提供了和阿裡雲能力的深度整合和優化。容器服務提供的存儲插件可以滿足不同應用負載對存儲的需求;利用vpc的網絡能力,提供了更加高效的容器互聯方案,并且支援混合雲;利用ecs,支援容器叢集節點的彈性伸縮,可以輕松應對峰值流量。同時容器技術不是銀彈,無法解決一切問題,容器服務可以友善地組合容器和雲服務實作一個完整的應用棧,比如容器中的java應用使用由rds提供的高可用、高性能的資料存儲能力。
未來阿裡雲會繼續推動自身的容器服務發展,進一步推動虛拟化和容器技術的整合。除了對使用者直接提供服務外,容器服務還會為阿裡雲其他的雲服務提供應用基礎環境。比如在阿裡雲“輕計算”中,存儲服務了提供一系列即開即用的資料處理功能,比如視訊轉碼;而容器服務就是其底層的資源排程和執行系統。
在深度學習應用中,傳統方式存在部署複雜、疊代緩慢的問題,而hpc和容器服務團隊一起攜手實作了支援gpu加速的應用快速部署、彈性伸縮和devops的全鍊路支援,極大提升了工作效率。
與傳統的硬體虛拟化技術不同,容器技術是作業系統級别的虛拟化。在linux主控端上,所有容器會共享相同的作業系統核心,隻是通過namespace、cgroup進行隔離,并利用selinux等安全政策限制容器内程序的權限。
目前而言,容器的安全、資源和網絡的隔離能力都弱于虛拟化技術。在雲環境中為了保證使用者應用的安全和sla,阿裡雲容器服務結合了虛拟化和容器技術。使用者的容器應用是運作在使用者獨享的虛拟機之上,這樣就可以充分利用虛拟化技術來保障隔離性和安全。同時還可以完全複用成熟的虛拟機熱遷移、存儲、網絡等能力。
<b>四、阿裡雲的容器服務</b>
阿裡雲非常關注容器,阿裡雲在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公司、阿裡雲和三方的軟體商、合作夥伴都會為企業提供定制化的解決方案。
<b>一、與國内docker創業公司是同路人</b>
國内現在有很多docker創業公司,所有國内容器的創業公司都是我們的同路人,因為我們都相信容器技術的價值,并一起推廣容器技術在國内的普及和應用。随着docker落地中國,更多開發者可以接觸到容器技術,而更多的企業會開始基于容器技術實作業務創新,這都将大大加速容器技術成熟和市場的擴充。容器基礎設施和商業落地本身就意味着更多的創新機遇。在美國的容器初創企業的生态非常豐富:容器基礎服務(存儲、網絡),管理服務(監控、安全),應用服務(serverless、大資料、機器學習、iot),開發服務(devops)等風起雲湧。同時容器生态的成熟将促進相應的教育訓練、咨詢、實施等服務産業的健康發展。阿裡雲願意和國内的容器創業公司一起推動這次技術變革和産業鍊更新。
<b>二、緻docker創業者的一些建議 </b>
阿裡雲彈性計算總監張卓曾在雲栖大會上表示“比起來單純地做docker解決方案,更好的思路應該是深耕docker生态圈中的技術創新”。我非常認同張卓的觀點,由于平台化公司自身擁有良好的規模優勢,并可以迅速整合自身能力和上下遊産業鍊,技術初創公司隻有深耕技術創新才能擁有自己在市場上獨特的定位和價值。
我們知道,對于初創技術公司,要有自己的核心競争力,并在自己擅長的垂直領域迅速建立競争門檻并形成規模效益才能獲得長遠的成功,同時要借力推動生态的建立。docker公司就是一個典型的例子,作為一個初創公司,他首先利用簡化的使用者體驗迅速建立起容器應用社群,很短的時間裡積累了大量的使用者和docker化應用。之後通過一系列對業内頂級團隊的收購,不斷實作自我進化,擡高了競争門檻,進而确立了自己的技術上司地位。同時,docker公司也在和雲平台和it企業公司的合作一起拓展生态。這次docker公司選擇阿裡雲作為合作夥伴,就是希望借力拓展國内市場而非自己完成所有的工作。
談到創新的機會,docker公司的創始人 solomon hykes說過 “nobody cares about containers, it's the application that matters!” 這句話非常有道理,容器隻是一個技術,而應用才是王道。我想信越來越多的容器創新将圍繞着應用、解決方案創新而出現。
<b>三、願容器技術生态繁榮開放 </b>
阿裡雲非常希望看到一個繁榮、開放的容器技術生态,我們非常歡迎各種編排技術在阿裡雲落地。阿裡雲做了很多工作來推動容器技術在中國落地,包括對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内置編排能力也不斷增強。
<b>四、容器技術之于雲計算 </b>
關于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等應用層解決方案,大大豐富雲計算的場景。
<b>容器創業公司觀點</b>
<b>數人雲創始人王璞:</b>容器已經成長為一個生态,docker、阿裡雲、容器初創公司都是其中重要角色。多元化的容器技術, 雲計算的巨頭參與,以及容器創業公司的垂直專注,都會推動開源容器生态的快速發展。目前還處在成長初期的容器市場,docker和阿裡雲兩個巨頭合作無疑會推動容器相關市場快速發展。同時,容器相關生态也在動态變化中,更多的容器開源技術不斷湧現。容器生态中的各個角色包括創業公司在内都會有更多的發展空間。
<b>才雲創始人鄧德源:</b>阿裡與 docker 的合作将進一步推動國内容器市場的發展,對創業公司而言實際上是一大利好消息。就目前形式來看,盡管國内市場體量大,企業普遍對容器感興趣,但真正敢于将容器技術落地在生産環境的企業畢竟是少數。相信阿裡與 docker 的合作會極大改善這種局面。容器僅僅是建構整個平台的基石,這次的合作實際上是進一步鞏固了該基石;如果創業公司的切入點是在這個平台能力之上提供saas服務,跟docker實屬上下遊的關系,這對于這部分創業公司是有百利而無一害的。
<b>好雨雲創始人劉凡:</b>容器技術市場正處于成長初期,阿裡雲和docker達成戰略合作,不僅證明了容器技術方向上的正确性,為整個容器生态的快速發展帶來了巨大的推動作用,也為專注容器技術的創業者提供了更大的發揮空間。另外一個不争的事實是,容器技術這一市場體量足夠大、機會足夠多,在這個生态中被大魚吃掉的往往不是小魚,而是懶魚,短期内幾乎很難出現一家獨大的局面。docker的确是一種非常優秀的容器技術,但在整個容器結構上,編排工具的重要性不容忽視,甚至要超過容器技術本身。以docker為代表的容器技術+以kubernetes為代表的編排工具才是目前雲計算的方向所在。