受益于容器即服務,或稱為CaaS方案的大規模涌現——它們和編排、鏡像存儲庫以及更多內建的東西直接競爭,這導致安裝以及管理Docker環境,現在已經很容易了。
本文解釋CaaS是什么,以及在選擇CaaS方案時需要關注哪些方面。
1.定義容器即服務(CaaS)
CaaS是將平臺及服務的稱呼應用到了容器領域。CaaS設計成為一種完整的,易于安裝的平臺,來托管并且管理容器化應用。
可以將CaaS看成一種Linux的發行版本。如果需要,用戶可以將不同的部分放在一起,創建出一種基于Linux的操作系統,然后自己構建并且配置。或者你可以使用類似CentOS或者Ubuntu這樣的Linux發行版,這樣所有東西都已經預組裝好了,開箱即可用。
容器即服務以類似的方式工作。它不會強制用戶搭建運行以及管理容器集群所需的所有東西,CaaS給用戶提供了可用的容器解決方案。
大多數CaaS系統包括如下核心組件:
一種基于Linux的支持容器的操作系統
一種容器運行時,通常是Docker Engine。
一種或者多種容器編排工具,比如Kubernetes,Swarm或者Mesos。
托管容器鏡像的容器存儲庫。
要注意CaaS和軟件即服務或者基礎架構即服務不同。CaaS方案并非嚴格限制在云上;一些CaaS平臺可以部署在本地。
2.CaaS可選方案
市場上可用的容器即服務方案在快速增長。如下是其中最有名的平臺:
Amazon Elastic Container Service, 或AWS云的CaaS ECS
Azure Container Service, Azure的CaaS
Google Container Engine
Rancher Labs提供的Rancher,能夠運行在云上以及本地的CaaS
Docker Datacenter, Docker公司自己的CaaS
MicroOS,來自SUSE的一個全新的CaaS
Tectonic,使用Kubernetes和CoreOS構建的CaaS
OpenShift,Red Hat的云或者本地CaaS
3.選擇CaaS
有這么多CaaS產品,如何選出適合自己的?如下是需要考慮的重要因素:
你是想在云里、本地或者兩者處都托管CaaS嗎?一些CaaS產品,AWS ECS,Azure Container Service和Google Container Engine僅僅能在公有云上運行。其他產品,比如Rancher,能夠在本地或者在云里的某個虛擬服務器上安裝。OpenShift則可能是最為靈活的產品;它可以在本地運行,可以在公有或者私有云的虛擬服務器上運行,也可以通過OpenShift Online使用,這是該平臺的Red Hat托管版本。
你想選擇使用哪些組件嗎?一些CaaS方案提供了很大的靈活性,可以選擇要用的是哪種編排器和存儲庫。比如,Rancher支持所有主流的編排工具。相比較而言,OpenShift則僅僅支持Kubernetes,因此如果你更想使用Swarm或者Mesos,那么OpenShift就不是理想的選擇。
你想運行在哪種OS上?一些CaaS平臺可以運行在任意Linux的現代版本上。再次,Rancher是一個好例子,雖然Rancher的開發人員提供了一種特別的Linux發行版,RancherOS,來托管Rancher。但是用戶仍然可以使用其他自己更喜歡使用的現代Linux發行版。其他的CaaS平臺則綁定到某個特定的Linux發行版上。比如,OpenShift僅僅能夠在Red Hat Enterprise Linux上運行。這里的區別可能很重要,取決于你最熟悉哪種Linux。
現在有這么多容器即服務可用,用戶在選擇最適合自己需求的平臺時有很多種選擇。