無縫混合體驗
無縫結(jié)合更多是從控制面的設(shè)計來講,達到用戶所有的云資源,不論是在公有云還是私有云,能得到一視同仁的處理。事實上由于公有云和私有云平臺天生模型的不一致(Azure stack這樣的平臺例外),很難強行把它們用相同的界面和邏輯來進行操作,而類似region,availability zone這樣的概念,更是無法對用戶屏蔽但私有云很難存在的概念。
所以在實現(xiàn)上,好的無縫體驗,應(yīng)該是讓公有云和私有云的資源在同一個平臺上操作,它們的操作內(nèi)在邏輯是完全一致,而非相互割裂。此處以創(chuàng)建云主機和創(chuàng)建專線連接為例。
創(chuàng)建云主機
當我們創(chuàng)建私有云主機時,需要選擇網(wǎng)絡(luò)、主存儲、鏡像、資源規(guī)格、可能還有物理機、集群等。而創(chuàng)建公有云主機時,需要選擇鏡像、安全組、網(wǎng)絡(luò)、計算規(guī)格、可能還有可用區(qū)等。相比之下,公有云不可能看到物理機,而私有云不可能看到可用區(qū),兩者的計算規(guī)格和網(wǎng)絡(luò)的模型也可能完全不同。
我們可以將它們放在同一個頁面,但一個頁面還是兩個頁面,對用戶的操作路徑來說都是一步,所以意義不大。真正有意義的是讓用戶在操作過程中感受到完全的無縫。即創(chuàng)建的過程是完全相同的,所有資源都不需要到公有云控制臺去進行額外的查找,本地就能閉環(huán)地完成所有操作。
創(chuàng)建專線連接
這是典型的跨云資源操作。連接時需要選擇本地網(wǎng)絡(luò)與公有云網(wǎng)絡(luò),這些選擇都應(yīng)該是在平臺上直接進行選擇或創(chuàng)建(例如創(chuàng)建一個邊界路由器等),然后點擊連接,混合云平臺自動完成剩下的連接工作。不需要用戶登錄到各個云平臺查看類似id、網(wǎng)關(guān)、cidr等屬性。從體驗上來說,用戶的直觀感受就是選擇了兩個網(wǎng)絡(luò),就創(chuàng)建了連接。而這背后,則是混合云平臺進行了大量的建模和數(shù)據(jù)同步工作。
通過以上兩個示例可以看到,因為公有云和私有云之間的模型天生是有部分差異,因此無感知的混合云并不是要強制用戶使用相同的模型去套用不同的云平臺,而是在建立好對應(yīng)的模型后,在后臺使用完全相同的邏輯去處理它們。而從API設(shè)計上來講,私有云和公有云資源的操作分屬不同的API,但它們的語義、參數(shù)都是非常相近的。
混合云架構(gòu)的具體技術(shù)實現(xiàn)原則
在定義了連接一切、無縫體驗之后,技術(shù)層面在實現(xiàn)它們時有哪些需要注意呢?在此提供以下一些設(shè)計原則以供大家參考:
建立完整數(shù)據(jù)模型
我們在設(shè)計私有云平臺時,會建立完整的私有云數(shù)據(jù)模型,如快照、磁盤、云主機、VPC、路由器等,它們之間存在千絲萬縷的關(guān)系。同樣,在設(shè)計公有云平臺時,也要建立相應(yīng)的數(shù)據(jù)模型。那么在設(shè)計混合云時,就必須同時建立這二者的模型,并且必須是完整的,因為存在許多關(guān)聯(lián)關(guān)系,導(dǎo)致缺少任意一個資源的模型,都不能算完整。
布設(shè)虛擬ID
公有云資源映射到本地,成為一個虛擬資源。我們需要給每一個公有云資源分配一個本地的虛擬ID,而不能直接使用公有云的ID。因為在多租戶的場景下,公有云的ID在本地并非是唯一的,只有本地的ID才能保證它的唯一性。
觸發(fā)同步
由于存在映射關(guān)系,所以需要進行同步,同步可以是主動觸發(fā),也可以是被動觸發(fā)的。同步的目的:一是讓用戶在公有云控制臺上做的操作也能及時反映到本地,二是保證所有的讀寫操作都在本地進行,讓操作的流暢程度達到毫秒級。正是有了同步,混合云資源的操作速度,可以比直接在公有云控制臺上操作快了兩個數(shù)量級,這讓用戶可以放心地做更多的事。
遍歷資源模型
云計算的資源模型是樹狀的結(jié)構(gòu),因此任何操作都需要遍歷這棵樹,以便讓它的所有父子資源和相關(guān)資源都能得到及時的變更。例如刪除或同步一個VPC,需要遍歷它下面所有的交換機、安全組、云主機、EIP、NAT網(wǎng)關(guān)、路由表、安全規(guī)則等等,進行相應(yīng)的變更,出現(xiàn)失敗時要能按順序進行回滾,保證操作的原子性。又比如刪除一個本地網(wǎng)絡(luò),需要遍歷所有指向它的資源,如路由設(shè)備,監(jiān)控指標等等,進行路由的變更,和網(wǎng)絡(luò)拓撲關(guān)系的自動適配,而不是簡單刪除就可以,下圖為VPN連接的混合云數(shù)據(jù)模型。