從2008年開始進入公眾視野,到亞馬遜與微軟于近期獲得1億美元的美國聯邦管理局云計算合同,云計算整整走過了7年。7年間,以第一代云計算技術為基礎的移動計算、社交網絡、大數據等新信息技術在全球商業領域掀起了一場新商業運動,這場商業運動創造出以消費者和用戶為核心的個性化商業模式。
從去年開始席卷云計算領域的Docker技術風潮,恰恰就是推動企業走近消費者和用戶的一大步。本文通過深入分析,帶你了解什么是Docker以及Docker將如何改變云計算,進而孵化出能夠工業化生產個性化產品與服務的下一代商業模式。
什么是Docker?
答案是:Docker是下一代的云計算模式。
Docker翻譯成中文是“碼頭搬運工”的意思,那么“碼頭搬運工”搬運的是什么?是標準化的“集裝箱”,這個標準化“集裝箱”里裝的是應用程序。“碼頭搬運工”在世界上任何提供了標準化接駁的“碼頭”就可以接收標準化“集裝箱”,然后快速安裝、運行和管理“集裝箱”里的應用程序,而提供標準化接駁“碼頭”的就是各類云服務商。借此,Docker把云計算環境下的應用程序開發和分發帶進了工業化生產的時代,這就是Docker的意義。
在Docker環境下,程序開發者按一定的打包標準生產程序,生產出來的標準化程序被裝進標準化的容器(Container)里,也就是“集裝箱”。世界各國的云服務商都提供了標準化的“碼頭”,可以很容易地接收標準化的容器和里面的應用程序,再把這些標準化的應用程序以即插即用的方式組裝到自己的個性化解決方案里,然后提供給最終用戶。而與Docker“集裝箱”對應的標準化程序架構,就是大家所熟悉的微服務。
在Docker時代,第一代云計算中的IaaS層與PaaS層合二為一成為了CaaS(Container-as-a-Service,即容器即服務),這就是下一代云計算架構。基于CaaS的下一代云計算架構賦予了企業強大的工業化生產通用軟件的能力,再根據消費者和用戶的個性化需求,快速組裝通用軟件形成個性化的解決方案,這就是下一代的商業模式。
容器時代的開拓者們
根據美國市場調查公司Synergy Research于2015年7月發布的Q2數據,全球云服務市場如今已經牢牢被四大廠商所壟斷,AWS亞馬遜云、微軟、IBM和谷歌占據全球54%的云服務市場份額,而四大廠商的平均云計算業務年增長高達84%,相比之下市場上其它云計算廠商只有33%的年增長。其中AWS亞馬遜云在今年第二季創造了18.2億美元的營收,同比增長81%;而微軟已經向其全球數據中心投入了150億美元。顯然,作為第一代云計算產業中的四大廠商,特別是谷歌、亞馬遜和微軟三大公有云已經遠遠將其它云服務商甩到了后面,而這三家自有的海量資金及融資能力則牢牢地建立起了第一代公有云的市場格局。
2014年和2015年初,第一代主流公有云服務商核心技術團隊中的華人技術專家開始不約而同地離開原來的公司,紛紛回到國內創業容器/Docker領域。這其中包括來自微軟Windows Azure核心技術團隊的靈雀云、來自谷歌廣告業務核心技術部門的數人云、來自EMC和VMware核心技術團隊的DaoCloud道客云、來自IBM Bluemix和阿里云盾核心技術團隊的時速云,以及來自中國移動研究院云計算技術團隊的Hyper云。
這批創業公司的共同特點是創始人均來自第一代公有云核心技術團隊,他們一方面發現了容器/Docker是下一代云計算的主流趨勢,另一方面他們離開原有公司也是因為第一代公有云已經基本成熟。“為什么說云計算人才都在西雅圖?這是因為谷歌、亞馬遜云和微軟都在西雅圖,而云計算的技術能力主要來自運維的經驗,具有運維百萬臺以上服務器經驗的技術人才只有谷歌、亞馬遜云和微軟三家而已。”靈雀云創始人、原微軟Windows Azure美國核心技術團隊容器項目負責人左玥如是表示。靈雀云聯合創始人、CTO陳愷也來自美國微軟Windows Azure核心技術團隊并曾負責Windows Azure的全球調度系統Fabric Controller,陳愷經歷了Windows Azure從無到有、從幾百臺服務器到如今百萬臺服務器的全過程。
另一家數人云的創始人王璞來自美國谷歌廣告業務部門核心技術團隊,他告訴記者全球公有服務商中擁有服務器數量第一的是谷歌,成立于1998年的谷歌在全球運維著上千萬臺服務器;其次是AWS亞馬遜云和微軟Windows Azure,他們各自擁有和運維著數百萬臺服務器;再次是IBM SoftLayer擁有和運維著數十萬臺服務器;最后是各個國家的區域性公有云服務商,擁有和運維著從數百臺到數千臺不等的服務器,從運維服務器的規模就能直接判斷公有云服務商的運維經驗和技術水平。
進化到容器時代
容器(Container)是什么?這必須提到一個人和一家公司。
這一個人就是著名的微軟第二任也是最后一任首席架構師Ray Ozzie。2005年10月,剛加入微軟不久的Ray Ozzie發布了一份名為“The Internet Services Disruption”(互聯網服務時代來臨)的備忘錄,這份備忘錄的主要目的是推動微軟整體向互聯網服務轉型。在這篇文章中,Ray Ozzie提出著名的由面向服務軟件架構所實現的“無縫用戶體驗”,并將之解析為 “無縫溝通”、“無縫生產力”、“無縫娛樂”、“無縫市場”、“無縫操作系統”、“無縫解決方案”和“無縫IT”,這其中的核心就是“無縫操作系統”、“無縫解決方案”和“無縫IT”。
在“無縫操作系統”、“無縫解決方案”和“無縫IT”實踐方面,谷歌是一個先行者。著名的博主、原亞馬遜中國研發經理、阿里巴巴資深專家陳皓有一個形象的比喻,云計算“就是要夏利車開出奔馳車的感覺”。谷歌就是把“夏利車開出奔馳車”的骨灰級玩家,說它是互聯網公司和互聯網技術的鼻祖都當之無愧。王璞介紹說谷歌在全球運維了上千萬臺的服務器,這個規模已經遠遠超出了很多現有技術供應商的上限,因此谷歌自己發明了諸多技術用于管理千萬臺規模服務器,“比如谷歌研發了頂級的網絡交換機,就連思科都造不出來這樣的網絡交換機。原因很簡單,因為沒有相應的實驗環境。”谷歌自1998年成立至今已經研發和儲備了很多“核彈級技術”,但這些技術絕大多數都被谷歌封鎖,只能通過谷歌對外發表的學術論文找到蛛絲馬跡。
谷歌為了避免使用市面上昂貴的基于物理機的虛擬化產品,同時也是為了更快、更便宜的發布自己的軟件和服務,從一開始就研發了基于容器(Container)的新型虛擬化技術,通過這一技術簡化了谷歌全部服務運行所需要的底層操作系統環境。在2015年8月的CNUTCon全球容器技術大會上,有超過8年谷歌經驗的谷歌云平臺軟件工程師Dawn Chen介紹說,她8年半前加入谷歌的時候,那個時候谷歌剛開始研發容器技術,當時谷歌容器技術團隊加上她只有兩個人。如今谷歌所有的服務都運行在容器中,這包括了Gmail、地圖、GFS文件系統、MapReduce等。谷歌現在每秒會啟動大約7000個容器,每周會發布超過20億個容器。
谷歌實際上通過容器實現了“無縫操作系統”的愿景。稍微了解云計算的人都知道虛擬機在IaaS層的重要性,改變了虛擬機的方式就相當于改變了IaaS層的結構,這就是為什么說容器是下一代云計算模式的重要原因。容器本質上是一種操作系統技術,是基于操作系統的虛擬化技術。基于容器開發的應用軟件可以達到“一處開發、處處運行”的效果,而無關乎底層到底是什么樣的操作系統或什么樣的IaaS云服務環境,這實際上就是“無縫操作系統”的概念,與之相適應的就是“無縫解決方案”和“無縫IT”。
Docker一統江湖容器
Container與Docker是兩個英文單詞,Docker相當于是標準化了的容器,是容器技術近30多年歷史發展出的最新結果。
作為操作系統級的虛擬化技術,容器技術本身的歷史最早可以追溯到1982年。當時Unix推出的Chroot技術被公認為操作系統級虛擬化的起源,也就是容器技術最早的狀態。隨后,操作系統虛擬化技術與Linux內核及Linux操作系統的發展就交織在一起。因為操作系統虛擬化主要是針對廉價的X86服務器,因此英特爾和AMD服務器芯片技術的發展也影響了容器技術的發展。
1991年,芬蘭赫爾辛基大學研究生Linus Torvalds開發了針對386機器的Linux內核。在Linux內核的基礎上,不同的廠商開發了商用化的Linux操作系統。1995年1月RedHat成立了,推出了RedHat Linux即為Linux“發行版”。隨后,Linux內核不斷更新,一直到2007年的時候,發展比較成熟的容器技術才進入了Linux內核,而這還要利益于2005年前后英特爾和AMD相繼推出的64位服務器芯片。正因為有了CPU和內存芯片容量的大幅提升,才能在一個操作系統中虛擬出多個空間。2008年的時候,LXC也就是Linux容器開源項目成立,容器技術開始在業界廣泛使用,而這一年微軟也推出了第一代Windows Azure公有云。
2010年,一家叫作dotCloud的創業公司在美國成立了,dotCloud早期是基于LXC技術的PaaS平臺,它的理念是提供跨底層IaaS云、支持多種開發語言的開發云平臺。2011年初的時候,dotCloud獲得了1000萬美元的A輪融資。DotCloud 最早運行在AWS的EC2上,但隨著越來越多的公有云服務商進入,dotCloud的理念很難依靠一家公司專有的技術實現。于是,dotCloud的創始人在LXC的基礎上,對容器技術進行了簡化和標準化,命名為Docker后將其開源,同時推出了開放容器計劃(OCI),Docker和Docker開源社區隨后迅速火起來。2013年10月29日,dotCloud公司更名為Docker公司。隨后,多家廠商開始宣布支持Docker。截止到2015年8月,公共的容器包應用程序Registry(由Docker維護)在公共社區發行了超過180 000個應用程序。
可以說X86架構的PC服務器是異構硬件架構的贏家,Linux和Windows是異構操作系統的贏家,Docker為基于X86服務器和Linux/Windows操作系統的云數據中心提供了統一的虛擬操作系統,異構架構時代開始結束。
容器時代已經到來
除了創業公司外,大廠商也不甘示弱,紛紛快速跟進。去年10月份,微軟就宣布了在Windows服務器實現容器技術的計劃,宣布了與Docker的合作伙伴關系,以保證無論是在Linux還是在Windows Server,都可以獲得一個統一、開放的體驗。盡管Linux容器與Windows容器基于不同的操作系統而互不兼容,但容器管理器是統一的。近期,微軟進一步宣布將針對Windows Server 2016發布Windows Server容器和Hyper-V容器,兩種容器都支持Docker API和Docker客戶端。
另一家受Docker沖擊比較大的VMWare也迫不急待的在VMWare World 2014上就宣布了對Docker的支持。VMware對容器的態度是積極的,盡管容器和基于物理機的虛擬機VM之間存在著競爭,但VMware仍然致力于擴大與容器生態合作。在2015年8月底的VMWare World 2015大會上,VMware推出了一系列新的支持Docker的技術,并提出了未來全新的全面支持容器的技術架構,讓Docker程序也能運行在虛擬機VM里了。
此外,AWS亞馬遜云從去年11月推出了EC2容器服務AWS ECS,用戶不再需要安裝、運維、擴展集群管理基礎設施,而只需進行簡單的 API 調用就可以啟動和停止支持 Docker 應用程序,隨后阿里云等國內云廠商也推出了類似的服務。
國內華為一直是各類開源項目、基金會、組織、峰會的活躍贊助商。2015年,華為作為創始成員相繼加入開放容器標準組織OCI及CNCF(Cloud Native Computing Foundation),成為唯一在列的中國公司。華為開源能力中心的高級研發工程師梁辰曄在2015 CNUT全球容器大會上表示,華為積極參與了開放容器測試項目(OCT),并與OCI組織一起促進開放容器標準的實現和普及。2015年至今,華為在Docker社區的貢獻排名穩居前三位,而目前國內最早的Docker社區maintainer就來自華為。
除了華為、阿里等國內云服務商外,騰訊、百度、阿里、360、京東、搜狐等國內互聯網公司從2011年開始就已經開始全面實踐容器技術了。據京東云平臺首席架構師劉海峰在2015 CNUT全球容器大會上的介紹,京東從2014年10月開始引入Docker,2015年2月對Docker進行戰略立項,2015年618的時候在生產環境中發布了11000多個容器實例并接入了1000多個應用,從2015年8月開始的新數據中心全面采用容器技術。目前京東已上線Docker實例2萬多,預計到年底將翻番,屆時京東大部分應用程序將通過Docker的方式發布。未來京東的Docker愿景是通過Docker管理所有的機器,應用程序與物理資源之間完全解耦,實現全自動化的系統維護,研發人員可以集中精力于新應用程序的開發。
說了這么多,其實對于容器貢獻最大的還是谷歌。Docker技術就是用谷歌的Go語言編寫的,這是谷歌2009發布的第二款開源編程語言。谷歌每周發布2億多的容器,這讓谷歌有能力發明很多關鍵性的容器技術。其中包括容器管理系統,這個管理系統的第一個版本被稱為Borg,后續又發布了名為Omega的版本。通過這個管理系統,可以在谷歌的大規模集群資源上使用容器技術。后來業界根據谷歌的相關學術論文,模仿Borg開發出來的Mesos系統,正在被Airbnb、Twitter、蘋果Siri等在使用。
個性化商業:未來的企業都是軟件企業
財富500強藝康化工有限公司(Ecolab)董事長兼CEO Douglas M. Baker, Jr.在參與普華永道的“2015全球CEO調查報告”調研中表示:“任何一家公司都不能想當然的認為今天的業務能夠保證未來的成功。人們理所當然的認為大公司更加安全也更加穩定,但過去50年的事實證明了截然相反的結果。如果企業不能持續的快速變化,風險只能增加而不是減小。”
變化的能力顯然已經成為今后商業的核心競爭力。而隨著互聯網產業的影響力越來越龐大,互聯網對于傳統行業的入侵越來越劇烈、越來越深入,特別是中國“互聯網+”國家戰略的強力出臺,未來的企業將越來越被互聯網化。在這樣一個全面互聯網化的商業環境中,未來的企業將或多或少具備軟件的能力。除了未來企業的業務將部分或全面架構在互聯網上,企業為消費者和用戶提供個性化服務也有賴于軟件能力。
如果未來的企業都是軟件企業的話, Docker的重要性可想而之。硅谷老牌風投機構 Battery Vetures的技術專家Adrian Cockcroft在2015年中發布了一份《2015 年度云之白皮書:業界里程碑回顧與未來展望》,他曾是美國流媒體服務商 Netflix 的云平臺架構師,也是 eBay Research Labs 的創始成員之一以及Sun Microsystems 杰出工程師和高性能技術計算部門的首席架構師。他認為,Docker會逐漸成長為標準化的生產工具,這也從一個側面反映出 Docker的高接受度。
Adrian表示,Docker的挑戰是要謹慎管理生態系統,同時快速添加功能以支持生產環境的部署。目前為止,Docker已經阻止了一次生態系統的分裂。如今,甚至連芯片廠商英特爾公司也跨界加入了Docker的生態。今年5月,英特爾推出了以容器為中心的OS項目Clear Linux,目前已處于試驗階段,英特爾表明該系統未來可用于生產環境中。
可以看出,在邁向未來商業的過程中,將出現越來越多的跨界行為。根據Thomson Reuters的數據,在美國僅2014年11月就涌現了10,330起并購或收購,共代表了1.9萬億美元的交易金額。這些并購或收購更多的是為了擴大商業聯盟,通過并購或收購具有不同業務或能力的公司,創造單一公司所無法實現的商業價值。普華永道“2015全球CEO調查報告”顯示,美國約有44%的CEO將在調研后的12個月內啟動新的戰略聯盟。過去的商業聯盟主要是與供應商或用戶連接,而在未來越來越多的CEO將選擇與競爭對手、創業公司或不同領域的公司結為聯盟。
當然,包括DaoCloud核心團隊成員孫宏亮在內的多個Docker技術專家都在不同場合表示,Docker還在發展的早期,存在網絡功能薄弱、安全性、運行傳統業務困難等挑戰。正因為這些技術上的不成熟,于是在美國和中國出現了一批Docker創業公司,八仙過海、各顯神通,勇于布局下一代云計算以及下一代商業。
國內較早從事容器和Docker研究的浙江大學軟件工程實驗室(Software Engineering Lab,SEL)云計算團隊組建于2011年,專門搭建、分析和鉆研開源的云計算技術。浙大SEL團隊在其新出的《Docker—容器與容器云》一書中這樣寫道:“依靠容器技術支撐的Docker已經迅速成為國內外各大云計算廠商及開發者手中的至寶。在一片熱火朝天之中,新的革命已經悄然來臨。”(文/ITValue記者吳寧川)
附錄:目前在中國從事Docker創業的公司
靈雀云,創始團隊成員是微軟Windows Azure的元老級核心技術成員,曾主導全球第一代云計算平臺研發,其CaaS容器即服務具備企業級和全球化優勢;
數人云,創始團隊成員來自美國谷歌的廣告核心技術部門,主打Mesos+Docker的CaaS容器即服務,盡管Mesos有不少問題,但也是到目前為止成功在生產環境中應用過的管理工具;
時速云,創始團隊成員來自IBM Bluemix和阿里云盾核心技術團隊,其CaaS容器即服務帶有對企業級私有云環境的技術優勢;
DaoCloud道客云,創始團隊成員來自EMC和VMware核心技術團隊,其CaaS容器即服務主打混合云和持續集成;
Hyper,創始團隊成員來自中國移動研究院云計算技術團隊,其CaaS容器即服務主打在hypervisor虛擬機上運行Docker引擎,融合了Docker和虛擬機的優點。