云計算概念自誕生以來,就一直是人們關(guān)注的焦點問題,它的主要重點一直就是把應(yīng)用程序遷往云計算。在這個目標(biāo)中所隱含的意思就是,在云計算和數(shù)據(jù)中心之間其實并不存在著什么功能性方面的差異;要說有差異,那也只是成本上的差異。
現(xiàn)在,我們知道事實并非如此;對于供應(yīng)商來說,云計算收入的最大來源來自于專為技術(shù)而開發(fā)的基于云計算的應(yīng)用程序,因此架構(gòu)師需要真正認(rèn)識到這到底意味著什么。認(rèn)識應(yīng)當(dāng)從評估云計算業(yè)務(wù)趨勢對云計算服務(wù)模式的影響開始,并以可視化的方式顯示云計算功能將如何支持新的應(yīng)用程序。接下來的步驟就是學(xué)習(xí)如何針對云計算的特點進(jìn)行應(yīng)用程序開發(fā),以及將應(yīng)用程序的設(shè)計與不斷發(fā)展的云計算功能相結(jié)合。
對于軟件架構(gòu)師來說,關(guān)于云計算業(yè)務(wù)趨勢一個最重要的事實就是,基礎(chǔ)設(shè)施即服務(wù)(IaaS)并不足以推動云計算充分發(fā)揮其潛力。只是簡單地把目前未使用的服務(wù)功能托管至云計算并不能夠為用戶創(chuàng)造足夠的價值,同時也不能夠為供應(yīng)商帶來足夠的利潤。
云計算服務(wù)工具應(yīng)當(dāng)能夠促進(jìn)供應(yīng)商的發(fā)展和云計算應(yīng)用程序的開發(fā),從而推動云計算服務(wù)的發(fā)展,而無需專門的云計算服務(wù)。云計算的全部內(nèi)容就是分配,分配用戶、分配資源、分配數(shù)據(jù)以及分配處理等。其宗旨就是,更高效地分配最有用的云計算應(yīng)用程序和服務(wù)。
分配支持分解成三個部分:對充滿變數(shù)和多樣化用戶群的支持,從各種分散的資源收集信息,以及遍及各處(從低負(fù)載運(yùn)行到幾乎需要全部超級計算機(jī)資源才能完成的高負(fù)載任務(wù))的應(yīng)用程序處理。云計算可以提供所有這些,而且大部分現(xiàn)有和新興的云計算網(wǎng)絡(luò)服務(wù)產(chǎn)品都可歸入這三種類別中的一個。
所有這些分配模式中的共同點就在于工作流所承擔(dān)的關(guān)鍵角色。如今的架構(gòu)師們都傾向于開發(fā)敏捷性和功能性的應(yīng)用程序。基于云計算的應(yīng)用程序的開發(fā)均應(yīng)圍繞工作流開展,而每個分配區(qū)域都有著各自的工作流管理問題和機(jī)遇。
對于用戶分配,云計算架構(gòu)師應(yīng)當(dāng)對個人用戶尋求類似于網(wǎng)絡(luò)的支持,而工作請求則應(yīng)匯集到一個共同的事務(wù)處理或處理流程。我們可以把整個應(yīng)用程序前端視為一個彈性元素的集合體(即一些網(wǎng)絡(luò)服務(wù)器和一些應(yīng)用程序服務(wù)器),我們可以在需要的任意時間任意地點以任意的數(shù)量進(jìn)行部署。這一模式可為任何應(yīng)用程序所遵循,而在這一模式下支持這些應(yīng)用程序的功能就是云計算架構(gòu)師所需要達(dá)到的首要目標(biāo)。
云計算數(shù)據(jù)收集往往是與用戶支持聯(lián)系在一起的,這是因為一般情況下用戶不僅是信息的來源而且也是成果交付的目標(biāo)。說這句話對,是因為相同的模式對于應(yīng)用程序是可以奏效的。說這句話不對,則是因為物聯(lián)網(wǎng)(IoT)模式的存在。云計算物聯(lián)網(wǎng)是指從分布源收集信息并將其聚集成兩部分:一個是為實時過程或業(yè)務(wù)控制應(yīng)用而設(shè)計的,而另一個則是為驅(qū)動分析和知識應(yīng)用程序的收集形式(大數(shù)據(jù))應(yīng)用而設(shè)計的。
當(dāng)你在開發(fā)云計算數(shù)據(jù)收集應(yīng)用程序時,應(yīng)當(dāng)將物聯(lián)網(wǎng)的原理和特性謹(jǐn)記在心。
大多數(shù)的架構(gòu)師會發(fā)現(xiàn),當(dāng)他們在構(gòu)思用戶支持或數(shù)據(jù)采集以及物聯(lián)網(wǎng)時,應(yīng)用云計算模式是比較容易的。而分配過程則是比較困難的,這是因為在一個應(yīng)用程序的固定函數(shù)模式下過程彈性是對可變工作負(fù)載的響應(yīng)。而這恰恰正是架構(gòu)師需要完成的工作內(nèi)容。
在讓應(yīng)用程序過程變得可分配的工作中,其關(guān)鍵步驟就是正確地設(shè)計其組件。一般來說,管理生成數(shù)據(jù)庫升級的組件擴(kuò)展是比較困難的;數(shù)據(jù)庫的升級和保護(hù)技術(shù)是一個難以得到緩解的瓶頸問題。這就意味著,你應(yīng)當(dāng)為你的計算密集型或以只讀模式訪問數(shù)據(jù)表的云計算應(yīng)用程序?qū)ふ夜δ軈^(qū)。找到這些功能區(qū),并讓這每一個功能區(qū)成為能夠隨工作增長或合同而水平擴(kuò)展的組件。
架構(gòu)師要完成的最后一步工作就是要讓云計算供應(yīng)商的網(wǎng)絡(luò)服務(wù)(包括現(xiàn)有和將來的)適應(yīng)之前提及的三個分配區(qū)。例如,內(nèi)容緩存和HTML加速是服務(wù)不同應(yīng)用程序用戶群體的有用技術(shù),而流量管理也是物聯(lián)網(wǎng)或分布式數(shù)據(jù)采集中的關(guān)鍵因素。在每個區(qū)的架構(gòu)限制下,通過把這些云計算工具映射至工作流中的合適位置就可讓這些工具適應(yīng)。架構(gòu)師應(yīng)當(dāng)始終把外部工具和API納入公司的邏輯設(shè)計范圍內(nèi),這樣如果網(wǎng)絡(luò)服務(wù)發(fā)生變化或者如果他們找到了另一家具有更好服務(wù)功能的云計算供應(yīng)商,那么他們就能夠輕松地修改代碼。
D1Net評論:
由于與組件集成相關(guān)的網(wǎng)絡(luò)開銷方面的原因,云計算工作流非常容易就會變得低效起來。在完成邏輯設(shè)計之前,開發(fā)出測試應(yīng)用程序以測試工作流是一種非常明智的做法,這樣一來架構(gòu)師就能夠讓應(yīng)用程序適應(yīng)他們云計算供應(yīng)商的性能特性。這樣就能防止他們的先進(jìn)應(yīng)用程序發(fā)生故障。