最高效的混合是利用所有組件的有利優(yōu)勢。未來的混合云必須利用公有云的新功能,而且能夠保持私有IT投資中的優(yōu)勢。如果你沒有考慮數(shù)據(jù)中的混合需求,企業(yè)的風(fēng)險(xiǎn)成本就會(huì)直線上升、利益實(shí)現(xiàn)問題,甚至是完全技術(shù)失敗。大多數(shù)用戶表示云項(xiàng)目失敗的主要時(shí)間是在計(jì)劃階段。正確制定項(xiàng)目計(jì)劃,才有良好的機(jī)會(huì)實(shí)現(xiàn)成功。
在為了支持混合化設(shè)計(jì)公有云應(yīng)用時(shí),有四個(gè)因素必須考慮:應(yīng)用模型、平臺(tái)、數(shù)據(jù)庫訪問以及組件如何連接在一起。
選擇應(yīng)用模型
在為未來的混合化設(shè)計(jì)公有云應(yīng)用時(shí),首要考慮的關(guān)鍵因素就是應(yīng)用模型,不管是前端還是后端模型。企業(yè)業(yè)務(wù)部分報(bào)告,他們目前的公有云應(yīng)用三分之二都是前端模型,在這種模型中云技術(shù)加在用戶的當(dāng)前的應(yīng)用系統(tǒng)之間。這也是互聯(lián)網(wǎng)零售應(yīng)用最常用的模型。剩下的大部分企業(yè)則關(guān)注云爆發(fā)或者備份了現(xiàn)有系統(tǒng)的故障恢復(fù)應(yīng)用。
如果你正在為混合化開發(fā)一個(gè)公有云組件,確保調(diào)整當(dāng)前的架構(gòu),適應(yīng)混合的本地端,或者調(diào)整現(xiàn)有的架構(gòu)適應(yīng)云端。這些都是你需要在計(jì)劃階段解決的,因此在應(yīng)用的最初需求和未來需求上都要認(rèn)證考慮。優(yōu)化混合化最必須的是控制公有和私有組件之間的工作流。你需要支持目前的IT時(shí)間,但是你也需要開發(fā)唯一的彈性和臨時(shí)的云屬性。
用平臺(tái)創(chuàng)建和諧關(guān)系
技術(shù)層面的輕松的混合化的基礎(chǔ)就是平臺(tái)和諧。一個(gè)混合云理論上可以通過任何接口集支持工作流,這個(gè)接口可以使公有云支持的,也可以是私有IT支持的。在實(shí)踐中,公有云中有不同的操作系統(tǒng)和中間件,會(huì)讓事情復(fù)雜化,而且變得更加昂貴,尤其是在公有云端的操作支持。
如果你有統(tǒng)一的本地IT架構(gòu),就需要認(rèn)證考慮云端的相同架構(gòu)。如果你計(jì)劃一個(gè)云爆發(fā)或者故障恢復(fù)的混合應(yīng)用,幾乎強(qiáng)制性的要使用在云端和數(shù)據(jù)中心相同的操作系統(tǒng)和中間件。甚至是在構(gòu)建類Web的前端到當(dāng)前的IT平臺(tái)時(shí),要根據(jù)性能加強(qiáng)或者隨著備份調(diào)整架構(gòu)的一些可能運(yùn)行在公有云端的關(guān)鍵組件。
讓數(shù)據(jù)庫訪問公有云和本地IT
在為混合化設(shè)計(jì)公有云應(yīng)用時(shí)要考慮的第三個(gè)問題就是,你如何根據(jù)數(shù)據(jù)需求提供公有云和本地IT資源。存儲(chǔ)關(guān)鍵的企業(yè)數(shù)據(jù)到遠(yuǎn)端設(shè)計(jì)成本和安全問題,因此大多數(shù)用戶選擇將其數(shù)據(jù)庫保留在本地。因此,當(dāng)混合應(yīng)用的云組件必須訪問數(shù)據(jù)時(shí),訪問必須跨WAN在云和數(shù)據(jù)中心之間連接,這樣做也是昂貴和性能密集型的方式。
對于云爆發(fā)或者故障恢復(fù)應(yīng)用,更適合的解決方案就是使用查詢服務(wù)數(shù)據(jù)庫管理系統(tǒng),而不是讓云組件使用標(biāo)準(zhǔn)的磁盤I/O方式訪問數(shù)據(jù)庫。對于前端應(yīng)用,可能在當(dāng)前數(shù)據(jù)庫創(chuàng)建一個(gè)邏輯分離更有價(jià)值。比如,一個(gè)零售的云前端可能使用來源于標(biāo)準(zhǔn)零售庫存應(yīng)用的產(chǎn)品分類,但是不包含庫存數(shù)量信息;用戶瀏覽靜態(tài)分類,但是只在訂單設(shè)置時(shí)連接到真正的數(shù)據(jù)庫。
確定應(yīng)用的“鏈接”
最后的考慮也是最技術(shù)的:你的混合應(yīng)用如何在應(yīng)用程序接口(API)層面上連接,你的應(yīng)用如何管理上下文環(huán)境或者狀態(tài)?在軟件開發(fā)中,組件使用API鏈接,這些API也通常定義了組件如何追蹤他們試圖支持的流程。
為混合換開發(fā)公有云應(yīng)用的挑戰(zhàn)在于,大多數(shù)企業(yè)軟件基于嚴(yán)格的面向服務(wù)架構(gòu)(SOA)和簡單對象訪問協(xié)議(SOAP)的API。云應(yīng)用大部分通常采用REST和HTTP架構(gòu)。不同點(diǎn)在于SOA和SOAP通過多種事務(wù)階段鏈接組件,而且所有的組件通過其API自動(dòng)同步其行為。使用REST或者HTTP時(shí),大多數(shù)情況下的客戶端,瀏覽器界面追蹤上下文環(huán)境,這個(gè)上下文環(huán)境明確地通過這個(gè)API交付到每一個(gè)組件。
實(shí)際的差異在于,任何軟件組件的副本訪問恰當(dāng)?shù)臄?shù)據(jù)庫可以處理任何REST請求,但是SOA-SOAP請求必須通過最初選擇的具體的軟件元素處理。REST架構(gòu)支持簡單的附在共享和負(fù)載均衡,但是SOA-SOAP中就很難實(shí)現(xiàn)。這意味著任何可能包含云爆發(fā)或者故障恢復(fù)的混合架構(gòu)要認(rèn)真考慮REST架構(gòu)。全端應(yīng)用可以使用應(yīng)用組件,運(yùn)行在云端或者本地,來橋接云端REST或者Web友好的架構(gòu)和更為傳統(tǒng)的數(shù)據(jù)中心應(yīng)用架構(gòu)。