越來(lái)越多的企業(yè)使用容器技術(shù)部署云應(yīng)用,似乎容器和云的關(guān)系越來(lái)越緊密。因此三大云供應(yīng)商--Amazon Web Services, Microsoft Azure和Google工——都推出了各自的容器服務(wù)。但是,這些服務(wù)并不完全一樣。
為了達(dá)到本文的目的總部位于波士頓的云計(jì)算咨詢公司,Cloud Technology Partners,深入分析了Amazon Web Services(AWS),Google和Azure容器服務(wù),仔細(xì)考量了用例。該公司仔細(xì)考察了評(píng)估或使用基于云的容器服務(wù)時(shí)需要重點(diǎn)研究的特性,包括數(shù)據(jù)管理、擴(kuò)展性、性能、安全、DevOps以及和管理運(yùn)營(yíng)的集成(結(jié)果見(jiàn)表1)。用例覆蓋了開(kāi)發(fā)和運(yùn)維,簡(jiǎn)單來(lái)說(shuō),覆蓋了當(dāng)你使用這三種技術(shù)構(gòu)建并且部署應(yīng)用程序所必須使用的功能。
比較三大主流云供應(yīng)商按需容器產(chǎn)品的評(píng)分。
1-5的分值,1是最低分,5是最高分。打分為1意味著該技術(shù)完全沒(méi)有提供對(duì)該項(xiàng)的支持,而5意味著該技術(shù)滿足了該項(xiàng)的絕大部分特性和功能需求。在DevOps項(xiàng)考察的需求,是容器子系統(tǒng)支持DevOps運(yùn)維,或者提供集成倉(cāng)庫(kù)的能力。
對(duì)于正在評(píng)估Google、AWS或者Azure容器服務(wù)的企業(yè)來(lái)說(shuō),本文提供了一些基本知識(shí)。但是你自己應(yīng)用程序的具體需求才是驅(qū)動(dòng)最終產(chǎn)品決策最重要的因素。
集成和數(shù)據(jù)考量
Azure容器服務(wù)(ACS)基于Apache Mesos,一個(gè)開(kāi)源容器編排系統(tǒng)。這意味著受益于ACS的前身, Mesos的特性和功能的良好口碑,用戶可以認(rèn)為ACS的特性和功能還不錯(cuò)。ACS,還沒(méi)有完全可用,是之前提到的容器服務(wù)里最新的一個(gè)。隨著Microsoft容器產(chǎn)品的進(jìn)一步開(kāi)發(fā),我們會(huì)得到更多數(shù)據(jù),很多得分可能會(huì)隨之變化。
Google并沒(méi)有領(lǐng)先太多,AWS和Microsoft可能會(huì)快速趕超。
AWS EC2容器服務(wù)(ECS)里,我們能夠看到一些運(yùn)維問(wèn)題,比如不能細(xì)粒度監(jiān)控容器。當(dāng)考察ECS和管理以及運(yùn)維的集成能力時(shí),應(yīng)該和其他AWS產(chǎn)品一樣強(qiáng)大才對(duì),和Google容器引擎(GKE)的5分對(duì)比,我們不得不只給4分。但是,ECS的確包括CloudWatch集成,這點(diǎn)和ACS相比是一個(gè)優(yōu)勢(shì)。另外,現(xiàn)在,ACS還僅僅支持Linux容器。Windows支持就快好了,Microsoft引入了Mesos,.NET開(kāi)發(fā)人員暫時(shí)還不能使用這項(xiàng)服務(wù)。
從數(shù)據(jù)的角度看,所有這些服務(wù)都提供了原生數(shù)據(jù)鏈接,而無(wú)需強(qiáng)制使用外部API——但是還有改進(jìn)的空間。一大顧慮是它們會(huì)將原生數(shù)據(jù)服務(wù)和容器綁定到一起,并且不提供開(kāi)放數(shù)據(jù)訪問(wèn),這樣能夠加強(qiáng)便攜性。如果數(shù)據(jù)緊耦合到容器里,那么就很難創(chuàng)建便攜的容器。這是一個(gè)新興的領(lǐng)域,我們會(huì)持續(xù)關(guān)注。
AWS、Google和Azure容器安全性
當(dāng)考慮到安全性時(shí),我們發(fā)現(xiàn)Google的服務(wù),通過(guò)其Kubernetes容器編排系統(tǒng),擁有一個(gè)“秘密”功能以及一些其他兩種服務(wù)沒(méi)有的額外的資源限制。因此,GKE在安全性上得分最高。要記住Microsoft也使用Kubernetes,但是以不同的方式實(shí)現(xiàn)。該技術(shù)的大部分內(nèi)容對(duì)于用戶而言都被抽象了。
但是,當(dāng)考察托管平臺(tái)時(shí),或者容器服務(wù)運(yùn)行的公開(kāi)云平臺(tái),很有意思的一點(diǎn)是Google平臺(tái),當(dāng)涉及到安全性時(shí),比AWS或者Azure稍稍落后一點(diǎn)。雖然Google能夠和第三方認(rèn)證訪問(wèn)管理(IAM)工具一起工作,但是它缺少對(duì)原生IAM的支持。雖然這一點(diǎn)沒(méi)有影響上表里的評(píng)分,但是這也是決定使用哪種平臺(tái)時(shí)需要考慮的方面。
DevOps和擴(kuò)展性
當(dāng)考慮到DevOps時(shí),GKE和Amazon ECS都擁有自己的registry,但是Azure容器服務(wù)沒(méi)有。當(dāng)考慮到各自云上的容器服務(wù)時(shí),Google和AWS提供了更好的DevOps集成。
擴(kuò)展性要求和你的應(yīng)用需求相關(guān),因此我們得基于他們能夠提供的機(jī)制做假設(shè),比如Mesos,以及一些我們?cè)陧?xiàng)目中看到的用例。當(dāng)考察這些技術(shù)用來(lái)托管并且運(yùn)行容器時(shí),你可以使用相同的方案。比如,使用Mesos的ACS,應(yīng)該能提供還不錯(cuò)的擴(kuò)展性,但是沒(méi)有GKE那么好,GKE能提供更好的集群能力。
眾所周知,Amazon ECS能提供高質(zhì)量的擴(kuò)展性,主要依賴于AWS帶給其容器引擎的高可擴(kuò)展平臺(tái)特性。
綜上所述,受益于Google產(chǎn)品和其自己的Kubernetes容器集群,以及Google的開(kāi)發(fā)和運(yùn)維支持的緊密集成,Google的產(chǎn)品總的來(lái)說(shuō)更先進(jìn)。但是Google并沒(méi)有領(lǐng)先太多,AWS和Microsoft可能會(huì)快速趕超。基于AWS的市場(chǎng)占有額,它很可能近期就能提供更好的容器方案。