隨著容器市場高速增長,每個業界供應商都在這一領域快速迭代,提供新功能。實際上,因為發展太快,本文的觀點很可能在兩個月后就過時了。兩個月前我在舊金山參加2015 DockerCon,從那以后,每個廠商都有了重要新功能發布或者新的合作關系。此文是在最熱的容器領域,對主要供應商的重要發布進行回顧,包括 Docker、CoreOS、Kubernetes和Mesos。
Docker
在DockerCon上Docker公司宣布他們接下來將著重關注Docker在生產環境中的應用,并提出了『可編程互聯網』的概念,致力于打造下一代互聯網平臺;最近Docker又發布了新的1.8版本,具有如下特性:
Docker Toolbox。Toolbox 是一個運行在Windows、Mac和Linux上的工具集,大幅度簡化了Docker的安裝。在此之前,Docker提供了一個叫 Boot2Docker的工具,經常需要調錯才能成功運行。我個人從來沒有在我自己的筆記本上運行成功過Docker,而我一般都是在Google Cloud Platform上的VM中安裝Docker,但是現在使用Toolbox在PC上工作非常爽。當然在初始階段遷移舊Virtual Box時碰到不少問題,但是我卸載了舊系統,重裝Toolbox,一切都正常了。這對于想在自己電腦上安裝配置Docker的開發者來說無疑是個好消息。
Docker Content Trust。 Docker在DockerCon上承諾將會專注于改進安全性,這樣企業可以將Docker用于生產環境,內容可信是朝這個方向邁進的重要一步。內容可信在Docker鏡像中加入公有、私有秘鑰對,用戶可以驗證Docker鏡像的發行者,保護鏡像不會被偽造、重放攻擊和密鑰泄露偽裝攻擊。內容可信采用了Notary和TUF框架,以期能夠建立一套分布式應用的最佳實踐。
Docker Engine 1.8。網絡和存儲抽象會是下一個整合進容器的主要功能增強。Docker Engine 1.8是走向存儲抽象的第一步,在這一版中,Docker還發布了許多存儲和日志驅動的插件,另外還發布了很多CLI和運行時的增強。
Docker Registry和Compose改進。Docker還發布了很多Registry和編排的增強功能,這些增強大多專注于提高性能和可用性。
最新的Docker發行版在兩個月內一下子發布了這么多令人印象深刻的功能增強,不禁令人贊嘆不已。
Kubernetes
谷歌的Kubernetes非常迅速的占據了容器市場。不管客戶在用Docker還是 Rkt,Kubernetes都是事實上管理運行大規模容器集群的標準。盡管Docker有Swarm和Compose也是做這個用的,但是如果碰到容器擴展性問題時,甚至Docker也會告訴你Kubernetes是正確的選擇。谷歌目前也在快速迭代各種功能,下面列出的是Kubernetes中一些重要的發布信息:
支持OpenStack。谷歌宣布正式加入OpenStack基金會。這對私有云和混合云領域的公司來說無疑是個好消息。另外,Kubernetes現在可以運行在OpenStack上,而且一些私有云方案也跟Kubernetes整合在一起。期望很快能看到這一領域的更多進展。
Kubernetes 1.0 發布。1.0 是一個里程碑。Kubernetes現在可以用于生產環境,并推出了很多引人注目的新功能,例如,集群管理、高性能和擴展性、計算、網絡和存儲層的抽象服務,一些重要客戶,例如Box和Redhat,都開始應用這些新功能。同時,Kubernetes也公布了和CloudBees、CoreOS的合作關系。借助于Kubernetes,客戶可以在Google云平臺上運行一個可管理的容器服務,或者在任何共有、私有云上運行Kubernetes。
CoreOS
Docker并不是唯一一個容器技術公司,CoreOS也是另外一個重要的參與者。CoreOS有一套容器相關的生態系統。Rkt(發音為“Rocket”),是與Docker容器直接競爭的產品。Alex Polvi,CoreOS CEO,之所以開發了Rkt,是因為他不喜歡Docker的安全機制。Docker使用了一個集中式的daemon,造成所有命令都需要特權級訪問(“root access”)。而Rkt則允許用戶在Docker中創建容器,而在生產環境中運行Rkt。
今天Docker吸引了太多人的眼球,同時CoreOS也表現近乎瘋狂。以下是關于CoreOS的一些發布功能:
etcd 2.1。etcd是一個開源的、分布式的、鍵值一致性的數據庫,用于分發配置、發現服務和調度同步。在這一版中,CoreOS發布了很多更新,例如認證、授權API、傳輸穩定性,etcd服務器之間性能提高、增強集群穩定性等。
Tectonic。 CoreOS發布了一個新服務,用于運行容器平臺的商業發布。包括運行容器(Docker、Rkt和Kubernetes)所需模塊的所有支持和服務。有了這個新服務,可以用容器運行可擴展分布式應用并且有7x24支持服務。他們也給客戶提供最佳實踐培訓。這個新服務現在是試運行,但很快會正式發布。
與Mirantis(OpenStack)的整合。緊跟Kubernetes和OpenStack的發布,Mirantis宣布與Tectonic整合。 這是容器與私有云結合重要一步。如我前述,容器是實現混合云的關鍵技術。Mirantis的整合使得高效設計公有云、私有云和混合云成為可能。推薦重點關注。
Apache Mesos
Mesos是容器領域另外一個主要參與者。Mesos用于管理和調度大規模應用(例如Hadoop、Spark,ElasticSearch和其他大數據技術)的部署。Mesos整合了Docker、Rkt和Kubernetes。以下列出Mesos的一些重要特性:
Mesos 0.23發布。最新的版本有很多引人注目的功能改進和新特性。Mesos現在提供創建持久化卷的能力,這個功能對基于狀態的服務來說是個利好消息,例如HDFS、Cassandra等。資源利用率的優化,可以避免服務的過度調用。其它關于安全、性能和監控的增強特性也隨之發布。
Mesosphere 0.9.0發布。有很多增強和新特性,包括與Docker整合,存儲方面和ZooKeeper整合等等。
Mesos將登陸Windows平臺。 MesosCon上,Mesosphere公開了在Windows Server 2016預覽版本上運行Mesos的Demo。Mesosphere聯合創始人表示,現實中許多企業在數據中心是同時使用Linux和Windows。所以,Mesos用戶希望能使用一個既能在Linux機器又能在Windows Servers上運行的容器管理工具來執行任務。
總結
容器技術的發展異常迅猛,并且所有的方案都是開源的。建議不參與開源的公司也重點關注這些技術。容器作為一個獨立產品或者服務,兩年前還不存在,現在已經有四家供應商以難以置信的速度提供看先進的方案。另外還有很多初創公司在填補著安全、容器管理、監控等方面的空白。所有這些新公司都是開源的。DevOps和開源開發模式的組合使得這些公司得以持續飛速發展,而這些是閉源公司不可想象的。盡管只有兩年的發展,但是基于微服務架構的容器方案從茵茵綠草成長為參天大樹只是時間問題。