雖然為混合云部署開發(fā)應(yīng)用并不是某種黑暗魔法,但是對于很多企業(yè)來說,這還是一項具有一定神秘性的工作。
可以想象,任何設(shè)想進(jìn)行混合云開發(fā)的用戶最終都需要完成很多個這樣的項目,所以首先制定一個可以應(yīng)用于所有項目的實施策略,然后在一個合適的混合部署中測試這個實施策略將是十分明智的做法。為了實現(xiàn)成功的混合云實施,這樣的一個實施策略必須考慮混合云應(yīng)用的任務(wù),使用混合云的緣由,以及混合運(yùn)行與應(yīng)用體驗特質(zhì)(qoe)之間的重要相互作用。
云計算應(yīng)用規(guī)劃者可能犯下的最嚴(yán)重錯誤就是,在考慮綜合、集成或者云計算平臺選擇這樣的技術(shù)問題時不為應(yīng)用本身設(shè)定一個應(yīng)用環(huán)境。應(yīng)用的設(shè)計始終主要是由任務(wù)而非技術(shù)推動的,但是項目任務(wù)書則必須正確地綜合考慮業(yè)務(wù)問題和技術(shù)要求兩方面的因素。
云計算應(yīng)用的方方面面
應(yīng)用是可以實現(xiàn)多維度分類的。它們可以是事務(wù)性的,或者涉及信息傳遞(第一維)。它們可以是移動的,而不是基于桌面系統(tǒng)的(第二維)。最后,它們也都可以是基于會話或者基于實例的(第三維)。在所有這些維度中,第一個選項要比第二個選項需要更多的設(shè)計關(guān)注。
在第一個維度中,事務(wù)性應(yīng)用的功能是那些記錄或修改信息,這就意味著它們必須在與相關(guān)數(shù)據(jù)進(jìn)行交互時具有較高可靠性,以避免造成數(shù)據(jù)損壞的危險。提高可靠性的要求意味著混合應(yīng)用的公共云計算組件必須具有較高的可靠性,或者必須采取特殊的編程措施(例如分兩個階段提交數(shù)據(jù))以保護(hù)數(shù)據(jù)的完整性。如果你將在云計算爆發(fā)或故障轉(zhuǎn)移應(yīng)用中使用混合云,那么事務(wù)性應(yīng)用就需要在任何規(guī)模改變或故障轉(zhuǎn)移活動期間維護(hù)數(shù)據(jù)的完整性。
相反,信息傳遞應(yīng)用可容忍故障或響應(yīng)時間變化;如果第一次請求丟失,那么用戶將需要重復(fù)提交一次請求信息。這就意味著,諸如負(fù)載平衡這樣的簡單技術(shù)將支持應(yīng)用的彈性縮放以及工作任務(wù)在公共云計算與數(shù)據(jù)中心之間的轉(zhuǎn)移。
在第二個維度,移動性會在兩個方面帶來需要特別關(guān)注的問題。第一,移動連接是通過無線網(wǎng)絡(luò)建立起來的,因此其連接可靠性通常要比桌面系統(tǒng)的連接可靠性更低。這一點將加劇事務(wù)性應(yīng)用中數(shù)據(jù)完整性問題的惡化。移動用戶也可能是在多個可變的環(huán)境中工作的,而公共云計算服務(wù)可能是由一個單一的數(shù)據(jù)中心提供的,這樣一來就會帶來明顯的性能差異。如果用戶的分散度較高,那么就需要尋找區(qū)域托管的服務(wù)供應(yīng)商。
基于會話或基于實例的應(yīng)用的問題(第三維度)是指用戶是否會與應(yīng)用進(jìn)行長期的多步驟交互,而不是短期的單次交互。協(xié)作是基于會話交互的一個示例,而簡單處理一次信用卡購買的業(yè)務(wù)就是基于實例應(yīng)用的一個例子。
在應(yīng)用設(shè)計中有一種趨勢,即面向會話的應(yīng)用會通過一個所謂的stateful行為依賴于一個可靠的一致性連接。大部分面向?qū)嵗膽?yīng)用(例如網(wǎng)絡(luò)應(yīng)用)是無需維護(hù)與一個用戶的多階段對話的環(huán)境的(這些被稱為representational狀態(tài)轉(zhuǎn)移或 stateful應(yīng)用)。綜合stateful應(yīng)用要困難得多,因為如果一個組件發(fā)生云計算爆發(fā)或云計算故障轉(zhuǎn)移,應(yīng)用就會丟失一個進(jìn)程中用戶活動的相關(guān)信息。
可以實施綜合的原因可以是因為動態(tài)組件調(diào)度或前后端現(xiàn)有的云計算組件應(yīng)用。動態(tài)調(diào)度意味著在云計算或在數(shù)據(jù)中心內(nèi)根據(jù)工作負(fù)載或者是否有資源失敗的實際情況把資源分配給應(yīng)用組件。
前后端混合應(yīng)用會在用戶和應(yīng)用的其余部分之間開發(fā)一個類似于網(wǎng)絡(luò)的應(yīng)用體驗,充分利用公共云計算的優(yōu)勢來擴(kuò)展這些組件或者根據(jù)用戶的實際物理位置分布把這些組件移動到相應(yīng)的地域。前后端的方法創(chuàng)造了綜合的一個一致性模式,即組件總是在云計算中或在數(shù)據(jù)中心內(nèi),從而簡化了設(shè)計難度。當(dāng)需要動態(tài)地移動組件時,就會實施所有可以確保用戶體驗一致性和數(shù)據(jù)庫完整性的措施。