- 公有云領(lǐng)域正在蓬勃發(fā)展。首先,云解決方案迎來更多的競爭和機遇。其次,數(shù)據(jù)監(jiān)管和安全控制正成為新的挑戰(zhàn)。
- 你需要清晰的數(shù)據(jù)監(jiān)管策略來驅(qū)動工程實踐,以免阻礙業(yè)務(wù)的發(fā)展。
- 利益相關(guān)者的參與對你的成功至關(guān)重要,需要讓他們接受你的策略,并了解風(fēng)險和義務(wù)。
- 你無法預(yù)測未來的需求,所以要提供足夠的靈活性便于后續(xù)的擴展。
- 使用自動化,包括硬件部署的自動化。給供應(yīng)商施加壓力,讓他們參與進來。
在2017年云基礎(chǔ)設(shè)施即服務(wù)Gartner魔力象限中,Amazon Web Services無疑是當(dāng)之無愧的領(lǐng)跑者。盡管如此,AWS仍然不足以成為事實上的云服務(wù)解決方案。最近,AWS的部分用戶因為與Amazon零售業(yè)務(wù)存在競爭關(guān)系,宣布要停止使用AWS。Walmart構(gòu)建了自己的私有云,并要求它的技術(shù)供應(yīng)商撤出AWS,轉(zhuǎn)而尋求與Google和Microsoft合作。主流的云供應(yīng)商紛紛加入Cloud Native Computing Foundation(CNCF),推動行業(yè)朝著基于容器的跨云微服務(wù)架構(gòu)發(fā)展。VMware停止與四個主要的公有云供應(yīng)商合作(Amazon、Microsoft、IBM、Google),Microsoft啟動了Azure Stack——輕量版的Azure。業(yè)界出現(xiàn)了另一個非常重要的趨勢,數(shù)據(jù)隱私和安全的區(qū)域合規(guī)性(中國、俄羅斯、歐洲)正嶄露頭角,比如即將于2018年5月開始實行的歐洲通用數(shù)據(jù)保護條例(GDPR)。業(yè)務(wù)部門需要重新定義他們的云策略,擁抱混合云解決方案,并加入更嚴(yán)格的數(shù)據(jù)監(jiān)管,這意味著需要向私有云邁出一大步。
云基礎(chǔ)設(shè)施即服務(wù)Gartner魔力象限圖:
下列是在構(gòu)建私有云解決方案時需要考慮的五個方面。
1.愿景和戰(zhàn)略規(guī)劃
很多私有云因無法發(fā)揮應(yīng)有的作用而以失敗告終。與工程項目一樣,錯誤的期望值和不現(xiàn)實的目標(biāo)會導(dǎo)致糟糕的結(jié)果,但實際上本不該如此。在了解了所要解決的問題之后,必須定義出清晰的目標(biāo)和需求。比如,了解開發(fā)者的痛點,看看私有云將如何解決或緩解他們的問題。改進開發(fā)者體驗,確保方案能夠得到快速的實施,并取得長久的成功。
構(gòu)建私有云需要專注,需要堅持不懈的毅力,需要強烈的動機,需要責(zé)任心和有效的溝通,需要進行所有權(quán)總成本分析,以便了解當(dāng)前的服務(wù)成本。私有基礎(chǔ)設(shè)施的日常運維是怎樣的?需要為利益相關(guān)者定義拒付模型嗎?如果有必要,那么有成功的先例嗎?計劃運行哪些類型的工作負(fù)載?如何簡化容量規(guī)劃?最小的預(yù)算和最大的預(yù)算分別是多少?你的解決方案能夠與現(xiàn)有的CI/CD管道和開發(fā)者工作流順暢地集成在一起嗎?你為你的工程團隊準(zhǔn)備好容器化的環(huán)境了嗎?又或者你需要計劃在混合云環(huán)境中使用容器嗎?如果需要重新設(shè)計組件,那么就需要考慮這么做的成本。你的部署流程需要作出變更,為你的工程團隊提供順暢、積極正向的體驗。你要定義好上層的SLA,并以KPI的方式監(jiān)控它們。在定義好策略之后,下一步就是制定戰(zhàn)術(shù)和計劃。
要記住一句話,計劃得太多,反而不利于事情的進展。不過如果沒有急切的目標(biāo),也就沒有了動力。所以,需要在功能目標(biāo)和現(xiàn)實技術(shù)之間做出權(quán)衡。
案例
- Adobe的云廣告平臺通過TubeMogul構(gòu)建了自己的混合云解決方案。那么他們的愿景是什么?通過完全自動化的自有基礎(chǔ)設(shè)施賦予利益相關(guān)者處理核心負(fù)載的能力,解決低延遲和大規(guī)模存儲問題。他們的策略又是什么?通過簡單的CI/CD工作流在裸機和虛擬實例上實現(xiàn)性能和配置的靈活性。戰(zhàn)術(shù)呢?使用開源的OpenStack進行基礎(chǔ)設(shè)施的編排和自動化。組建一支精益的團隊開發(fā)和維護私有云,為開發(fā)者提供統(tǒng)一的CI/CD工作流。
- 在考慮使用私有云方案時,我們直接向我們的公有云提供商AWS提出了質(zhì)疑。我們對所使用的技術(shù)進行總體成本分析,疑問重重。在頭三年的時間里,我們時刻準(zhǔn)備著我們的私有云計劃。在相當(dāng)長一段時間內(nèi),我們的私有云計劃成為與公有云提供商商談價格的籌碼(BATNA【1】)。
2.設(shè)計的靈活性
在確定了你要交付的服務(wù)類型和運營模型之后,要在設(shè)計中保持足夠的靈活性。研發(fā)階段的投入是不可或缺的,你將需要進行多次迭代,并留有余地以便應(yīng)對不可預(yù)測的情況。在進行技術(shù)選型時總會引發(fā)激烈的爭論,然后是確定網(wǎng)絡(luò)和服務(wù)器的規(guī)格。有句話叫“如果你要為大牲畜構(gòu)建農(nóng)場,就不要把它建成寵物的小窩”。在私有云架構(gòu)里,你所選擇的技術(shù)需要用上好多年,你要成為它們的擁護者,為此打造一個社區(qū),支持它們,并讓脾氣暴虐的架構(gòu)師們知道它的好處。做好升級計劃,比如如何從v1升級到v2。保持技術(shù)更新是支持新需求、跟隨新趨勢、留住人才的關(guān)鍵因素。
先交付一個可以帶來關(guān)鍵商業(yè)價值的最小價值產(chǎn)品(MVP),后續(xù)再進行改進。盡可能利用裸機基礎(chǔ)設(shè)施,而不僅僅是把私有云當(dāng)成一個“IT項目”。不要試圖在內(nèi)部構(gòu)建另一個公有云,那是不可能成功的。你的方案要具備足夠的靈活性,為開發(fā)人員提供有價值的支持。你要提供新的方案、API、服務(wù),為工程利益相關(guān)者帶來順暢的體驗。確保你的私有云服務(wù)遵循現(xiàn)有的標(biāo)準(zhǔn),加快開發(fā)人員采用私有云的速度,并可以在多個云環(huán)境上重用功能。你可能還需要設(shè)計SDN并開發(fā)出一些服務(wù)層,當(dāng)然,這些要視你的實際情況而定。
保持學(xué)習(xí)曲線的平滑和敏捷是非常重要的。從簡單的開始,標(biāo)準(zhǔn)化開發(fā)者的工作流,用好VLAN,部署核心服務(wù)(身份識別管理、網(wǎng)絡(luò)、計算能力、存儲),定義好清晰的升級路徑。
案例
- 在TubeMogul,我們通過反復(fù)試錯來進行技術(shù)選型或選擇供應(yīng)商。這當(dāng)中有些技術(shù)可能已經(jīng)不存在(CloudStack、Eucalyptus等)了,最后我們選擇了OpenStack,并結(jié)合使用了裸機。我們最初的設(shè)計傾向于使用便宜但強大的日常硬件,結(jié)合簡單的網(wǎng)絡(luò),并設(shè)計好故障應(yīng)對措施。我們只用了OpenStack的核心服務(wù),以及Jenkins的基本CI/CD工作流和用于配置裸機的PXE。開發(fā)人員也使用了相同的CI/CD管道來管理跨云的canary和生產(chǎn)應(yīng)用程序部署。多個環(huán)境之間需要具有標(biāo)準(zhǔn)的命名約定,我們才能重用現(xiàn)有的工具和服務(wù)。
3. 基礎(chǔ)設(shè)施自動化
私有云部署很關(guān)鍵的一點是如何處理數(shù)據(jù)中心、網(wǎng)絡(luò)和采購問題。這里涉及到資產(chǎn)管理和售后,它們很容易成為痛點,并給部署造成麻煩。所以,要想清楚你擅長做什么以及不擅長做什么。根據(jù)你的投資目標(biāo)和團隊結(jié)構(gòu)的不同,你可能會承擔(dān)很多壓力,所以不要讓那些供應(yīng)商閑著。我時常提醒我的團隊,VAR指的是“Value Added Reseller”,所以不要忘了增值部分。根據(jù)參與度模型的不同,你可能需要定義好機架排布、線纜布局、端口映射、電力拉線等等。在極端情況下,你可能要使用以機架為單位的模型(rack-at-a-time)代替以服務(wù)器為單位的模型(server-at-a-time),直接將裝備好的機架搬進數(shù)據(jù)中心。你只需要將機架接近核心網(wǎng)絡(luò)就可以了,不需要自己組裝和拉線。
在進行硬件自動化時,要確保你的設(shè)計適用于你的數(shù)據(jù)中心。你希望你的設(shè)計是Top-Of-Rack【2】式的嗎?或許你對TIA 942-A不甚了解,那么就讓供應(yīng)商提供想法并進行設(shè)計評審。這有可能會影響到硬件的選擇和冷卻通道的位置。這里有許多細節(jié)需要考慮。確保你考慮到了數(shù)據(jù)中心的空間位置和電力供應(yīng),知道如何利用現(xiàn)場人員處理售后問題。這些都是成功構(gòu)建一個私有云的關(guān)鍵因素。
案例
- Adobe廣告云平臺數(shù)據(jù)中心的最小化部署單位為兩個機架。所有機架都由供應(yīng)商搭建,然后進行自動化的鏡像和組件部署。我們使用了Puppet進行配置管理,如果有一個資源處于空閑狀態(tài),或者經(jīng)過售后之后需要進行重新部署,只需要標(biāo)記一下狀態(tài),然后重新觸發(fā)構(gòu)建即可。
4. 自己搞定
你需要對自己構(gòu)建的東西進行反復(fù)的測試,需要一個真實的實驗室承擔(dān)測試工作。你要感受到痛點,并把它們解決掉。
在跨過一系列坑之后,你要為利益相關(guān)者提供可見的數(shù)據(jù),讓他們了解整個流程。要敢于把整個私有云的狀態(tài)和風(fēng)險點展示出來。你是否做好了計算資源的容量規(guī)劃?利益相關(guān)者是否了解網(wǎng)絡(luò)的局限以及這將給他們的使用帶來的影響?如何提供網(wǎng)絡(luò)的可見性以便建立良好的信任和信心?是否存在過載的計算資源和超額認(rèn)購?在進行迭代和增長時,這些問題都是需要解決的。
案例
- TubeMogul的第一個OpenStack開發(fā)環(huán)境在一開始很成功,直到一個禮拜之后Ceph出現(xiàn)了問題,導(dǎo)致整個環(huán)境都崩潰了。這個環(huán)境是一個共享的環(huán)境,既是私有云的測試環(huán)境,也是開發(fā)環(huán)境。所以,我們得到了教訓(xùn),就是不要將開發(fā)環(huán)境和利益相關(guān)者的環(huán)境混在一起。如果有人依賴你的服務(wù),你就要承擔(dān)起交付高質(zhì)量服務(wù)的任。
- 做好容量規(guī)劃是很難的,你希望了解你的業(yè)務(wù),但又不希望業(yè)務(wù)的增長僅依賴你。知道什么時候提前增加容量至關(guān)重要。我們以兩個機架作為部署單位,如果一個地方的資源不夠用了,我們就增加兩個機架。這個時候,設(shè)計的靈活性就發(fā)揮了它的作用,我們因此可以快速地擴展私有云。
結(jié)論
這是一個旅程。構(gòu)建私有云不是件小事,而大部分公司未必需要私有云。如果有可能,就使用公有云吧。但如果要構(gòu)建私有云,你需要搞清楚目標(biāo)是什么。數(shù)據(jù)監(jiān)管和業(yè)務(wù)決策將把你帶向不同的方向。私有云并不是一個簡單的工程項目,而是一個戰(zhàn)略決策。了解大方向,取得利益相關(guān)者的支持,做好敏捷計劃,以便進行迭代。Adobe廣告云平臺經(jīng)歷了多個階段,這些階段都要求堅實的軟件和運營工程來自動化基礎(chǔ)設(shè)施,F(xiàn)在,我們交付了一個核心的基礎(chǔ)設(shè)施,可以降低資源占用和延遲,處理更多的流量,甚至提供三倍于AWS原生網(wǎng)絡(luò)的性能。
參考
- Roger Fisher和William Ury在1981年出版的暢銷書“Getting to Yes: Negotiating Without Giving In”中發(fā)明了術(shù)語BATNA,它是“Best Alternative To a Negotiated Agreement”的縮寫。
- Cisco數(shù)據(jù)中心的Top-Of-Rack架構(gòu)設(shè)計
關(guān)于作者
Nicolas Brousse,云計算領(lǐng)袖人物,在TubeMogul(NASDAQ:TUBE)被Adobe(NASDAQ:ADBE)收購之后,他成為了運營工程總監(jiān)。Nocolas領(lǐng)導(dǎo)了一支全球化的團隊,包括SRE工程師、云計算工程師、安全工程師和數(shù)據(jù)庫架構(gòu)師,他們構(gòu)建、管理和監(jiān)控著Adobe廣告云平臺的基礎(chǔ)設(shè)施。Nicolas是美國技術(shù)大會的演講?,并經(jīng)常為其他運營工程師提供建議。在加入TubeMogul之前,Nicolas已經(jīng)在技術(shù)領(lǐng)域擁有超過15年的經(jīng)驗,為MultiMania、Lycos和Kewego等公司管理高負(fù)載的數(shù)據(jù)庫。