應(yīng)用程序遷移到云平臺的最佳實踐
infoq 發(fā)表于:13年04月18日 14:30 [轉(zhuǎn)載] DOIT.com.cn
越來越多的開發(fā)者和公司選擇將應(yīng)用程序遷移到云平臺上,對于真正的企業(yè)級產(chǎn)品來說,這個過程不是簡單的點幾個按鈕就大功告成。我們需要從云平臺的環(huán)境特點出發(fā),對自身的產(chǎn)品做一定的適應(yīng)調(diào)整。IBM云平臺專家Sheetal和Ashish總結(jié)了應(yīng)用程序遷移到云平臺的最佳實踐,包括支持靜默安裝、控制磁盤空間使用、設(shè)置應(yīng)該由 API 或 CLI 來完成、跟蹤和日志信息必須通過 API/CLI 收集等。
Sheetal和Ashish將遷移分為3種場景,分別為:
將您的應(yīng)用程序集成到另一個云產(chǎn)品中——目前需求是增強現(xiàn)有云應(yīng)用程序以及您的應(yīng)用程序功能。目標(biāo)是實現(xiàn)無縫集成。通常,在需要將新功能引入到現(xiàn)有的產(chǎn)品時,就會涉及從頭開始設(shè)計和開發(fā)新功能;另一個可選方案是利用一個現(xiàn)有產(chǎn)品(這種情況下,不需要啟用云),將其功能集成到云產(chǎn)品。在這種情況下,您必須確定您的應(yīng)用程序可以與現(xiàn)有云產(chǎn)品正確 “連接”。
將您的應(yīng)用程序添加到另一個在云中托管的設(shè)備——一個云設(shè)備由預(yù)安裝和預(yù)配置軟件和應(yīng)用程序構(gòu)成;有時也可用作一個自包含服務(wù)器。當(dāng)您計劃添加一個附加應(yīng)用程序到現(xiàn)有云設(shè)備包以增強其功能時,確保您的應(yīng)用程序可與軟件包中的其他應(yīng)用程序和配置文件以及設(shè)備資源依賴項正確交互。
將您的應(yīng)用程序作為一個獨立的云設(shè)備進行托管——將您的應(yīng)用程序用于云環(huán)境的一個方法是在其自身的云設(shè)備中使用,特別是如果不需要將它與另一個云應(yīng)用程序集成時。
對于如何實現(xiàn)順利遷移,他們提出了應(yīng)用程序自身調(diào)整的若干實踐,包括支持靜默安裝:
在安裝過程中不顯示消息或窗口的安裝稱為靜默安裝。當(dāng)將一個應(yīng)用程序集成到另一個應(yīng)用程序或一個設(shè)備時,它就成為單一產(chǎn)品的一部分,單個安裝程序是首選創(chuàng)建的。如果您的產(chǎn)品不能以靜默方式安裝,對您的產(chǎn)品來說,在單個安裝過程中信息來自用戶請求,而此時設(shè)備團隊可能不想顯示/詢問其用戶。這對用戶來說是一種麻煩,對于他們來說并不需要了解這些基礎(chǔ)產(chǎn)品的詳細(xì)信息。如果靜默安裝不可用,您將失去已經(jīng)取得的高效性,因為對于用戶來說,就像是安裝兩個不同的產(chǎn)品。
控制磁盤空間使用也很重要:您的系統(tǒng)資源應(yīng)該能夠自動地縮減所占的磁盤空間以幫助控制磁盤使用。如果將您產(chǎn)品的功能和流程會產(chǎn)生日志并跟蹤數(shù)據(jù)到一個輸出文件,設(shè)備服務(wù)器中應(yīng)該有一個流程以限制該數(shù)據(jù)流來防止內(nèi)存不足問題的出現(xiàn)。創(chuàng)建一個屬性文件,定義即將生成的輸出文件的大小和數(shù)量。這些值應(yīng)該能由系統(tǒng)管理員編輯。創(chuàng)建一個進程以監(jiān)控這些文件。
應(yīng)該由 API 或 CLI 來完成設(shè)置和收集跟蹤、日志信息:
您必須能夠通過 API 或命令行界面訪問和操作所有配置設(shè)置。由于 REST Web 服務(wù)提供的松耦合性、輕量級以及可互操作性,它們是非常流行的,可能是您最常遇見的一個。如果其他流程需要手工更改一些屬性文件或其他文件,可采用它以便于 CLI 或 API 完成那些更改。如果在設(shè)備或者設(shè)備部分整體功能的安裝過程中需要完成一個特定設(shè)置或配置,使用這些 ACL 或 API 來完成。設(shè)計應(yīng)該是這樣的,設(shè)備不需要了解應(yīng)用程序的內(nèi)部設(shè)計就能夠?qū)υO(shè)置進行任意更改,你應(yīng)該可以使用 CLI 來完成。另外,無論在何處更改這類配置或設(shè)置無論在何處更改,在理想情況下,應(yīng)及時生效,而不需要要重啟應(yīng)用程序;這樣就不會擾亂整個設(shè)備的運行。
當(dāng)產(chǎn)品中出現(xiàn)問題時,要完全診斷清楚,從產(chǎn)品中收集日志是非常重要的。采用命令行機制(或其他)來執(zhí)行選擇性或隔離診斷操作;操作將不會影響整個設(shè)備。這包括收集可直接被管理員所用的日志/跟蹤信息的功能。
高可用性支持是一個很好的優(yōu)勢:大多數(shù) IBM 設(shè)備嘗試支持高可用性;客戶也有此需求。如果您的產(chǎn)品不支持高可用性,那么該設(shè)備的整個高可用性功效就會大打折扣。讓您的產(chǎn)品在開發(fā)初期就完成高可用性設(shè)計或者留有一定空間將來開發(fā),都是一個不錯的主意。
除此之外,還包括:
提供生命周期功能——任何作為您應(yīng)用程序的一部分運行的進程、線程或守護進程必須有其自己的生命周期功能。它應(yīng)該提供開啟、暫停和停止的常見狀態(tài),而且應(yīng)該有一個方式可讓產(chǎn)品自己使用 CLI 或 API 控制這些狀態(tài)。
所有配置均應(yīng)是可重配置的——預(yù)安裝階段假設(shè)的任何配置必須在設(shè)備創(chuàng)建時能夠進行重置(Reset),也可選項根據(jù)用戶需求重新配置。
能夠在設(shè)備中激活和禁用應(yīng)用程序——這對您的應(yīng)用程序來說是一個很強大的優(yōu)勢,可通過使用一個命令行、API 或 GUI 激活或禁用應(yīng)用程序,這樣產(chǎn)品相關(guān)文件仍然駐留在磁盤中,但是不能消耗其托管系統(tǒng)的 CPU 和內(nèi)存資源。這樣,您就可以將您的產(chǎn)品嵌入到另一個產(chǎn)品中,在需要時通過開啟或關(guān)閉來使用它。在云中,一個設(shè)備可以通過解除相關(guān)特性來關(guān)閉它所提供的某些服務(wù),即使是在該應(yīng)用程序正托管初始產(chǎn)品的時候。
命令應(yīng)可在任何 shell 中運行——盡量確保所有命令不受限于任何特定 shell。與您應(yīng)用程序相關(guān)的 CLI 命令(至少是最重要的那個)不應(yīng)限制為只能在某個 shell 上運行。集成到您產(chǎn)品的設(shè)備可能在不同的 shell 上運行,不一定是您選擇的那個;在這種情況下,您將不能運行 CLI 命令,僅僅因為 shell 不同。
啟用版本標(biāo)記、使數(shù)據(jù)備份和恢復(fù)可用、應(yīng)用程序應(yīng)是獨立的自給自足的、API 應(yīng)該能夠?qū)?shù)據(jù)導(dǎo)入或?qū)С鰬?yīng)用程序、提供一個編程式方法來管理用戶、最大限度地減少對外部的依賴關(guān)系、有一個可以徹底終止程序的 API等也在最佳實踐之列。
公司簡介 | 媒體優(yōu)勢 | 廣告服務(wù) | 客戶寄語 | DOIT歷程 | 誠聘英才 | 聯(lián)系我們 | 會員注冊 | 訂閱中心
Copyright © 2013 DOIT Media, All rights Reserved. 北京楚科信息技術(shù)有限公司 版權(quán)所有.