藉由雲端感知應用程式最佳化雲端運算的 優勢 ·...

11
藉由雲端感知應用程式最佳化雲端運算的 優勢 IT@Intel 白皮書 Intel IT IT 最佳實務 雲端感知應用程式 2013 11 Intel IT 正協助 Intel 開發人員 設計可最佳化雲端優勢的雲端 感知應用程式,例如自助式服 務佈建、靈活度、可在任何地 點執行的設計、多租用戶,以 及避免錯誤的設計。 Catherine Spence IT Intel 企業架構設計人員 Munir Ghamrawi Intel IT 雲端自動化工程師 Ravi Giri Intel IT 資深工程師 Winson Chan Intel IT 雲端自動化工程師 Esteban Gutierrez Intel IT 資深資訊安全技術人員 Das Kamhout Intel IT 首席工程師/雲端部門主管 執行概覽 隨著 Intel IT 持續廣泛採用雲端運算,Intel 軟體開發目前正經歷重大的變革。Intel 架構 設計和開發人員目前正在學習如何設計可最佳化雲端優勢的雲端感知應用程式,例如自 助式服務佈建、靈活度、可在任何地點執行的設計、多租用戶,以及避免錯誤的設計。 提供設計人員所需要的工具來建立能讓 Intel 在各方面皆享有優勢的雲端感知應用 程式。 縮短企業應用程式的上市時間 快速採用先進技術 透過彈性、隨需使用的雲端基礎架構提 升成本和資源效益 使用混合雲端模式提供較大的主機服務 應用彈性 透過更為輕鬆的資料整合提供創新的 商機 新行動運算裝置和使用模式的實作更為 簡單 專為雲端運算所設計的雲端感知應用程 式需要以全新的思考模式來完成。為了 加快佈署速度,Intel IT 會套用從網格運 算取得的關鍵要點,並採用最佳的雲端作 法,例如消費型網路服務以及高可用性 的設計。我們的策略是要在企業應用程 式架構上,採用以雲端為基礎的後端系 統加上支援多重平台的前端系統,以主 動揭露並運用內建安全防護功能的網路 服務。透過 Code-A-Thons 和其他活動, 我們會以此一新範例來訓練開發人員,並 在過程中驗證我們對於創新想法的策略性 靈活度目標。 藉由增加公有和私有雲端之間的互通性, 雲端感知應用程式的設計將會是重要的步 驟,使我們能順利採用聯合、可互通及開 放式雲端做為提供服務的標準方式。我們 相信完善的雲端感知應用程式開發流程, 是最佳化混合雲端優勢的關鍵步驟,而且 還能有效加強企業應用程式的可靠性、安 全性和靈活度。

Upload: others

Post on 16-Sep-2019

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 藉由雲端感知應用程式最佳化雲端運算的 優勢 · 藉由雲端感知應用程式最佳化雲端運算的 優勢 IT@Intel 白皮書 Intel IT IT 最佳實務 雲端感知應用程式

藉由雲端感知應用程式最佳化雲端運算的

優勢

IT@Intel 白皮書Intel ITIT 最佳實務

雲端感知應用程式

2013 年 11 月

Intel IT 正協助 Intel 開發人員 設計可最佳化雲端優勢的雲端

感知應用程式,例如自助式服

務佈建、靈活度、可在任何地

點執行的設計、多租用戶,以

及避免錯誤的設計。

Catherine Spence IT Intel 企業架構設計人員

Munir Ghamrawi Intel IT 雲端自動化工程師

Ravi Giri Intel IT 資深工程師

Winson Chan Intel IT 雲端自動化工程師

Esteban Gutierrez Intel IT 資深資訊安全技術人員

Das Kamhout Intel IT 首席工程師/雲端部門主管

執行概覽

隨著 Intel IT 持續廣泛採用雲端運算,Intel 軟體開發目前正經歷重大的變革。Intel 架構

設計和開發人員目前正在學習如何設計可最佳化雲端優勢的雲端感知應用程式,例如自

助式服務佈建、靈活度、可在任何地點執行的設計、多租用戶,以及避免錯誤的設計。

提供設計人員所需要的工具來建立能讓 Intel 在各方面皆享有優勢的雲端感知應用

程式。

• 縮短企業應用程式的上市時間

• 快速採用先進技術

• 透過彈性、隨需使用的雲端基礎架構提

升成本和資源效益

• 使用混合雲端模式提供較大的主機服務

應用彈性

• 透過更為輕鬆的資料整合提供創新的

商機

• 新行動運算裝置和使用模式的實作更為

簡單

專為雲端運算所設計的雲端感知應用程

式需要以全新的思考模式來完成。為了

加快佈署速度,Intel IT 會套用從網格運

算取得的關鍵要點,並採用最佳的雲端作

法,例如消費型網路服務以及高可用性

的設計。我們的策略是要在企業應用程

式架構上,採用以雲端為基礎的後端系

統加上支援多重平台的前端系統,以主

動揭露並運用內建安全防護功能的網路

服務。透過 Code-A-Thons 和其他活動, 我們會以此一新範例來訓練開發人員,並

在過程中驗證我們對於創新想法的策略性

靈活度目標。

藉由增加公有和私有雲端之間的互通性,

雲端感知應用程式的設計將會是重要的步

驟,使我們能順利採用聯合、可互通及開

放式雲端做為提供服務的標準方式。我們

相信完善的雲端感知應用程式開發流程,

是最佳化混合雲端優勢的關鍵步驟,而且

還能有效加強企業應用程式的可靠性、安

全性和靈活度。

Page 2: 藉由雲端感知應用程式最佳化雲端運算的 優勢 · 藉由雲端感知應用程式最佳化雲端運算的 優勢 IT@Intel 白皮書 Intel IT IT 最佳實務 雲端感知應用程式

2 www.intel.com/IT

IT@Intel 白皮書 藉由雲端感知應用程式最佳化雲端運算的優勢

內容

執行概覽 ................................................................ 1

背景 ........................................................................ 2

解決方案 .............................................................. 4

直接套用網格 運算的關鍵知識 ......................................... 4

開發消費式網路服務 ............................. 5

高可用性設計 ............................................... 7

安全性 ..............................................................10

結果 .....................................................................11

結語 .....................................................................11

相關資訊 .............................................................11

英文字母縮寫字 ..........................................11

IT@INTEL IT@Intel 計畫透過組織內部同儕來與

全世界的 IT 專業人員連結,並分享學

習到的知識、方法和策略。我們的目

標很簡單: 共同分享可創造商業價值

和 IT 競爭優勢的 Intel IT 最佳實務。

請立即造訪 www.intel.com/IT 或與您當

地的 Intel 代表聯繫以取得更多資訊。

背景Intel IT 於 2010 年開始轉換至雲端運

算,並持續朝向混合雲端主機服務模式

的目標邁進。這些成果能讓我們提升靈

活度、延展性和效率。我們最初的重點

在於最佳化資料中心和雲端基礎架構,

但軟體應用程式在 IT 服務的使用方式、

時間及地點方面仍扮演重要角色。我們

瞭解,若要取得更佳的商業利益,我

們必須重新設計雲端感知應用程式的 開發,以充分運用雲端的優勢。

為了協助您瞭解在企業中採用雲端運算

的情況,Intel 使用了開放資料中心聯盟 (Open Data Center Alliance,ODCA) 提供的

雲端成熟度模式模型 (請參閱圖 1)。此

聯盟包含了 300 家以上具領導地位的企

業,代表了每年花費數十億美元的預算在 IT 投資、雲端研究和專案。

雲端成熟度模型可透過端對端視覺化方

式,顯示企業中的雲端使用如何隨時間進

化。當雲端實作達到成熟階段時,將會變

得更複雜、更廣泛,並達到最佳化目標。

根據 ODCA 的產業經驗,許多大型企業都

會沿著相同的整體軌跡成長,但採用比率

卻有所不同。

圖 1 中每個階段所標示的時間範圍是以 Intel IT 為例。我們在 2010-2011這段時

間內使用的是 1.0 版。我們預計在 2015 年升級至 3.0 版,提供聯合、可互通及開

放式雲端,並於所有的雲端服務模型中

採用包括軟體即服務 (SaaS)、平台即服務 (PaaS) 以及基礎架構即服務 (IaaS)。我們

將可在私有及公有雲端之間建立使用者身

分的聯盟關係。我們可以輕鬆地在雲端

之間互通工作負載,同時將轉換成本降

到最低。此外,我們還建立了下一代的

企業私有雲端,並利用開放式解決方案

以加速開放原始碼社群功能的導入。透

過聯合、互通及開放式雲端,Intel IT 在雲端服務供應商的選擇上將具有極大的 彈性,並可根據使用者需求、成本、位置

和法規要求進行選擇。

為了加快開發進程並充分發揮雲端的價

值,Intel IT 目前正訓練開發人員設計雲

端感知應用程式以充分利用我們的 PaaS 和 IaaS 服務。雲端感知應用程式可提升

雲端服務的運用能力,並根據需求量來增

加及縮減基礎架構以充分發揮其效率。這

些應用程式也可順暢地在內部及外部之間

轉換,提供最佳的位置、成本、效能及風

險管理。相較於傳統應用程式,雲端感知

應用程式具有較佳的彈性,並可提供更高

層級的服務,例如更快速的平均復原時間 (Mean Time to Recovery,MTTR)。

雲端感知應用程式開發技術以傳統應用程

式開發的最佳實務為基礎,並透過自助式

服務工具和自動化更快速地在企業私有雲

端上提供主機服務。Intel IT 的開發人員可

選擇下列其中一項:

• PaaS,提供預先佈建的環境,其中的

作業系統、抽象中介軟體和基礎架構可

讓開發人員更快速地部署應用程式,而

不需要佈建伺服器。我們的 PaaS 實作

可透過自助式服務、隨需使用工具、資

源、自動化以及企業私有雲端中的主控

平台進行快速應用程式部署。PaaS 可

透過範本的使用、資源共用、可重複使

用的網路服務和大範圍多租用戶,協助

您建立雲端感知應用程式。

Page 4: 藉由雲端感知應用程式最佳化雲端運算的 優勢 · 藉由雲端感知應用程式最佳化雲端運算的 優勢 IT@Intel 白皮書 Intel IT IT 最佳實務 雲端感知應用程式

4 www.intel.com/IT

IT@Intel 白皮書 藉由雲端感知應用程式最佳化雲端運算的優勢

雲端感知應用程式提供額外的好處,包括

下列各項:

• 可支援多租用戶 (使用者群組) 和一般應

用程式、平台和基礎架構的設計。

• 可視性和控制限制可避免個別應用程式

完全控制基礎架構和作業系統,進而變

更抽象組態設定。

• 自助式服務功能讓使用者能充分利用雲

端,而不需要建立 IT 服務要求。

• 其靈活度特性可讓應用程式依流程需要

擴增及縮減,為最佳化「使用者付費」

的雲端計價模式。

• 軟體及硬體元件所具備的可進化特性可

在應用程式之下進行更新。

• 應用程式透過組合式設計可分割成不同

的個別服務以供單獨使用,或者可以

快速與其他服務結合以建立更複雜的 應用程式

對於大部分的開發人員而言,雲端感知應

用程式是最為重大的變革,以因應不同的

行動裝置和攜帶自有 (BYO) 裝置在企業中

快速成長。我們有必要將應用程式與用戶

端區隔開來,以避免耗費過多的時間及開

銷來個別處理各種外型規格、瀏覽器和作

業系統。雲端可提供完美的可擴充式後端

架構,以因應裝置激增所帶動的需求量成

長,同時可讓軟體開發人員建置各種應

用程式及服務,使 IT 消費者可在任何時

間、任何地點進行存取。

解決方案 為了加快企業開發雲端感知應用程式的速

度,Intel IT 目前著重於三個關鍵領域: 直接套用網格運算的關鍵知識、開發做為

軟體元件使用的消費式網路服務,以及高

可用性的設計。透過這些努力,我們已能

夠將應用程式與用戶端區隔開來,不但能

輕鬆重複使用軟體元件,更可提供各層級

的安全性以及符合未來需求的設計。

直接套用網格運算的關鍵知識網格運算的概念比雲端運算更早,並 提供一連串的最佳作法以設計雲端感知應

用程式。在網格運算中,多個位置上的個

別電腦會透過專用、高速網路連接,以共

用記憶體、儲存空間和其他資源以達成共

同的目標。這些運算資源會由資源或工作

負載排程器進行協調,以使用間接運算法

決定要在哪個運算節點和位置上完成哪

種運算。此一分散式運算類似於許多許

多雲端解決方案,其中包含地理分佈元

件、VM 上的工作負載排程,以及維護高

使用率的目標。

從 2005 年起,Intel 就已具備全球網格運

算能力,可將分散的運算工作負載置於

遍佈於全世界數萬個運算節點上執行。

網格運算的許多特性也適用於雲端運算 環境中。

• 可在任何地方執行。Intel 的全球矽設計

運算橫跨 30 個以上的地理位置。每個

專案都需要一些初步的工作,以確保必

要資料、中繼資料和組態的可用性。

• 彈性的調整。彈性調整功能可充分利用

遍佈於全世界的閒置資源,以應付無法

預測的數百萬小時的運算需求,或使

用閒置資源降低可預測需求的資本支

出。過去 12 個月內,在任何特定時間

點上,此功能於三大資料中心位置就已

執行 87,000 個以上的工作負載 (透過正

常化以針對伺服器平台生產量提升進行 調整)。

• 多租用戶資源共用。我們的網格環境著

重於高使用率的維護,在此狀態中,跨

專案的應用程式及業務單位可共用相同

的運算資源。

• 失敗或無狀態運算的設計。在無狀態運

算中,軟體不會追蹤組態設定、交易 資訊,或下一個工作階段的任何其他資

料。這對於網格運算來說是一種絕佳的

方式 (從應用程式觀點來看),因為網格

中的每個運算節點會與其他節點完全 相同。當個別 (或多個) 運算節點錯誤

時,只需要在另一個運算節點上重新排

程特定應用程式執行個體,這對使用者

來說是完全透明的。

從傳統本地化叢集移轉至全球網格必須大

幅改變應用程式開發人員所採用的方式。 在本機環境中可不具有相依性,例如對於

特定電腦或 IP 位址的資料路徑參照。

Page 5: 藉由雲端感知應用程式最佳化雲端運算的 優勢 · 藉由雲端感知應用程式最佳化雲端運算的 優勢 IT@Intel 白皮書 Intel IT IT 最佳實務 雲端感知應用程式

www.intel.com/IT 5

藉由雲端感知應用程式最佳化雲端運算的優勢 IT@Intel 白皮書

Intel IT 部門建立了一個架構可讓開發人

員移轉現有應用程式和工具至全球網格

環境中執行。抽象層或虛擬的集區,可

讓資源排程器協調跨越不同位置的資源。 全域命名空間可確保資料路徑保持一致,

且不受執行應用程式的地理位置所影響。

全球組態管理系統可確保資源排程器執

行特定應用程式時選擇的運算節點能 保持一致,並可針對該應用程式進行 最佳化。

網格和雲端運算的相似及相異之處

網格運算做為雲端運算的先驅,可在雲端

感知應用程式的開發上提供一些指引。網

格運算如同雲端運算一般,具備事件導向

特性並且相當依賴佇列功能。若要讓應用

程式減少對於特定系統、環境或資料中心

的依賴,則兩方都需要運用共同的技術。

其他常見的特性包括可延展與可調整的環

境。在網格運算中,個別運算節點都相對

較小,但數量卻較為龐大。在雲端運算

中,運算節點不但規模較大且數量眾多。

網格和雲端運算之間的主要差異在於彈

性。雲端服務可以透過動態方式進行擴增

和縮減以符合需求,網格則是一種靜態環

境。此外,雲端可提供測量消耗量與資源

用量的功能,並可提供隨需使用的自助式

服務。

對於開發人員來說,大部分的網格運算環

境設計都可提供一般運算系統的同質基

礎、軟體程式庫等,以簡化應用程式開

發。在雲端運算環境中,尤其是混合雲

端,可能會呈現混合的環境。另一個主

要差異就是,幾乎所有的應用程式都使

用批次模式執行的網格運算,並未涉及

與使用者的互動。相反的,雲端運算中

有大量應用程式都需要與使用者互動。

採用雲端運算的作法

雖然 Intel IT 如今仍會執行大規模網格設

計,但我們預期雲端將會不斷演進。從網

格移至雲端可讓我們透過環境的整合更有

效地利用資源,並將工作負載導入可支援

高效能運算的特定處理器。

Intel IT 已著手進行雲端設計計畫,轉換網

格環境以納入數個雲端運算元素。

• 自助式服務。指定必要組態、中繼資

料,且避免其他初步工作影響全球執行

的應用程式,可為網格運算提供相當大

的優勢。

• 可視性和控制。我們目前投資開發的功

能可讓使用者完全掌控環境的狀態以及

透過使用者介面或標準化網路服務 API 管理資源的能力。

• 可組合。我們預期此一關鍵雲端特性可

為網格運算帶來相當大的優勢。舉例來

說,在網格環境中執行的某些應用程式

需要網路感知功能以確保相關的工作位

於附近的運算節點。我們預期在將來從

網路感知移轉至網路控制,使應用程式

能定義最佳執行方式所需要的網路組態

類型。

由於 Intel IT 網格運算經驗會大幅影響我

們的雲端進程,而我們的雲端經驗將可為

網格運算提供新的觀點,我們可以預見未

來這些環境和使用模式將可由單一聯合、 開放及混合雲端所支援。

開發消費式網路服務網路服務是一種在網路或雲端上透過網路

位址提供的軟體功能。隨著 Intel IT 持續佈

署開放式雲端,我們會在每個層級推動消

費式網路服務的建立,因為它是大量自動

化雲端並啟用自助服務的唯一方法。同樣

地,我們的軟體應用程式開發人員需要採

用新的概念,使未來的軟體開發人員能將

軟體應用程式與其他應用程式結合,以依

比例建立全新的商業程序和自動化。

Intel 的網路服務偏好使用表徵狀態轉移 (Representational State Transfer,REST) 模式。REST 型 API 依賴 HTTP 且不需要 XML 式網路服務通訊協定 (例如 SOAP 或 WSDL) 以支援輕量型介面。其他 HTTP 的優點包

括從任何平台使用、有效率的快取記憶體

回應,且輕鬆進行延展的能力。REST 式模型可讓開發人員透過標準化方式 (例如

張貼、擷取、放置和刪除) 快速地重複使

用應用程式功能。這些標準化的方法可減

少與新軟體服務使用有關的學習曲線,使

開發人員不需要重新佈署基礎技術。

使用開放原始碼網路服務進行更有效率的

功能可協助我們加速部署作業,並節省自

訂工作 (例如連線至後端) 的程式碼編碼

時間。有越來越多的應用程式所發佈的 API 可讓軟體開發人員輕易地整合資料和 功能,而非個人自行建立,同時也開始出

現易於使用的混合式組合工具。此外,我

們鼓勵 Intel 開發人員透過網路服務公開其

應用程式,讓其他開發人員可以將多個應

用程式混合成可大量生產的新應用程式。 此一作法對於遍及商業程序的應用程式開

發來說特別有價值。開放式 API 資料來源

可快速、輕鬆整合建立豐富解決方案,以

符合不斷進化的商業條件。

某些最新的 API 可讓開發人員建立雲端

應用程式以偵測本機用戶端裝置功能。

Page 7: 藉由雲端感知應用程式最佳化雲端運算的 優勢 · 藉由雲端感知應用程式最佳化雲端運算的 優勢 IT@Intel 白皮書 Intel IT IT 最佳實務 雲端感知應用程式

www.intel.com/IT 7

藉由雲端感知應用程式最佳化雲端運算的優勢 IT@Intel 白皮書

這類用戶端感知可在更大範圍的裝置中部

署更有效率的應用程式。舉例來說,網路

頻寬 API 可以偵測無線訊號強度,使應用

程式可調整內容品質或其他參數。處理器

效能 API 可偵測 CPU 類型,使執行中的

內容或應用程式能以最佳化方式執行,

並顯示在裝置上。第三個 API 會監視電池 電力,以提供應用程式可以使用的電力等

級更新,並通知使用者結束程序或在電源

中斷前採取行動。

高可用性設計雖然雲端基礎架構的目標可能是零失敗,

但實際上仍會發生元件失敗、資料中心關

閉、服務無法使用,或延遲狀況會不斷增

加等情形。因此,我們會設計即使發生服

務中斷時仍可運作的雲端感知應用程式。

設計在分散式環境中發生失敗仍能運作的

應用程式時,會影響整個架構的決策,但

考量使用者體驗時就顯得特別重要。我們

設計的應用程式會在服務中斷時稍微降級

後復原。Intel IT 鼓勵 Intel 開發人員可以使

用各種方法,建構可達到零停機目標的雲

端感知應用程式。

雲端感知的應用程式的設計假設包括靜態

內容與其資料容器在內的所有元件,都可

根據效能需求在任何時間 (以合理近似值) 使用。當元件故障時,將應用程式指向替

代同步處理元件的程序應順暢無阻,且對

於使用者的影響能降到最低。這需要將應

用程式分散至多個位置,提供每個元件的

完全備援以及容錯移轉程序的自動化。

我們使用的高可用性的設計技術包括下列

各項:

• 應用程式資源的自動化及可重複部署,

例如基礎架構、安全性、程式碼或二進

位檔、應用程式組態和資料。

• 可透過新的運算節點輕易分散額外工作

負載。這將需要判斷何時會自動向外擴

充的監視功能和邏輯。此外,規模調整

的功能需要具備快速執行的特性以應付

突然增加的需求量。當需求減少時,我

們也必須能迅速將規模調回。

• 透過監控和自我修復的靈活度,例如從

負載平衡集區移除錯誤節點,以及部署

新節點以修復錯誤節點的能力。其目標

是將應用程式的停機情況降到最低。

避免錯誤的設計

由於雲端會隨著容量的增加和減少而 變化,因此開發人員必須假設在某些雲端

部分可能偶爾會失敗,而且必須主動地測

試應用程式以處理並回應這類錯誤。我們

建議 Intel 開發人員可隨機關閉其部分環

境以測試恢復能力。

為了避免錯誤狀況進行設計,我們建議開

發人員可從應用程式的觀點來看待錯誤的

情況。這表示可將焦點放在應用程式的內

部架構,以及確保分散在多個位置及可用

性區域的正確作業。若應用程式的設計包

含多個可透過 API 相互呼叫的模組,則任

何模組失敗的個別復原時間都會比單一大

型元件應用程式的復原時間更短。元件

化作業可以透過應用程式分區化、資料 分區化、相同元件的多個部署 (執行個體) 達成,並可利用相同部署的多個區域。

另一種技術是,當應用程式的特定部分中

斷時,應用程式該如何提供降級但仍為可

用的功能層級。舉例來說,當推薦引擎中

斷時,使用者應仍可在系統中執行交易。

使用無狀態運算

在傳統的應用程式,狀態通常會儲存在記

憶體中。不過,儲存在記憶體中的狀態可

能會在沒有中斷的情況下遺失,同時狀態

也很難在多個應用程式執行個體之間共

用。因此,對於雲端應用程式來說,我們

發現無狀態應用程式和通訊協定運作最符

合我們的需求。

例如 IP 和 HTTP 等無狀態通訊協定會將

要求視為與先前要求無關的獨立交易。 通訊是由獨立的一組要求和回應所組成。

這類無狀態通訊協定不會在多個需求提出

期間,要求基礎架構保留與每個通訊合作

夥伴有關的工作階段資訊或狀態。

無狀態運算對於雲端編碼有特定影響。 例如,當發生中斷時,應用程式的執行個

體可能會消失。開發人員也需要瞭解,當

發生擴張或應用程式元件失敗時,將無法

取得應用程式的內部狀態。因此,應用程

式狀態應儲存在資料庫、物件存放區或訊

息佇列的計算容器外部。

其目標是讓應用程式盡可能維持無狀態。

舉個例子,當與應用程式中的服務或子程

式通訊時,開發人員應確定必要的資料已

傳遞至應用程式,或讓應用程式從佇列收

集資訊。

Page 8: 藉由雲端感知應用程式最佳化雲端運算的 優勢 · 藉由雲端感知應用程式最佳化雲端運算的 優勢 IT@Intel 白皮書 Intel IT IT 最佳實務 雲端感知應用程式

8 www.intel.com/IT

IT@Intel 白皮書 藉由雲端感知應用程式最佳化雲端運算的優勢

大部分的應用程式都不會在前端伺服器上

儲存任何資訊,因為具有後端資料層的前

端通常必須進行調整。若要成功實作無狀

態運算,開發人員必須變更其檢視硬體需

求、儲存及存取資訊,以及進行調整的 方式。

事件導向應用程式

事件導向應用程式是一種電腦程式,其撰

寫目的是為了回應使用者或系統產生的動

作。對於雲端感知應用程式來說,針對高

可用性進行設計的重要策略是從佇列而非

透過同步呼叫讀取要求,這可讓多個應用

程式執行個體來處理要求。相對於需要準

時進行回應的緊密整合同步呼叫,佇列之

外的工作要求可新增多個應用程式執行個

體,使工作處理速度更快。這可以根據加

入的執行個體大幅改善應用程式的效能。

不僅如此,執行個體遺失、損毀情況還可

降到最低,最有可能遺失的都是單一交

易。佇列中的其他資訊,會繼續分散到不

同的作用中執行個體。

這是一種橫向擴充而非向上擴充

向上擴充永遠都會有中斷點。當開發人員

向上擴充時,應用程式終究會將資源用

盡。舉例來說,向上擴充的資料庫會使應

用程式效能受到限制,而只能達到資料庫

伺服器的效能。如果應用程式感染病毒,

並影響數以百萬計的使用者,則會發生中

斷點。向外 (水平) 擴充,可達到幾乎無限

的延展性。因為應用程式瓶頸可事先預測

並透過應用程式設計加以解決,因此應用

程式可向外調整以充分利用雲端的絕佳擴

充性和靈活度。

我們透過主要資料庫的複本以及分割 資料,將資料庫伺服器向外擴充到多個資

料庫伺服器。透過傳統的資料庫伺服器,

將資料分割而不大幅度變更應用程式會非

常困難。透過目前的資料庫技術,我們可

以實作分區化以將資料分割至其自有的資

料庫伺服器,使應用程式的變動降到最

低,以分割資料庫伺服器並輕鬆地加以管

理,以進行備份、還原、移轉及維護。將 1 TB 即時資料庫分割至四個 250 GB 的資

料庫伺服器來執行資料複製或備份,會比

備份一個超過 1 TB 資料庫的相關輸入/輸出容易得多。

運算和保存功能的完全區隔可提供最佳的

部署與調整彈性。我們選擇適用於所有資

料儲存的網路服務,包括記錄檔和偵錯資

料流。這可保護應用程式不會大幅變更儲

存技術,並減少部署的額外負荷。由於執

行雲端應用程式的運算執行個體上不會儲

存任何內容,因此應用程式可在內部雲

端、公有雲端,或同時在這兩種雲端上

執行。

最終一致性的設計

若要提升資料的可用性,則必須在資料中

心之間複製並進行同步處理。不過,在此

需求的成本和效能之間取得平衡是很重要

的。這對於最終一致性來說更是如此,資

料庫或應用程式已變更的雲端不會登錄數

毫秒的條件。由於多個應用程式執行個體

會存在全球網域的多個可用性區域,同時

包含遠距區域,雲端開發人員必須思考如何

控制資料庫中不同執行個體之間的不一致。

其中一個方法就是分割 (shard) 資料,以

管理本端資料中心以及其他遠端資料中心

的調整需求。每個 shard 都是包含一個或

多個資料列的資料庫的一部分。在使用

所謂的 GEO shard 時,表示我們將特定地

理區域的資料寫入特定網站。在每個 GEO shard 中,我們會建立本地 shard 以在資料

中心內調整。為了確保高可用性,我們會

使用複寫技術,將每個 shard 鏡射至另一

個網站。

舉例來說,如果您使用主動/主動設計模

式將應用程式分散在全球網域中,存取

該應用程式的使用者會使用地理上最接近

的執行個體。與該應用程式有關的資料會

在各種資料中心上主控的資料庫之間進行

分區化。為達到此目的,相同資料表的資

料庫執行個體之間會建立水平資料分割,

以在不同資料中心產生不同的資料台。最

後,資料在經過一段時間後變成一致,並

於資料庫執行個體之間同步處理更新。

Page 9: 藉由雲端感知應用程式最佳化雲端運算的 優勢 · 藉由雲端感知應用程式最佳化雲端運算的 優勢 IT@Intel 白皮書 Intel IT IT 最佳實務 雲端感知應用程式

www.intel.com/IT 9

藉由雲端感知應用程式最佳化雲端運算的優勢 IT@Intel 白皮書

在最終的一致性中,應用程式必須能夠處

理多個資料中心之間的資料延遲。當應用

程式選擇仍在傳輸中的資料時,它就必須

重試該方法,以符合數毫秒的延遲需求。

應用程式也必須在最終一致性中以不同方

式管理唯一性。由於資料位於多個位置,

應用程式必須能夠識別不符唯一性的情況

並加以調整。如果應用程式嘗試插入剛插

入另一個資料中心的特定資料,則應用程

式必須進行查詢,查看其是否存在於這些

其他位置中,並據此調整更新作業。

不建議在所有應用程式中使用最終一致

性,尤其是在所有時間都需要精準資訊

的應用程式,例如庫存系統。雖然對於許

多應用程式來說,最終一致性皆能正常運

作。舉例來說,針對特定地理區域的資料

中心,位於不同區域的人通常不會存取全

球會議室排程應用程式所涉及的資料。

在某些情況下,開發人員必須進行衝突解

決。以會議室排程應用程式為例。如果某

個從一個區域移動至另一個位置的人嘗試

保留目的端的會議室,則該地必須能處理

位於目的地設施的人同時嘗試保留相同會

議室的情況。否則,這兩方可能會收到確

認訊息。透過確認時間延遲,或 Paxos 共識通訊協定採用數個達到協議值的訊息就

可解決此問題。

主動/被動與主動/主動設計

我們可透過兩種方法符合高可用性需求,

並處理無法預期的需求:使用主動/被動

和主動/主動設計。在主動/被動設計中,

應用程式會部署到可提供 IaaS 或 PaaS 的兩個不同地點或可用性區域 (請參閱圖 2 顯示在左邊的主動/被動設計使用資料庫

的被動複本以進行容錯移轉。顯示在右邊

的主動/主動設計則使用兩個使用中的應

用程式與其資料的複本,以提供改善的服

務可用性並啟用容錯移轉)。這兩個位置

都會執行應用程式的執行個體,但一次

只有一個位置進行運作。本機負載平衡

器會處理的區域的應用程式執行個體,

而全球負載平衡器會執行狀況檢查,以

決定要傳送使用者要求的位置。由於資

料庫會在後端鏡射,當遺失一個位置

時,狀況檢查會自動容錯移轉至其他 位置。

針對全球服務可用性,我們會選擇使用主

動/主動設定。在此情況下,這兩個位置

都會處於作用中狀態、同時執行、處理

不同的使用者,並準備好在必要時進行相

互容錯移轉。當某個位置錯誤時,全球負

載平衡器會將負載轉散發至剩餘的位置。 主動/主動的優點是可改善雲端資源的使

用率,並透過多個作用中位置提供與使用

者最接近的服務可用性。由於每個雲端皆

為作用中狀態,因此雲端應用程式必須針

對主動/主動設計撰寫,特別是對於衝突

解決來說更是如此。

Intel IT 已經開始進行主動/主動設計模

式,將主動/主動概念延伸至結合公有和

私有雲端的組合中的三個資料中心。

位置 1 – 主動

資料庫

負載平衡器

App1 執行個體 1

應用程式堆疊

App1 執行個體 2

位置 2 – 被動

負載平衡器

App1 執行個體 1

應用程式堆疊

App1 執行個體 2

資料庫

鏡像

全域負載平衡器

主動

一般使用者用戶端

主動/被動設計使用被動的應用程式與資料的複本以啟用容錯移轉

被動

同步複製

全域負載平衡器

主動

一般使用者用戶端

主動/主動設計使用兩個主動的應用程式與資料的複本以啟用容錯移轉

應用程式提供的解決方案

主動

位置 1 – 主動

資料庫

負載平衡器

App1 執行個體 1

應用程式堆疊

App1 執行個體 2

位置 2 – 主動

資料庫

負載平衡器

App1 執行個體 1

應用程式堆疊

App1 執行個體 2

圖 2 顯示在左邊的主動/被動設計使用資料庫的被動複本以進行容錯移轉。顯示在右邊的主動/主動設計則使用兩個使用中的應用程式與其資料的複

本,以提供改善的服務可用性並啟用容錯移轉。

Page 11: 藉由雲端感知應用程式最佳化雲端運算的 優勢 · 藉由雲端感知應用程式最佳化雲端運算的 優勢 IT@Intel 白皮書 Intel IT IT 最佳實務 雲端感知應用程式

藉由雲端感知應用程式最佳化雲端運算的優勢 IT@Intel 白皮書

本文件提供的資訊與 Intel 產品有關。本文件並未透過禁反言或任何其他方式,授予任何明示或暗示之智慧財產權。除了 Intel 在這類產品的銷售條款與細則所提供的內容之外,Intel 不需負任何責任,此外,Intel 拒絕提供關於銷售及/或使用 Intel 產品之任何明示或暗示的保固,包括有關特定用途的適合性、適銷性,或是侵犯任何專利、版權或其他智慧財產權的責任或保固。

Intel、Intel logo以及 Ultrabook 是 Intel 公司在美國和其它國家的商標。

*其他名稱與品牌可能業經宣告為他人之財產。

Copyright © 2013 Intel Corporation. 版權所有。 列印地:美國 請回收資源 1213/WWES/KC/PDF 328755-001US

如須關於 Intel IT 最佳實務的進一步資訊, 請造訪 www.intel.com/it。

結果Intel IT 針對雲端感知應用程式開發所實

作的雲端服務模型及提供的架構指南和訓

練,正不斷改變 Intel 開發人員的思考及

作業模式。因此,我們將以重新開始設計

的應用程式為目標,以大幅提升雲端優勢

並加速上市時間。

我們已經達到數個達里程碑。

• 我們已有超過 400 名 IT 員工符合雲端

感知的開發技術的準則,以協助我們與

這些員工及他們的經理順利溝通。

• 建立為雲端感知應用程式所特別規劃的

訓練計畫,已成為我們「提升至雲端技

術」生涯規劃材料的一部分。我們正在

努力開發用來測量熟練度的方法。

• 針對與雲端感知應用程式有關的特定主

題提供一連串自我學習的資料,包括雲

端簡介、雲端主機服務選項等等。

• 從 2013 年到目前為止我們已透過三個

位於加州、新墨西哥州和以色列的 Code-A-Thons 計畫完成共 60 人次的訓練。我

們共有五個 2013 年的計畫,受訓人員

分別來自 Intel IT 和各種 Intel 事業團隊。

有超過 75 人已報名即將於馬來西亞 和印度舉行的 Code-A-Thons 計畫。

結語Intel IT 已透過雲端架構的端對端模型大

幅提升移轉至雲端運算的價值。持續不斷

的雲端感知應用程式開發與實作在發揮其

價值上扮演了關鍵的角色。

我們針對消費式網路服務和高可用性設計

所採用的網格運算和最佳雲端作法,使 Intel 開發人員能夠透過基礎架構、平台和

軟體等消費式服務快速建立應用程式。這

些應用程式配備多平台前端,因此能完全

適用於各種行動裝置。

在持續不斷開發開放資料中心聯盟的雲端

成熟度模型的同時,Intel IT 發現雲端感知

應用程式取代舊式應用程式的比例正不斷

成長。對於想要採取類似路徑並透過雲端

感知應用程式大幅提升雲端價值的 IT 組織來說,可以採取以下幾個步驟。

• 在雲端感知的應用程式基礎上訓練架構

設計人員和開發人員。

• 建立可重複使用的應用程式設計模式和

範本。

• 推廣雲端感知應用程式的原則。其中包

括使用網路服務以加速部署、採用高可

用性的主動/主動設計,並避免錯誤狀

況進行設計以確保恢復功能。

相關資訊請造訪 www.intel.com/it 以尋找相關主

題的白皮書內容:

• 「 使用開放原始碼軟體加速雲端服務的

開發」

• 「用戶端感知雲端的優勢」

• 「 建立企業私有雲端的最佳實務」

• 「 開發高可用性、動態混合雲端環境」

• 「 利用平台即服務延 Intel 的企業私有

雲端」

英文字母縮寫字

BYO 攜帶自有

CLI 命令列介面

GUI 圖形使用介面

IaaS 基礎架構即服務

JSON JavaScript 物件標記法

MTBF 平均故障時間

MTTR 平均復原時間

PaaS 平台即服務

REST 表徵狀態轉移

SaaS 軟體即服務

TB 兆位元組

VM 虛擬機器