容器集群的抽象層為基礎設施自動化實施提供了新的方式,在此之前,企業只能在相對低智能的IaaS平臺和傳統僵化的PaaS平臺之間二選一。但是企業會為新的方式買單嗎?
平臺即服務(PaaS)的產品例如Heroku、Red Hat OpenShift以及Cloud Foundry,很早就使用容器或者子操作系統工作負載分割作為運行單元,因為容器支持細粒度基礎設施共享,同時也能保證工作負載的互相隔離。
容器的使用已經擴展到PaaS平臺以外的生產應用,它正越來越多地被部署到服務器基礎設施集群中,這些基礎設施都被高度編配管理,具備自動化部署、自動化刪除、自動化出錯重建的能力。
對于新興的PaaS平臺服務產品也是同樣情況。近期有關容器的焦點不是如何分割工作負載,而是如何規模化地管理容器集群。容器編配中大量關鍵對象的管理需求非常強烈,特別是在復雜的集群抽象層。目前已有的相關產品為CoreOS的Tectonic,Apache Mesos和Google發布的Kubernetes。
這些集群管理工具為IT基礎設施引入新的自動化方法,減少IT工作者對單個服務器的手動操作以及相關管理工作。這個特點仍然遵循PaaS的基本原則之一——在對基礎設施的直接控制方面,比傳統的高度抽象的PaaS服務更進一步 。
針對新的受眾的新興PaaS服務提供商
開發者不會在短時間內放棄傳統的PaaS平臺。相反地,這類新興的PaaS附屬抽象化服務產品對新一代的IT運維工作者非常有吸引力,因為運維專員需要搭建并維護基礎設施平臺以滿足新型應用架構的高度自動化需求,而傳統的IaaS平臺無法滿足這種需求。
“在一定程度上,目前真正開始使用這種技術的目標群體與PaaS提供的抽象化服務的目標群體并不一樣。”作為一家最近開始支持Docker的PaaS服務提供商,瑞士電信公司的云平臺開發團隊負責人Marco Hochstrasser這樣評價。
“容器技術是什么對于我來說沒有區別,”Hochstrasser說,但是“Docker已被廣泛采用,它所形成的標準為市場打開新局面,使服務提供商能夠在此基礎上開發附加價值。”
在大型企業中,他們可能會簡要地談到Docker,但是話題會很快轉到一些問題,比如如何從桌面部署應用到PaaS平臺,如何做到他們之間的內部連通。當與客戶的CIO和系統管理員交流時,“他們會談論為什么Cloud Foundry不能做這個?為什么我不能在自己的環境中運行HAProxy,為什么我不能配置這個?”Hochstrasser說,“這些問題代表了不同的看法和觀點。”
不斷上漲的Docker浪潮正在托起PaaS領域的所有大船,因為這個新的參與者使PaaS平臺煥發新生,也迫使它迎來了技術變革。
“這些技術正在混合成為相同的概念,” Booz Allen Hamilton公司的戰略創新團隊高級技術專家Nirmal Mehta說。Booz Allen Hamilton是一家咨詢公司,與當地政府組織一起從事DevOps文化的創建工作。
“PaaS加速了容器化技術的普及,反過來容器化技術也推動了PaaS的普及,”Nirmal Mehta說,“目前我們正處在一場戰爭的初期階段,這場戰爭將在容器編配領域互相競爭的各個平臺之間打響。PaaS在某種程度上發揮了粘合劑的作用,編配容器所需要的所有組件都需要涂上這個粘合劑。”
PaaS提供商學到新招數
對于一些開始支持微服務的新興PaaS平臺,例如Apcera,為IT基礎設施管理提供了一個基于策略的可選方案。這個方案不要求IT放棄對于云服務提供商或者內部開發者的完全控制。
Juan Garcia是一家紐約的名叫nextSource的人力資源服務公司的CTO,他對于Apcera的評價是:Apcera所提供的基于策略的資源配置與其他大部分PaaS服務提供商的產品有所不同。
“Apcera具有編譯語義管道(semantic pipelines)的能力,并且支持用戶在不理解網絡層次的情況下配置從應用到微服務以及微服務之間的訪問。這些功能非常靈巧和獨特。” Garcia說。
大部分應用開發者不關心容器是否在的PaaS層下的基礎設施上運行,因為基礎設施的配置對他們并不重要。但是對于IT運維工作者,容器編配平臺的作用至關重要,因為它能夠將已有的支持傳統應用的基礎設施轉化成為新的支持微服務的環境。
以Rad Had OpenShift為例,它所提供的PaaS層包括應用發布和持續集成服務,這些功能都是其他容器管理工具不具備的,比如Kubernetes。但是它提供的基于“cartridge”的容器編配系統,其實是立足于Kubernetes的基層實現。
OpenShift提供世界上最好的傳統IaaS和PaaS平臺,旅游科技公司Amadeus IT Group SA的架構、質量和管理部門副主席Dietmar Fauser評價道。
“OpenShift為我們開拓了一條路徑,使我們能夠保持已有應用,不需要徹底修改代碼或者完全用Java重寫一遍,”Fauser說,“通過一筆合理的投入,就能將Kubernetes的服務注冊環境橋接到我們自己的通信系統。”