- 公有云領(lǐng)域正在蓬勃發(fā)展。首先,云解決方案迎來(lái)更多的競爭和機遇。其次,數據監管和安全控制正成為新的挑戰。
- 你需要清晰的數據監管策略來(lái)驅動(dòng)工程實(shí)踐,以免阻礙業(yè)務(wù)的發(fā)展。
- 利益相關(guān)者的參與對你的成功至關(guān)重要,需要讓他們接受你的策略,并了解風(fēng)險和義務(wù)。
- 你無(wú)法預測未來(lái)的需求,所以要提供足夠的靈活性便于后續的擴展。
- 使用自動(dòng)化,包括硬件部署的自動(dòng)化。給供應商施加壓力,讓他們參與進(jìn)來(lái)。
在2017年云基礎設施即服務(wù)Gartner魔力象限中,Amazon Web Services無(wú)疑是當之無(wú)愧的領(lǐng)跑者。盡管如此,AWS仍然不足以成為事實(shí)上的云服務(wù)解決方案。最近,AWS的部分用戶(hù)因為與Amazon零售業(yè)務(wù)存在競爭關(guān)系,宣布要停止使用AWS。Walmart構建了自己的私有云,并要求它的技術(shù)供應商撤出AWS,轉而尋求與Google和Microsoft合作。主流的云供應商紛紛加入Cloud Native Computing Foundation(CNCF),推動(dòng)行業(yè)朝著(zhù)基于容器的跨云微服務(wù)架構發(fā)展。VMware停止與四個(gè)主要的公有云供應商合作(Amazon、Microsoft、IBM、Google),Microsoft啟動(dòng)了Azure Stack——輕量版的Azure。業(yè)界出現了另一個(gè)非常重要的趨勢,數據隱私和安全的區域合規性(中國、俄羅斯、歐洲)正嶄露頭角,比如即將于2018年5月開(kāi)始實(shí)行的歐洲通用數據保護條例(GDPR)。業(yè)務(wù)部門(mén)需要重新定義他們的云策略,擁抱混合云解決方案,并加入更嚴格的數據監管,這意味著(zhù)需要向私有云邁出一大步。
云基礎設施即服務(wù)Gartner魔力象限圖:

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

Nicolas Brousse,云計算領(lǐng)袖人物,在TubeMogul(NASDAQ:TUBE)被Adobe(NASDAQ:ADBE)收購之后,他成為了運營(yíng)工程總監。Nocolas領(lǐng)導了一支全球化的團隊,包括SRE工程師、云計算工程師、安全工程師和數據庫架構師,他們構建、管理和監控著(zhù)Adobe廣告云平臺的基礎設施。Nicolas是美國技術(shù)大會(huì )的演講常客,并經(jīng)常為其他運營(yíng)工程師提供建議。在加入TubeMogul之前,Nicolas已經(jīng)在技術(shù)領(lǐng)域擁有超過(guò)15年的經(jīng)驗,為MultiMania、Lycos和Kewego等公司管理高負載的數據庫。