關(guān)于云計算服務(wù)的討論往往都是從AWS開始的,但是對于絕大多數(shù)企業(yè)來說,這并不是云計算應(yīng)用的全部。在業(yè)內(nèi),越來越多的企業(yè)都在實施使用多個云計算平臺的發(fā)展策略,所謂多個云計算就是指囊括公共云計算和私有云計算,從而實現(xiàn)避免受限于某家供應(yīng)商、提升交付可用服務(wù)的能力、避免套利差異或者保持對特定敏感信息的控制權(quán)等。雖然使用多個云計算平臺可謂是一劑良方,但是它也會導(dǎo)致應(yīng)用程序、API和配置等方面諸多管理問題的產(chǎn)生。
由于多個云計算平臺并不會共享通用API、對于服務(wù)的定義均各自不同以及計費模式也不盡相同,所以跨多個云計算平臺的應(yīng)用程序管理和基礎(chǔ)設(shè)施配置將是一個非常復(fù)雜的問題。但是,這并不會成為實施多個云計算平臺策略的瓶頸,這是因為市場上有著大量的成熟軟件和軟件即服務(wù)(SaaS)選項可實現(xiàn)跨多個云計算平臺的部署自動化。然而,所有的自動化工具都是基于一個共同的概念框架的,即把云計算資源當(dāng)作是一個如同軟件代碼一樣可配置、可運行和可管理的抽象對象。因此,在開發(fā)運營方法學(xué)和組織模式之間就存在著一個交集。
多個云計算模式勢在必行
你是否認(rèn)為使用多個云計算平臺只是適合于那些高速發(fā)展的初創(chuàng)公司或跨國大企業(yè)?再想一想,根據(jù)RightScale發(fā)布的年度云計算調(diào)研報告《2015 State of the Cloud Report》,近六成的受訪者同時使用了公共云計算和私有云計算。此外,有14%的受訪者制定了多個公共云計算的實施戰(zhàn)略,而55%正在使用混合云計算。也許你無法接受RightScale的數(shù)據(jù)和判斷,但是業(yè)內(nèi)領(lǐng)先的云計算管理軟件供應(yīng)商,F(xiàn)orrester咨詢公司也提出了類似的數(shù)據(jù)和看法。Forrester公司發(fā)現(xiàn),超過半數(shù)的大型企業(yè)已經(jīng)在使用一個以上的公共云計算供應(yīng)商,三分之一或以上的企業(yè)則在使用三個或三個以上的云計算平臺(圖1)。
圖1:大多數(shù)公司都正在使用多個云計算平臺
多個云計算這一趨勢是非常合乎邏輯的。沒有哪一家企業(yè)會想要讓他們的重要基礎(chǔ)設(shè)施完全唯一地依賴于某一家供應(yīng)商,即便諸如AWS這樣龐大可靠的業(yè)內(nèi)巨頭也是無法讓人完全放心的。事實上,如果缺乏包括若干可用區(qū)域在內(nèi)的合適的AWS架構(gòu),亞馬遜本身也是會經(jīng)常遭遇中斷事件的, 例如當(dāng)北弗吉尼亞州出現(xiàn)幾個小時中斷時,AirB2B、Tinder、Reddit等都難以幸免地被殃及池魚。
然而,正如Forrester公司所指出的,不同云計算平臺之間的異質(zhì)性常常是導(dǎo)致眾多IT專業(yè)人士感到焦慮的主因?;诙嗉夜?yīng)商的混合云計算模式要求用戶決定如何管理不同的云計算平臺以便于為云計算應(yīng)用程序的開發(fā)人員和企業(yè)用戶提供較為一致的使用體驗。不一致的管理接口和監(jiān)控接口會讓他們感到特別的沮喪。事實上,RightScale公司的調(diào)研報告指出,約四分之一的受訪者表示管理多個云計算平臺是一項“非常非常具有挑戰(zhàn)性”的工作。究其根本,F(xiàn)orrester公司的數(shù)據(jù)表明, 管理多個云計算平臺的最大問題包括:
不同供應(yīng)商之間的服務(wù)一致性;
不同云計算平臺之間的工作負(fù)載遷移;
跨多個云計算平臺的管理整合;
以及支持不同云計算最終用戶的門戶網(wǎng)站。
“云計算無關(guān)”部署軟件能夠幫助解決上述四個問題。
“云計算無關(guān)”管理軟件簡介
數(shù)十種軟件和SaaS產(chǎn)品可實現(xiàn)跨多個云計算平臺的基礎(chǔ)設(shè)施和應(yīng)用程序的自動化管理。其中一些軟件重點關(guān)注特定需求或應(yīng)用場景。例如,Cloudyn是專為資產(chǎn)和成本管理應(yīng)用而開發(fā)的,它包括了為特定工作負(fù)載確定具最高成本效益部署選項的工作負(fù)載優(yōu)化器,而CSC使用之前ServiceMesh產(chǎn)品,重點關(guān)注云計算管理、安全性以及生命周期管理。諸如Cliqr、Cloudify以及ElasticBox這些其他類產(chǎn)品則采用了一種以應(yīng)用程序為中心的方法來實現(xiàn)云計算自動化。
最流行的多云平臺產(chǎn)品一般都被眾多企業(yè)用作針對云計算管理的開發(fā)運營方法,它可將應(yīng)用程序編程擴展至基礎(chǔ)設(shè)施配置與管理的范疇。事實上,每一種工具的重要區(qū)別就是它所選擇使用的編程語言。
談起云計算自動化,大多數(shù)人的腦海中會出現(xiàn)RightScale;但是,就該公司自己的調(diào)查報告顯示,最常用的基礎(chǔ)設(shè)施開發(fā)運營工具是Chef、Puppet、Ansible 和 SaltStack:
Chef:恰如其名,Chef把基礎(chǔ)設(shè)施配置、部署 和管理等工作都集成在一起,可讓任何運行Chef客戶端的系統(tǒng)解釋。當(dāng)然,在后端還是存在著一些服務(wù)器復(fù)雜性的,但是,正如我在SearchAWS發(fā)布的“在AWS中使用Chef”一文中所詳細(xì)介紹的那樣,Chef可以管理云計算應(yīng)用程序部署的所有工作,它可以在云計算本身內(nèi)運行(即Chef服務(wù)器、開發(fā)人員工作站、系統(tǒng)節(jié)點和分析引擎等都可以作為IaaS實例運行)。Chef支持的主要云計算服務(wù)包括:AWS、Azure、Google、VMware(vCloud Air)、IBM公司的Softlayer以及SmartCloud Orchestrator 和 Rackspace/OpenStack。
Puppet:Puppet被稱為是協(xié)調(diào)軟件的開山鼻祖,該產(chǎn)品不僅自身成熟而且還受到了廣泛支持。Puppet擁有一個基于類的領(lǐng)域特定語言(DSL),其設(shè)計靈感來自于Nagios配置文件格式,它類似于JSON。雖然它擁有一個Web用戶界面,但是其高級配置需要編程和使用一個CLI。Puppet Razor是一個最新發(fā)布的工具,它可以自動發(fā)現(xiàn)和庫存基礎(chǔ)設(shè)施,并動態(tài)地為裸機管理選擇一個首選的系統(tǒng)映像。
Ansible: 這是一個開源平臺,其商業(yè)版已于近期被Red Hat公司收購,Ansible不需要軟件代理;它可通過安全Shell連接進(jìn)行完全運行。Ansible針對其配置“playbooks”使用了YAML,這主要是用于進(jìn)行系統(tǒng)配置、部署和協(xié)調(diào)等工作。
SaltStack: 這是一個相對較新的平臺,它主要側(cè)重于速度和可擴展性方面,Salt有兩種版本:開源代碼和支持企業(yè)版。Salt使用YAML來描述系統(tǒng)狀態(tài);但是,整個平臺包括了一組復(fù)雜的組件,這對于那些并不熟悉另一種自動化平臺的用戶來說就意味著一個艱難的學(xué)習(xí)曲線。
建議與用例
本文所介紹的任何自動化大平臺都可在私有基礎(chǔ)設(shè)施中和跨所有主要公有云平臺正常運行;但是,具體的集成細(xì)節(jié)則大相徑庭。
選擇產(chǎn)品的決策應(yīng)當(dāng)從企業(yè)基礎(chǔ)設(shè)施的復(fù)雜性和規(guī)模出發(fā),關(guān)注IT/開發(fā)運營團(tuán)隊所擁有的專業(yè)知識。雖然諸如戴爾公司Cloud Manager(即之前的Enstratius)、RightScal或Scalr這類的集成SaaS產(chǎn)品在連接至內(nèi)部基礎(chǔ)設(shè)施時會有一些麻煩,但是它們都是最易于部署和操作的,這是因為它們都提供了全面的Web用戶界面和預(yù)置模板,并與大型云計算服務(wù)相集成。在眾多較為通用的工具中,Puppet是最為成熟的產(chǎn)品,這使得它在大型企業(yè)用戶變得非常流行。此外,由于其無代理的設(shè)計和簡單的YAML語法,Ansible可能更易于實施和學(xué)習(xí)。