什么是CaaS?更簡單的容器管理
容器即服務(CaaS)平臺使開發人員可以更輕松地部署Docker容器,并將其組裝到應用程序中,而大多數情況下則需要Kubernetes來完成這項工作。
隨著現代的容器化應用程序在組織中繼續受到歡迎,主要供應商開始提供容器基礎設施和管理的“即服務”只是一個時間問題。
根據Flexera公司最近發布的2020年云計算狀態調查報告,全球企業對容器的使用正在穩步上升,其中65%的組織表示他們使用Docker容器,而58%的組織表示以某種方式使用Kubernetes編排系統。
在使用容器構建和維護應用程序時,缺乏資源和專業知識經常被認為是主要的挑戰。因此,開發人員越來越多地轉向容器即服務(CaaS)產品所提供的自動化技術,而全球三大主要云提供商無疑都在這方面處在領先地位。
容器即服務(CaaS)
通過容器即服務(CaaS),云計算供應商實質上可以提供托管的容器編排引擎(通常基于源自谷歌公司的很受歡迎的Kubernetes開源項目),以部署和運行容器、管理集群、自動化擴展和故障管理,并維護通用基礎設施層,其中包括治理和安全性。
通常情況下,所有聯網、負載平衡、監視、日志記錄、身份驗證、安全性、自動縮放和持續集成(CI)/持續交付(CD)功能都由容器即服務(CaaS)平臺負責。
容器即服務(CaaS)使組織可以利用云計算基礎設施的優勢,同時幫助避免典型的平臺即服務(PaaS)所帶來的供應商鎖定,例如AWSElasticBeanstalk、AzureAppService,或GoogleAppEngine,這是因為容器本身允許跨各種環境進行簡單的遷移。
如果要使用容器,那么容器即服務(CaaS)與在基礎設施即服務(IaaS)上運行之間的區別在于組織是否具有實施和管理Kubernetes(或其他容器編排)的資源和技能。還是將其交給云計算提供商來實現和管理。這個決定還可以決定組織的容器環境是否必須跨越多個云平臺或內部部署環境。許多供應商提供的容器即服務(CaaS)平臺既可以部署在內部部署數據中心,也可以部署在云平臺中。
曾在德意志銀行和英國廣播公司(BBC)任職的開發人員RobIsenberg在其由O'Reilly出版的著作《面向Rails開發者的Docker》中指出:“用戶既可以在基礎設施層面管理事務并自行設置編排器,也可以使用一個容器平臺來處理底層基礎設施,并提供一個預裝的編排器,供其部署和擴展容器。”
容器即服務(CaaS)的好處
在容器即服務(CaaS)上運行容器類似于在基礎設施即服務(IaaS)上運行虛擬機:其主要優勢在于部署速度和易用性,即付即用云模型的簡單性以及上述不受供應商鎖定的自由。
通過將容器基礎設施留給云計算供應商,組織無需投資于自己的硬件,也無需構建和運行自己的Kubernetes集群(或其他容器編排系統),就可以開始運行。此外,通過容器化應用程序,組織可以更輕松地將應用程序遷移到不同的運營環境或供應商生態系統中,從而提供更大的靈活性和可擴展性選項。
所有這些都為提高成本效率提供了非常重要的機會,因為容器可以更好地根據需求進行水平擴展,允許組織只為他們使用的云計算資源付費。容器比虛擬機輕得多,這意味著它們的資源消耗較少,通常可以提高速度并降低成本。
儀器和日志記錄的一致性帶來了另一個好處,因為在容器中隔離單個服務可以通過流行的Sidecar部署模型實現更有效的日志聚合和集中監控。
根據Flexera公司發布的2020年云計算狀態報告,34%的受訪者指出,將傳統應用程序遷移到容器中仍然是采用的一個重大障礙,即使在容器即服務(CaaS)上運行也是如此。遷移到容器通常需要將單一的應用程序分解為微服務,對于大型傳統組織來說,這可能是一個重大的文化和技術轉變,不應掉以輕心。
行業領先的容器即服務(CaaS)選項
大多數主要的云計算提供商都提供容器即服務(CaaS)產品,還有其他幾家提供商希望參與其中。
云計算服務市場領導者AWS公司見證了其Kubernetes無彈性容器服務(ECS)和Elastic Kubernetes服務(EKS)的廣泛采用。同樣,根據Flexera公司的分析,Azure Kubernetes服務的采用率也顯著提高,Google Kubernetes Engine(GKE)也是如此。
這三家云計算巨頭現在都提供了無服務器的Kubernetes服務,其中包括Fargate上的AWSECS、GKE上的Google CloudRun和Azure容器實例。與EKS、AKS和GKE不同,這些服務消除了執行服務器管理任務的需要,是按需消費用例的理想選擇。
現在,谷歌云平臺的大部分容器管理功能都位于Anthos的保護傘下,該它可以跨內部基礎設施和主要的公共云(現在是谷歌云平臺和AWS,并正在提供Azure支持)管理基于容器的應用程序。Anthos結合了用于云計算工作負載的GKE、GKEOn-Prem和Anthos Config Management控制臺,該控制臺允許在混合和多云Kubernetes部署中進行集中管理、策略和安全性。
除了全球三個主要的云計算供應商之外,其中包括IBM/RedHat、VMware、SUSE/Rancher、Canonical、D2iQ(以前為Mesosphere)、Rackspace、Oracle、HPE、阿里巴巴、華為和騰訊在內的供應商都具有某種托管容器即服務(CaaS)選項的能力。許多這樣的產品可以在內部部署數據中心或公共云上,或在兩者中都進行部署。
哪種容器即服務(CaaS)比較好?
調查機構Gartner公司并未為容器即服務(CaaS)提供商設置魔力象限圖,但在其分析師Wataru Katsurashima撰寫的《公共云容器服務》報告中,該公司將谷歌公司的GKE確定為行業領先的托管Kubernetes選項。
調研機構Forrester公司分析師認為,AWS公司在2019年第三季度最新的公共云企業容器平臺浪潮中處于領先地位,微軟公司和谷歌公司緊隨其后。值得注意的是,Forrester公司的調查報告只列出了7家供應商,并且側重于公共云部署。
Forrester公司分析師Dave Bartoletti和Charlie Dai表示,AWS公司在部署選項、安全性和深度集成方面處于領先地位。憑借廣泛的完全托管(和無服務器)Kubernetes消費選項,以及直接部署到其云基礎設施的大多數容器,AWS公司繼續創新,并將其容器平臺與其領先的安全和網絡功能深度集成。
Forrester公司的調查報告敦促微軟公司和谷歌公司簡化他們的容器平臺。微軟公司因其更強大的開發經驗和全球影響力而倍受贊譽,但其復雜性受到用戶的批評。谷歌公司憑借其深厚的Kubernetes專業知識和在多云環境中的努力贏得了贊譽,但同樣也因其復雜性而受到批評。
盡管如此,根據CNCF公司在2019年進行的調查,AWSEKS仍然是最常用的容器管理平臺,GKE、DockerEE/CE和AKS緊隨其后。
Flexera公司發布的2020年云計算狀態報告指出,AWSEKS/ECS的使用率為55%,另有23%的受訪者計劃在未來使用這些容器即服務(CaaS)選項。Azure Kubernetes Service的采用率達到50%,另有26%的受訪者表示計劃在將來使用AKS。而Google Kubernetes Engine達到了26%,其中27%的受訪者計劃使用GKS。但是,根據Flexera公司的這份報告,在63%的受訪者中,自我管理的Kubernetes仍然超過所有容器即服務(CaaS)選項。
容器即服務(CaaS)資源
有關容器即服務(CaaS)的主要信息來源是供應商本身,因此很難做出明智公正的選擇。如上所述,Forrester公司和Gartne公司都已深入了解這一領域,但他們的視角通常取決于供應商如何脫穎而出,而不是如何跟上生產中的容器即服務(CaaS)步伐。
關于該主題的書籍還很少,但是O'Reilly公司出版的《軟件設計師手冊》提供了很好的概述。
Docker多年來一直是容器和容器管理的中心,并且在該主題上還有一些很好的視頻內容。