1. 程式人生 > >雲端計算模式:Docker正掀起個性化商業革命

雲端計算模式:Docker正掀起個性化商業革命

從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已經迅速成為國內外各大雲端計算廠商及開發者手中的至寶。在一片熱火朝天之中,新的革命已經悄然來臨。”

附錄:目前在中國從事Docker創業的公司

靈雀雲,創始團隊成員是微軟Windows Azure的元老級核心技術成員,曾主導全球第一代雲端計算平臺研發,其CaaS容器即服務具備企業級和全球化優勢;

數人云,創始團隊成員來自美國谷歌的廣告核心技術部門,主打Mesos+Docker的CaaS容器即服務,儘管Mesos有不少問題,但也是到目前為止成功在生產環境中應用過的管理工具;

時速雲,創始團隊成員來自IBM Bluemix和阿里雲盾核心技術團隊,其CaaS容器即服務帶有對企業級私有云環境的技術優勢;

DaoCloud道客雲,創始團隊成員來自EMC和VMware核心技術團隊,其CaaS容器即服務主打混合雲和持續整合;

Hyper,創始團隊成員來自中國移動研究院雲端計算技術團隊,其CaaS容器即服務主打在hypervisor虛擬機器上執行Docker引擎,融合了Docker和虛擬機器的優點。