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