云計算與移動性這兩大技術的交叉必然是炙熱異常的,而這也是應用程序開發人員和規劃人員所面臨的一大挑戰。因為移動應用程序更具自發性和個性化,所以它們成為了云計算支持的最合適候選者,但是讓移動云應用從一開始就在正確的方向上發展是非常重要的。為了做到這一點,就要從基于工作流的應用程序深度管理開始,以系統的方法引入BYOD支持,使用應用程序生命周期管理(ALM)來統一應用程序的發布。
移動用戶是所有用戶最具地域多元化的用戶,而這一多樣性也同時為云計算帶來了機會和挑戰。云計算允許開發人員把應用程序支持部署在與移動用戶相同的廣泛地域中,但是如果缺乏正確的管理,這也會為成本和性能帶來不利的影響。
移動云應用開發中最顯著的問題是如何把握將應用程序擴展至所謂的“自然分布”。就如同有著一定靜態數據內容的網站主機一樣,它們可以被很容易且低價地復制以提高性能。在云計算中,可以在用戶較為集中的位置部署站點以供本地應用程序訪問。但是,如果應用程序是依賴于托管在企業數據中心中的數據(有可能是出于安全性或成本管理方面的考慮)的,那么所有的應用程序最終將不得不返回數據中心以獲取信息。
為了平衡成本性能與集中化數據存儲處理兩方面的關系,應試圖抽取應用程序工作流程以說明用戶是如何與應用程序進行交互并訪問集中處理存儲的企業信息的。一般而言,應用程序與用戶的交互分為包含選擇表現形式的一系列階段,如收集信息、處理信息和返回結果。在云計算中的關鍵階段是“處理”階段,因為這是云計算外包最難以為應用程序進行定價、提升性能和遵守合規性的所在。應用程序設計的第一目標應當是確保處理階段是工作流中的一個單一環節,這樣就可確保應用程序的其他階段可以被云計算外包、復制和分發。
應用程序階段的概念引入了移動云計算的第二個問題,即如何支持BYOD。解決BYOD問題的一個常見方法是為應用程序開發多個前端以支持各種移動平臺。這樣做是與分布性原則相違背的,因為把每一個前端應用程序組件的副本分發至每一位移動用戶可能出現的區域是一件相當不經濟的做法。
為了更高效地在云計算中支持BYOD,可以有兩個方法:把特定設備格式移至移動設備或者為用戶的應用程序開發多個設備前端組件。如果前端處理是由集中化 “顯示面板”反饋的,那么前者是有效的,因為這個“顯示面板”是專為輕松實現目標設備重新格式化而設計的;而如果“設備-應用程序”的交互被限制于支持所有BYOD目標的歸一化形式(以特定設備的方式),那么后一個方法也是有效的。實際上,開發一個具有基本功能的“虛擬移動設備”就可以在之后為每一個 BYOD目標進行定制。
為每一個設備進行格式轉換的缺點在于,如果為應用程序開發了更多的功能就會造成對新設備支持工作的復雜化。用戶可能可以通過一些“移動后端即服務”的工具來管理這一復雜性,所以在對虛擬移動設備進行架構設計之前審查工具的具體功能是非常明智的一件事。
移動云應用的最后一個問題就是應用程序管理流程。應用程序管理通常被視為移動應用程序本身的版本控制和根據用戶需求和意愿向用戶發布應用程序的組合。移動云應用由于其中的云計算組件而必須被更廣泛地考慮,而更為復雜的結構讓應用程序管理變得更像是ALM,在很多情況下這是最好的入手點。從某種意義上來說,移動云應用管理就是云應用生命周期管理和移動應用程序發布控制的組合。
由于變更因素的多樣性,移動云應用產生了管理方面的問題。業務變更總是會造成應用程序的變更,所以操作系統和中間件元素也需實現有序升級。傳統的ALM是通過為開發人員和操作人員制定“變更-測試-部署”的標準化程序來解決這一問題的。移動云計算不僅引入了另一類的變更(即移動平臺的組合集),而且還至少帶來了新版本交錯部署的潛在問題,這是以往ALM實踐所沒有考慮過的問題。
因為大多數精心設計的移動云應用是多組件和分布式的,其獨特前端處理集是隨著移動設備的改變而變化的,所以是有可能把移動云應用的前端和后端當作兩個獨立應用程序來對待的。這一方法的風險取決于用戶的“虛擬設備”是否真正地實現了兩個應用程序組件的各自獨立。
移動應用程序發布要求將版本控制納入ALM流程中。如果用戶對應用程序或移動設備進行了修改,其影響可能會跨越虛擬設備的邊界,用戶可能不得不更新應用程序組件的設備副本。請確保您的移動應用程序管理工具具有軟件版本控制功能,并對按需更新設備組件有一個科學有效的升級機制。一般來說,您的應用程序管理軟件應當能夠驗證任意被用于運行應用程序的新移動設備的設備型號和軟件版本。
從開發的角度來看,移動云計算是兩個相互依存的事物。至少在某種程度上保持兩者的獨立性將有助于用戶實現移動性和云計算使用的優化,但是也應至少在ALM層面上把兩者連接在一起也是實現應用程序長期穩定性的關鍵所在。小心行事,您是可以做到這兩點的。