版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、云計(jì)算架構(gòu)介紹 白皮書 第 1 版,2009 年 6 月 摘要 云計(jì)算可望提高應(yīng)用程序部署速度、促進(jìn)創(chuàng)新和降低成本,同時(shí)還增強(qiáng)經(jīng)營敏捷 性。Sun 抱持一種全面的云計(jì)算觀點(diǎn),因而可以支持各個(gè)層面,其中包括服務(wù)器、 存儲(chǔ)、網(wǎng)絡(luò)和虛擬化技術(shù),這些技術(shù)將云計(jì)算環(huán)境擴(kuò)展到虛擬設(shè)備中運(yùn)行的軟件, 而這些虛擬設(shè)備可用來在極少時(shí)間內(nèi)成功匯編應(yīng)用程序。本白皮書探討云計(jì)算如何 變革我們的設(shè)計(jì)、構(gòu)建和提供應(yīng)用程序的方式,以及企業(yè)在采納并應(yīng)用云計(jì)算技術(shù) 時(shí)必須考慮的架構(gòu)問題。 本頁故意留空。 Sun 公司 目錄 引言. 1 Sun 公司觀點(diǎn). . 1 云計(jì)算的性質(zhì). 2 擴(kuò)大已形成的趨勢. 2 將虛擬機(jī)作為標(biāo)準(zhǔn)部署
2、對(duì)象. 2 按需、自助、以使用情況付費(fèi)的模式. 2 通過網(wǎng)絡(luò)提供服務(wù). 5 開放源軟件的作用. 5 云計(jì)算基礎(chǔ)設(shè)施模式. 6 公用云、專用云和混合云. 6 云計(jì)算的架構(gòu)層. 9 云應(yīng)用程序設(shè)計(jì)接口. 11 云計(jì)算效益. 11 縮短運(yùn)行時(shí)間和響應(yīng)時(shí)間. 11 最大限度地減輕基礎(chǔ)設(shè)施風(fēng)險(xiǎn). 12 降低入市成本. 12 加快創(chuàng)新步伐. 12 實(shí)現(xiàn) IaaS 必須考慮的架構(gòu)問題. . 13 不斷發(fā)展的應(yīng)用程序架構(gòu). 變革架構(gòu)的途徑. 變革應(yīng)用程序設(shè)計(jì). 目標(biāo)仍然相同. 一致而穩(wěn)定的抽象層. 標(biāo)準(zhǔn)有助于解決復(fù)雜問題. 松散耦合、無狀態(tài)、原地失敗 (Fail-in-Place 計(jì)算. . 水平擴(kuò)展. 并行
3、化. 分割并征服. 數(shù)據(jù)物理. 數(shù)據(jù)與處理之間的關(guān)系. 編程策略. 合規(guī)與數(shù)據(jù)物理. 安全性與數(shù)據(jù)物理. 網(wǎng)絡(luò)安全做法. 13 13 13 14 16 16 18 18 19 20 21 21 21 22 22 23 Sun 公司與云計(jì)算. . 24 來自 Sun 社區(qū)的創(chuàng)新. 社區(qū)與開放式標(biāo)準(zhǔn). 選擇的重要性. 選擇云計(jì)算提供商. 感謝. 24 25 25 25 26 1 云計(jì)算架構(gòu)介紹 Sun 公司 第1章 引言 什么是云計(jì)算 (Cloud Computing? 每個(gè)人都有自己的看法。云計(jì)算可以是租用 一臺(tái)服務(wù)器或一千臺(tái)服務(wù)器并在目前世界上最強(qiáng)大的系統(tǒng)上運(yùn)行地球物理建 模應(yīng)用程序的能力。云
4、計(jì)算也可以是租用一個(gè)虛擬服務(wù)器、在其上面加載軟 件、隨意打開和關(guān)閉該虛擬服務(wù)器或克隆該服務(wù)器十次以滿足突發(fā)工作負(fù)荷需 求的能力。云計(jì)算可以存儲(chǔ)并保護(hù)巨量數(shù)據(jù),而且這些數(shù)據(jù)只允許授權(quán)應(yīng)用 程序和用戶進(jìn)行訪問。云計(jì)算可由建立一個(gè)包括 OS、Apache、MySQL.數(shù)據(jù) 庫、Perl、Python 和 PHP 的平臺(tái)的云提供商提供支持,該平臺(tái)能夠根據(jù)不斷變 化的工作負(fù)荷自動(dòng)擴(kuò)展。云計(jì)算還可以是在互聯(lián)網(wǎng)上使用存儲(chǔ)并保護(hù)數(shù)據(jù)同時(shí) 提供服務(wù) 包括電子郵件、銷售能力自動(dòng)化 (Sales Force Automation 和報(bào)稅 (Tax Preparation,等等 的應(yīng)用程序的能力。云計(jì)算可以使用存儲(chǔ)云
5、 (Storage Cloud 來保存應(yīng)用程序、企業(yè)和個(gè)人數(shù)據(jù)。而且,云計(jì)算還可以使用少數(shù) Web 服務(wù)來 集成照片、地圖和 GPS 信息,以便與客戶 Web 瀏覽器中創(chuàng)建聚合 (Mashup。 Sun 公司觀點(diǎn) Sun 公司采取一種全面的觀點(diǎn),這種觀點(diǎn)認(rèn)為,云的類型有很多種,而且有很 多不同的應(yīng)用程序可以使用云來構(gòu)建。由于云計(jì)算有助于提高應(yīng)用程序部署速 度,有助于加快創(chuàng)新步伐,因而云計(jì)算可能還會(huì)出現(xiàn)我們現(xiàn)在無法想像到的形 式。然而,永恒不變的是,Sun 公司是一家具有豐富經(jīng)驗(yàn)的服務(wù)器、網(wǎng)絡(luò)和軟 件技術(shù)提供商,我們提供的這些技術(shù)均支持云計(jì)算。作為創(chuàng)造“網(wǎng)絡(luò)就是計(jì)算 機(jī)”(The Network
6、 is the Computer.這一短語的公司,我們深信云計(jì)算就是下一 代的網(wǎng)絡(luò)計(jì)算。 云計(jì)算與以前的模式有什么區(qū)別? 就云計(jì)算這個(gè)短語而言,它就是通過網(wǎng)絡(luò)把信 息技術(shù)當(dāng)作服務(wù)來使用。我們將其定義為封裝的、具有 API 且通過網(wǎng)絡(luò)提供的 服務(wù)。此定義同時(shí)包含把計(jì)算和存儲(chǔ)資源當(dāng)作服務(wù)使用。云計(jì)算首先以效率原 理為基礎(chǔ),此處所說的效率是指產(chǎn)生用來處理 80% 的使用案例的高級(jí)工具,這 樣才能以一種驚人的速度創(chuàng)建和部署應(yīng)用程序。 云計(jì)算可以由企業(yè)數(shù)據(jù)中心自己的服務(wù)器進(jìn)行提供,也可以由承擔(dān)擁有基礎(chǔ) 設(shè)施的全部風(fēng)險(xiǎn)的云提供商提供。錯(cuò)誤的觀念認(rèn)為資源是取之不盡的。盡管 該領(lǐng)域還處于萌芽階段,但其模式已在
7、信息技術(shù) (IT 行業(yè)引起極大反響?,F(xiàn) 在,云計(jì)算的主要模式稱為“把基礎(chǔ)設(shè)施當(dāng)作服務(wù)”(IaaS,而且由于其突出特 性,IaaS 模式成為本白皮書第一版本的焦點(diǎn)。 本白皮書探討云計(jì)算的性質(zhì)及其如何在變革世界各地的企業(yè)構(gòu)建和部署應(yīng)用程 序的方式的同時(shí)擴(kuò)大已形成的趨勢。然后,討論云架構(gòu)設(shè)計(jì)師 (Cloud Architect 設(shè)計(jì)基于云的應(yīng)用程序時(shí)必須考慮的架構(gòu)問題。最后,介紹 Sun 公司提供的支 持云計(jì)算的技術(shù)。 2 云計(jì)算架構(gòu)介紹 Sun 公司 第2章 云計(jì)算的性質(zhì) 擴(kuò)大已形成的趨勢 云計(jì)算推動(dòng)降低服務(wù)提供成本的已有趨勢,同時(shí)提高部署服務(wù)的速度和敏捷 性。它縮短了從設(shè)計(jì)應(yīng)用程序架構(gòu)到實(shí)際部署
8、應(yīng)用程序的時(shí)間。云計(jì)算把虛擬 化、按需部署、網(wǎng)上服務(wù)提供和開放源軟件融合在一起。從一種觀點(diǎn)看,云計(jì) 算并非新生事物,因?yàn)樗褂眉扔械姆椒ā⒏拍詈妥罴炎龇?。而從另一種觀點(diǎn) 看,一切都是新的,因?yàn)樵朴?jì)算變革我們發(fā)明、開發(fā)、部署、擴(kuò)展、更新、維 護(hù)和支付應(yīng)用程序以及運(yùn)行應(yīng)程序的基礎(chǔ)設(shè)施的方式。在本章中,我們考查上 述趨勢,以及這些趨勢是如何成為云計(jì)算的性質(zhì)的核心的。 將虛擬機(jī)作為標(biāo)準(zhǔn)部署對(duì)象 在過去幾年時(shí)間里,虛擬機(jī)已成為一種標(biāo)準(zhǔn)部署對(duì)象。虛擬化進(jìn)一步增強(qiáng)了靈 活性,因?yàn)樗延布爬ǖ竭@樣一個(gè)高度:在硬件上面,可以在不需要連接具 體物理服務(wù)器的情況下部署和重新部署軟件棧。虛擬化實(shí)現(xiàn)了一個(gè)動(dòng)態(tài)數(shù)據(jù)中
9、心,其中的服務(wù)器提供一個(gè)包含可根據(jù)需要使用資源的資源池,而且,其中的 應(yīng)用程序與計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)資源的關(guān)系可動(dòng)態(tài)變化,以適應(yīng)工作負(fù)荷和業(yè)務(wù) 需求。由于應(yīng)用程序部署與服務(wù)器部署相分離,因而可以快速部署和擴(kuò)展應(yīng)用 程序,而不必首先購置物理服務(wù)器。 虛擬機(jī)已成為流行抽象概念.和部署單位.因?yàn)樗鼈兪欠?wù)提供商和開發(fā) 人員之間的最小公分母連接體。把虛擬機(jī)用作部署對(duì)象足以適應(yīng) 80 % 的使用情 況,而且這將有助于滿足快速部署和擴(kuò)展應(yīng)用程序的需要。 虛擬設(shè)備 (包含軟件的虛擬機(jī),這些軟件部分或全部地配置為執(zhí)行像 Web 服務(wù) 器或數(shù)據(jù)庫服務(wù)器這樣的特定任務(wù) 進(jìn)一步增強(qiáng)了快速創(chuàng)建和部署應(yīng)用程序的能 力。把虛
10、擬機(jī)和設(shè)備作為標(biāo)準(zhǔn)部署對(duì)象組合在一起是云計(jì)算的關(guān)鍵特性之一。 計(jì)算云通常由存儲(chǔ)云進(jìn)行補(bǔ)充,存儲(chǔ)云通過 API 提供虛擬化存儲(chǔ),而這些 API 為 存儲(chǔ)虛擬機(jī)映像 (Image、用于諸如 Web 服務(wù)器的組件的源文件、應(yīng)用程序狀態(tài) 數(shù)據(jù)以及一般業(yè)務(wù)數(shù)據(jù),提供便利。 按需、自助、以使用情況付費(fèi)的模式 云計(jì)算的按需、自助和以使用情況付費(fèi)的性質(zhì)也是已有趨勢的一種延伸。從企 業(yè)的觀點(diǎn)看,云計(jì)算的按需性質(zhì)有助于支持服務(wù)水平目標(biāo)的性能和容量方面。 云計(jì)算的自助性質(zhì)使機(jī)構(gòu)可以創(chuàng)造根據(jù)工作負(fù)荷和目標(biāo)性能參數(shù)進(jìn)行擴(kuò)展和收 縮的彈性環(huán)境。而且云計(jì)算的按使用情況付費(fèi)的性質(zhì)可以采取設(shè)備租賃的形 式,設(shè)備租賃保證了云提供
11、商提供一種最低的服務(wù)水平。 虛擬化是此模式的一個(gè)關(guān)鍵特性。早在幾年前,IT 機(jī)構(gòu)就已經(jīng)明白虛擬化使他們可以方便快捷地創(chuàng)建已有環(huán)境的副本有時(shí)涉及多個(gè)虛擬機(jī)來支持測試、開發(fā)和分級(jí) (Staging 活動(dòng)。這些環(huán)境的成本極小,因?yàn)樗鼈儙缀醪皇褂檬裁促Y源,因而可以與生產(chǎn)環(huán)境共處于同樣的服務(wù)器之上。.同樣地,可以在已有服務(wù)器上的新虛擬機(jī)中開發(fā)和部署新應(yīng)用程序,在互聯(lián)網(wǎng)上開放使用,并且在應(yīng)用程序在市場上取得成功時(shí)進(jìn)行擴(kuò)展。這種輕便的部署模式已經(jīng)產(chǎn)生一種“進(jìn)化式”(Darwinistic 業(yè)務(wù)開發(fā)方法,其中,軟件的 Beta 版是對(duì)公眾開放的,而且由市場決定哪些應(yīng)用程序值得進(jìn)一步擴(kuò)展和開發(fā),或者靜靜地報(bào)廢。
12、云計(jì)算通過自動(dòng)化擴(kuò)大了這一趨勢。不是與 IT 機(jī)構(gòu)洽談購買用來部署應(yīng)用程序的資源,計(jì)算云是一個(gè)自助式命題,其中,一張信用卡即可購買計(jì)算周期,而且可以使用 Web 接口或 API 創(chuàng)建虛擬機(jī),并在虛擬機(jī)之間建立網(wǎng)絡(luò)關(guān)系。云不需要與 IT 機(jī)構(gòu)或服務(wù)提供商簽訂長期服務(wù)合同,而是按照根據(jù)使用情況付費(fèi)或按 Sip 付費(fèi) (Pay-by-the-Sip 的模式運(yùn)作,在這種模式下,一個(gè)應(yīng)用程序可能為運(yùn)行一項(xiàng)作業(yè)幾分鐘或幾小時(shí)而存在,也可能為長期向客戶提供服務(wù)而存在。構(gòu)建計(jì)算云時(shí)就好像應(yīng)用程序是臨時(shí)的,而計(jì)費(fèi)是按照資源消耗情況進(jìn)行的:使用的 CPU 小時(shí)數(shù)、移動(dòng)的數(shù)據(jù)量或存儲(chǔ)的數(shù)據(jù)的千兆字節(jié) (GB 數(shù)。使
13、用和僅對(duì)使用的資源付費(fèi)的能力,把購買多少基礎(chǔ)設(shè)施的風(fēng)險(xiǎn),從開發(fā)應(yīng)用程序的機(jī)構(gòu)轉(zhuǎn)移給云提供商。這種能力還把架構(gòu)決策的責(zé)任從應(yīng)用程序架構(gòu)設(shè)計(jì)師轉(zhuǎn)移給開發(fā)人員。這種轉(zhuǎn)移會(huì)增大風(fēng)險(xiǎn),即出于某種原因制定了流程的企業(yè)必須控制的風(fēng)險(xiǎn),以及系統(tǒng)、網(wǎng)絡(luò)和存儲(chǔ)架構(gòu)設(shè)計(jì)師需要把云計(jì)算設(shè)計(jì)包括在內(nèi)的風(fēng)險(xiǎn)。基礎(chǔ)設(shè)施是可以編程的這種架構(gòu)責(zé)任的轉(zhuǎn)移產(chǎn)生重要的后果。過去,架構(gòu)設(shè)計(jì)師確定一個(gè)應(yīng)用程序的各種組件如何在一組服務(wù)器上進(jìn)行布局,即如何連接、固定、管理和擴(kuò)展這些組件?,F(xiàn)在,開發(fā)人員可以使用云提供商的 API 不僅在虛擬機(jī)上創(chuàng)建應(yīng)用程序的初始結(jié)構(gòu),而且還確定該應(yīng)用程序如何擴(kuò)展和演進(jìn)以適應(yīng)工作負(fù)荷的變化。.看看下面這個(gè)類比:
14、歷史上,使用 Java 編程語言編寫軟件的開發(fā)人員確定何時(shí)適合創(chuàng)建使多項(xiàng)活動(dòng)同時(shí)推進(jìn)的新線程。現(xiàn)在,開發(fā)人員可以同樣輕而易舉地發(fā)現(xiàn)和連接一項(xiàng)服務(wù),使它們可以將一個(gè)應(yīng)用程序擴(kuò)展到這樣一個(gè)高度:該應(yīng)用程序可使用成千上萬個(gè)虛擬機(jī)來適應(yīng)需求激增情況。動(dòng)態(tài)編寫應(yīng)用程序架構(gòu)的程序的能力使開發(fā)人員擁有了巨大權(quán)力,同時(shí)也承擔(dān)相應(yīng)大的責(zé)任。要最有效地使用云計(jì)算,開發(fā)人員還必須是架構(gòu)設(shè)計(jì)師,而且該架構(gòu)設(shè)計(jì)師需要能夠創(chuàng)建自我監(jiān)控和自我擴(kuò)展的應(yīng)用程序。該開發(fā)人員/架.構(gòu)設(shè)計(jì)師需要清楚何時(shí)適合創(chuàng)建一個(gè)新的線程 (而不是何時(shí)創(chuàng)建一個(gè)新的虛擬機(jī) ,并創(chuàng)建如何把它們相互連接起來的架構(gòu)模式。一旦很好地理解并利用這種能力,結(jié)果將
15、會(huì)是蔚為壯觀的。一個(gè)已經(jīng)具有傳奇色彩的故事是 Animoto 的聚合工具,該工具從一組映像和音樂中創(chuàng)建一個(gè)視頻。該公司的應(yīng)用程序在僅僅三天時(shí)間里從 50 臺(tái)服務(wù)器擴(kuò)展到 3500 臺(tái)服務(wù)器,這部分是因?yàn)橐粋€(gè)使該應(yīng)用程序能夠容易地?cái)U(kuò)展的架構(gòu)。為了達(dá)到這一目的,該應(yīng)用程序必須設(shè)計(jì)為可以水平擴(kuò)展、具有有限的狀態(tài),并且通過云 API 管理自己的部署。對(duì)于每個(gè)像這樣的成功案例,都可能會(huì)成為一個(gè)相似的故事:其中該應(yīng)用程序不能自我擴(kuò)展,而且無法滿足消費(fèi)者的需求。這種從開發(fā)人員到開發(fā)人員/架構(gòu)設(shè)計(jì)師的轉(zhuǎn)移的重要性是無法理解的。看看您的企業(yè)數(shù)據(jù)中心是否能夠以這么快的速度將一個(gè)應(yīng)用程序擴(kuò)展為適應(yīng)如此快速增加的工作
16、負(fù)荷,以及云計(jì)算是否可以測量您的當(dāng)前能力。應(yīng)用程序是組合在一起的,而且設(shè)計(jì)為可以組合的這種自助式、按使用情況付費(fèi)的模式的另一個(gè)后果是,就像編寫應(yīng)用程序一樣,通過匯編和配置設(shè)備和開放源軟件來組合應(yīng)用程序??梢灾貥?gòu) (Refactor 以最大限度地利用標(biāo)準(zhǔn)組件的應(yīng)用程序和架構(gòu),是那些將會(huì)在利用云計(jì)算效益方面最為成功的應(yīng)用程序和架構(gòu)。同樣地,應(yīng)用程序組件應(yīng)設(shè)計(jì)為可以組合的,這種組合是通過將應(yīng)用程序構(gòu)建的易于使用來實(shí)現(xiàn)。這要求具備簡單而明確的功能以及精心編寫文檔的 API 。構(gòu)建大型完整應(yīng)用程序已成為過去,因?yàn)榭芍苯邮褂没蚋鶕?jù)特定用途定制的現(xiàn)有工具庫已經(jīng)變得越來越大。例如,像 Hadoop (一種開放
17、源 MapReduce 架構(gòu)實(shí)現(xiàn) 這樣的工具可以在多種情況下使用,其中可以對(duì)一個(gè)問題及其數(shù)據(jù)進(jìn)行重構(gòu),以便于其多個(gè)部分可以同時(shí)執(zhí)行。當(dāng)紐約時(shí)報(bào)想將其檔案中 1100 萬份文章和映像轉(zhuǎn)換成為 PDF 格式時(shí),其內(nèi)部 IT 機(jī)構(gòu)說這會(huì)需要七個(gè)星期時(shí)間。同時(shí),使用 100 個(gè)運(yùn)行 Hadoop的 Amazon EC2 簡單 Web 服務(wù)接口實(shí)例的一名開發(fā)人員,用 24 小時(shí)時(shí)間就完成了這項(xiàng)工作,勞動(dòng)成本只有 300 美元。(這不包括上載數(shù)據(jù)所需的時(shí)間或存儲(chǔ)成本。甚至大型企業(yè)都可以使用云計(jì)算,用來以比傳統(tǒng)企業(yè)計(jì)算更少的時(shí)間和成本解決重大問題。Web 應(yīng)用程序部署示例舉一個(gè)虛擬化與自助服務(wù)結(jié)合在一起如何
18、促進(jìn)應(yīng)用程序部署的示例,看看如何在云中進(jìn)行一次二層 Web 應(yīng)用程序部署 (圖:1. 開發(fā)人員可以從一個(gè)預(yù)配置虛擬機(jī)映像庫中選擇負(fù)載平衡器(Load Balancer、Web 服務(wù)器和數(shù)據(jù)庫服務(wù)器設(shè)備。2. 開發(fā)人員配置每個(gè)組件以制作一個(gè)自定義映像。配置負(fù)載平衡器,通過將靜態(tài)內(nèi)容上載到存儲(chǔ)云來給 Web 服務(wù)器填充這些內(nèi)容,并用站點(diǎn)的動(dòng)態(tài)內(nèi)容來填充數(shù)據(jù)庫服務(wù)器設(shè)備。3. 開發(fā)人員把自定義代碼層疊在新的架構(gòu)之中,從而使組件滿足特定應(yīng)用程序要求。有關(guān)如何完成這一壯舉的說明,請(qǐng)?jiān)L問:/2007/11/01/self-service-prorat
19、ed-super-computing-fun/01/self-service-prorated-super-computing-fun/4. 開發(fā)人員選擇一個(gè)呈現(xiàn)各層映像并部署這些映像的模式,以便于處理網(wǎng)絡(luò)、安全和可擴(kuò)展性問題。 圖.1.以基于云的部署形式將應(yīng)用程序部署到一個(gè)二層 Web 服務(wù)器架構(gòu)模式的示例。5. 安全而高度可用的 Web 應(yīng)用程序啟動(dòng)并正常運(yùn)行。當(dāng)需要更新應(yīng)用程序時(shí),可以在開發(fā)-測試-生產(chǎn)鏈之間對(duì)虛擬機(jī)映像進(jìn)行更新、版本控制和復(fù)制,并且可以重新部署整個(gè)基礎(chǔ)設(shè)施。云計(jì)算假定一切都是臨時(shí)的,而且重新部署整個(gè)應(yīng)用程序就像手動(dòng)修補(bǔ)一組具體的虛擬機(jī)一樣容易。在此示例中,虛擬機(jī)映像的抽
20、象性質(zhì)支持一種組合式應(yīng)用程序開發(fā)方法。通過重構(gòu)該問題,可以使用一組標(biāo)準(zhǔn)的組件來快速部署應(yīng)用程序。借助此模式,可以迅速滿足企業(yè)的業(yè)務(wù)需要,而不需要對(duì)服務(wù)器、存儲(chǔ)和網(wǎng)絡(luò)基礎(chǔ)設(shè)施進(jìn)行耗時(shí)的人工購買、安裝、布線和配置工作。通過網(wǎng)絡(luò)提供服務(wù)不言而喻,云計(jì)算擴(kuò)大了通過網(wǎng)絡(luò)提供服務(wù)的已有趨勢。幾乎每個(gè)商業(yè)機(jī)構(gòu)都認(rèn)可與其應(yīng)用程序的連接的基于 Web 的接口的價(jià)值,不管是否通過互聯(lián)網(wǎng)向客戶提供應(yīng)用程序,也不管它們是否是可供授權(quán)員工、合作伙伴、供應(yīng)商和咨詢?nèi)藛T使用的內(nèi)部應(yīng)用程序。當(dāng)然,基于互聯(lián)網(wǎng)的服務(wù)提供的美妙之處就在于可以隨時(shí)隨地使用應(yīng)用程序。.盡管企業(yè)都清醒地認(rèn)識(shí)到利用安全套接字層 (SSL 以及嚴(yán)格驗(yàn)證技術(shù)
21、來確保通信安全的能力,但在云計(jì)算環(huán)境中引入信任還需要認(rèn)真考慮企業(yè)計(jì)算和云計(jì)算之間的區(qū)別。如果架構(gòu)設(shè)計(jì)的合理,互聯(lián)網(wǎng)服務(wù)提供模式可提供各種規(guī)模的企業(yè)所需的靈活性和安全性。開放源軟件的作用開放源軟件在云計(jì)算中發(fā)揮著一種重要的作用,因?yàn)殚_放源軟件允許從容易訪問的組件創(chuàng)建其基本軟件元素:虛擬機(jī)映像和設(shè)備。這會(huì)產(chǎn)生巨大的影響: 例如,開發(fā)人員可以通過將 MySQL 軟件層疊在一個(gè) OpenSolaris 操作系統(tǒng)上并執(zhí)行自定義來創(chuàng)建一個(gè)數(shù)據(jù)庫設(shè)備 (圖 2。像這樣的設(shè)備能夠根據(jù)需要?jiǎng)?chuàng)建、部署和動(dòng)態(tài)擴(kuò)展云計(jì)算應(yīng)用程序。例如,看看開放源軟件如何使.Animoto 創(chuàng)建的應(yīng)用程序在幾天之內(nèi)就擴(kuò)展到 3500
22、個(gè)實(shí)例。 可以通過把開放源軟件層疊在一個(gè)虛擬機(jī)映像之中,并執(zhí)行簡化其部署的自定圖.2.義,來創(chuàng)建設(shè)備。在此示例中,通過把 MySQL 軟件層疊在 OpenSolaris 操作系統(tǒng)上來創(chuàng)建一個(gè)數(shù)據(jù)庫設(shè)備。 由于用開放源組件匯編大型應(yīng)用程序非常容易,因而生成更多開放源組件。這反過來又使開放源軟件的作用更加重要。例如,需要擁有一種可在云計(jì)算環(huán)境中運(yùn)行的 MapReduce 算法,這就是刺激開發(fā)該算法的因素之一。既然創(chuàng)建了工具,就可以用它來進(jìn)一步提高開發(fā)人員編寫云計(jì)算應(yīng)用程序的水平。云計(jì)算基礎(chǔ)設(shè)施模式當(dāng)從一個(gè)標(biāo)準(zhǔn)企業(yè)應(yīng)用程序部署模式向一個(gè)基于云計(jì)算的應(yīng)用程序部署模式.轉(zhuǎn)變時(shí),云計(jì)算架構(gòu)設(shè)計(jì)師需要考慮許
23、多問題。有的公用云和專用云提供互補(bǔ)的優(yōu)點(diǎn),有三種基本服務(wù)模式需要考慮,并且需要對(duì)比開放 API 和專有 API 的.價(jià)值。公用云、專用云和混合云IT 機(jī)構(gòu)可以選擇在各有其取舍的公用云、專用云或混合上部署其應(yīng)用程序。公用、專用與混合這幾個(gè)術(shù)語并不規(guī)定位置。公用云一般就在互聯(lián)網(wǎng)上,而專用云通常在建筑物內(nèi),還有可能設(shè)在主機(jī)托管場所。.企業(yè)可以就選用哪種云計(jì)算模式考慮多種因素,而且有可能選用不只一種模式來解決多種不同問題。如果是臨時(shí)需要的應(yīng)用程序,可能最適合在公用云上部署,因?yàn)檫@樣可以避免為了臨時(shí)的需要而購買額外設(shè)備的情況。同樣地,永久使用或?qū)Ψ?wù)質(zhì)量或數(shù)據(jù)位置有具體要求的應(yīng)用程序,最好在專用云或混合
24、云上部署。公用云.公用云由第三方運(yùn)行,而不同客戶提供的應(yīng)用程序可能會(huì)在云的服務(wù)器、存儲(chǔ)系統(tǒng)和網(wǎng)絡(luò)上混合在一起 (圖 3。公用云通常在遠(yuǎn)離客戶建筑物的地方托管,而且它們通過提供一種像企業(yè)基礎(chǔ)設(shè)施進(jìn)行的靈活甚至臨時(shí)的擴(kuò)展,提供一種降低客戶風(fēng)險(xiǎn)和成本的方法。.如果在實(shí)施一個(gè)專用云時(shí)牢記性能、安全性和數(shù)據(jù)保存位置,那么,該云中運(yùn)行的其它應(yīng)用程序的存在應(yīng)對(duì)云架構(gòu)設(shè)計(jì)師和最終用戶都是透明的。的確,公用云的優(yōu)點(diǎn)之一是,它們可以比一個(gè)公司的專用云大很多,因而能夠根據(jù)需要進(jìn)行伸縮,并將基礎(chǔ)設(shè)施風(fēng)險(xiǎn)從企業(yè)轉(zhuǎn)移到云提供商.哪怕僅僅是臨時(shí)性的??梢詫⒐迷频牟糠謩澇鋈?以便于獨(dú)占單個(gè)客戶端,從而產(chǎn)生一個(gè)虛擬專用數(shù)據(jù)中
25、心。虛擬專用數(shù)據(jù)中心不是僅限于在公用云中部署虛擬機(jī)映像,而是使客戶在更大程度上清楚地了解其基礎(chǔ)設(shè)施。現(xiàn)在,客戶不僅可以處理虛擬機(jī)映像,而且可以處理服務(wù)器、存儲(chǔ)系統(tǒng)、網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)拓?fù)?。利用位于同一場所的所有組件創(chuàng)建一個(gè)虛擬專用數(shù)據(jù)中心,有助于緩解數(shù)據(jù)位置問題,因?yàn)楫?dāng)在同一場所內(nèi)連接資源時(shí),帶寬非常充足,而且一般都可用。. 圖.3.公用云向多個(gè)客戶提供服務(wù),而且,一般在主機(jī)托管場所進(jìn)行部署。專用云專用云是為一個(gè)客戶單獨(dú)使用而構(gòu)建的,因而提供對(duì)數(shù)據(jù)、安全性和服務(wù)質(zhì)量的最有效控制 (圖 4。該公司擁有基礎(chǔ)設(shè)施,并可以控制在此基礎(chǔ)設(shè)施上部署應(yīng)用程序的方式。專用云可部署在企業(yè)數(shù)據(jù)中心中,也可以將它們部署
26、在一個(gè)主機(jī)托管場所。.專用云可由公司自己的.IT.機(jī)構(gòu)也可由云提供商進(jìn)行構(gòu)建。在此“托管式專用”模式中,像 Sun 這樣的一個(gè)公司可以安裝、配置和運(yùn)營基礎(chǔ)設(shè)施,以支持一個(gè)公司企業(yè)數(shù)據(jù)中心內(nèi)的專用云。此模式賦予公司對(duì)于云資源使用情況的極高水平的控制能力,同時(shí)帶來建立并運(yùn)作該環(huán)境所需的專門知識(shí)。 圖.4.專用云可以托管在某個(gè)主機(jī)托管場所,也可以托管在企業(yè)數(shù)據(jù)中心之中。它們可以由公司支持,也可以由云提供商提供支持,還可以由像外包公司這樣的第三方提供支持?;旌显苹旌显瓢压迷颇J脚c專用云模式結(jié)合在一起 (圖 5。混合云有助于提供按需的、外部供應(yīng)的擴(kuò)展。用公用云的資源擴(kuò)充專用云的能力可用來在發(fā)生工作負(fù)荷
27、快速波動(dòng)時(shí)維持服務(wù)水平。在利用存儲(chǔ)云支持 Web 2.0 應(yīng)用程序時(shí),這最常見。混合云也可用來處理預(yù)期的工作負(fù)荷高峰。專用云,有時(shí)稱為“超負(fù)荷計(jì)算”(Surge Computing,可用來執(zhí)行易于在公用云上部署的定期任務(wù)?;旌显埔龃_定如何在公用云與專用云之間分配應(yīng)用程序的復(fù)雜性。需要考慮的問題包括數(shù)據(jù)和處理資源之間的關(guān)系。如果數(shù)據(jù)量小,或應(yīng)用程序無狀態(tài),與必須把大量數(shù)據(jù)傳輸?shù)揭粋€(gè)公用云中進(jìn)行小量處理相比,混合云要成功得多。 圖.5.混合云把公用云模式和專用云模式結(jié)合起來,而且,當(dāng)這兩種類型的云位于同一場所時(shí),混合云特別有效。云計(jì)算的架構(gòu)層Sun 公司的云計(jì)算觀點(diǎn)是一種全面的觀點(diǎn):云計(jì)算可描述
28、在從硬件到應(yīng)用程序的任何傳統(tǒng)層級(jí)提供的服務(wù) (圖 6。實(shí)際上,云服務(wù)提供商傾向于提供可分為如下三個(gè)類別的服務(wù):把軟件當(dāng)作服務(wù) (Software as a Service、把平臺(tái)當(dāng)作服務(wù)(Platform as a Service 以及把基礎(chǔ)設(shè)施當(dāng)作服務(wù) (Infrastructure as a Service。這些類別把如圖 6 所示的各種層級(jí)組合在一起,其中存在某種重疊。把軟件當(dāng)作服務(wù) (SaaS“把軟件當(dāng)作服務(wù)”的特色是根據(jù)需要作為服務(wù)提供的一整套應(yīng)用程序。該軟件的單個(gè)實(shí)例運(yùn)行于云上,并為多個(gè)最終用戶或客戶機(jī)構(gòu)提供服務(wù)。最著名的 SasS 示例是 ,不過許多其它實(shí)例已經(jīng)進(jìn)入市場,其中包括
29、提供基本商業(yè)服務(wù) (包括電子郵件和文字處理 的 Google Apps。盡管 誕生比云計(jì)算定義的出現(xiàn)早了幾年,但它現(xiàn)在通過利用其伴侶 運(yùn)作,后者可定義為“把平臺(tái)當(dāng)作服務(wù)”。 Web Google Flickr Web Flickr API Google API 乘 AMP GlassFish 乘 DNS VM HPC 云計(jì)算意味著把圖.6. IT 基礎(chǔ)設(shè)施用作一項(xiàng)服務(wù),而且該服務(wù)可以是從租用原始硬件到使用第三方 API 的任何事情。把平臺(tái)當(dāng)作服務(wù) (PaaS“把平臺(tái)當(dāng)作服務(wù)”包含一個(gè)軟件層,并作為一項(xiàng)服務(wù)提供此軟件層,這項(xiàng)服務(wù)可用來構(gòu)建更高水平的服務(wù)。從服務(wù)生產(chǎn)商或消費(fèi)者的觀點(diǎn)看,關(guān)于 Paa
30、S 的觀點(diǎn)至少有兩種: 生產(chǎn) PaaS 的某個(gè)人可能通過集成 OS 、中間件、應(yīng)用軟件甚至是一個(gè)隨后作為服務(wù)提供給客戶的開發(fā)環(huán)境來生產(chǎn)一個(gè)平臺(tái)。例如,開發(fā) PaaS 的人可能會(huì)使其以一組 Sun xVM 管理程序虛擬機(jī)為基礎(chǔ),這組虛擬機(jī)包括一個(gè).NetBeans.集成化開發(fā)環(huán)境、一個(gè) Sun GlassFish Web 棧,并支持像 Perl 或.Ruby 這樣的其它編程語言。. 使用 PaaS 的人會(huì)看到一個(gè)封裝式服務(wù),該服務(wù)是通過 API 提供給用戶的??蛻敉ㄟ^.API.與該平臺(tái)互動(dòng),而且該平臺(tái)執(zhí)行一切必要的操作來管理和擴(kuò)展其本身,以提供規(guī)定的服務(wù)水平。虛擬設(shè)備可以歸類為 PaaS 的實(shí)例
31、。例如,一個(gè)內(nèi)容交換設(shè)備會(huì)將其所有組成軟件對(duì)客戶隱藏起來,而只向客戶提供用來配置和部署服務(wù)的一個(gè) API 或 GUI 。PaaS 產(chǎn)品可執(zhí)行各個(gè)階段的軟件開發(fā)和測試,也可以專用于某個(gè)領(lǐng)域,例如,內(nèi)容管理。PaaS 的商業(yè)示例包括 Google App Engine ,它在 Google 的基礎(chǔ)設(shè)施上提供應(yīng)用程序服務(wù)。像這樣的 PaaS 服務(wù)可提供一個(gè)用來部署應(yīng)用程序的強(qiáng)大基礎(chǔ),然而它們可能會(huì)由于云提供商選擇提供的能力而受到制約。把基礎(chǔ)設(shè)施當(dāng)作服務(wù) (IaaS“把基礎(chǔ)設(shè)施當(dāng)作服務(wù)”通過網(wǎng)絡(luò)作為標(biāo)準(zhǔn)化服務(wù)提供基本存儲(chǔ)和計(jì)算能力。服務(wù)器、存儲(chǔ)系統(tǒng)、交換機(jī)、路由器和其它系統(tǒng)都是合用的,并可用來處理從應(yīng)
32、用程序組件到高性能計(jì)算應(yīng)用程序的工作負(fù)荷。IaaS 的商業(yè)示例包括 Joyent,其主要產(chǎn)品是提供高度可用的按需基礎(chǔ)設(shè)施的一系列虛擬化服務(wù)器。云應(yīng)用程序設(shè)計(jì)接口區(qū)分云計(jì)算與標(biāo)準(zhǔn)企業(yè)計(jì)算的關(guān)鍵特征之一是:基礎(chǔ)設(shè)施本身是可以編成程序的。開發(fā)人員不是實(shí)際部署服務(wù)器、存儲(chǔ)器和網(wǎng)絡(luò)資源來支持應(yīng)用程序,而是指定如何配置和互連同樣的虛擬組件,包括如何從存儲(chǔ)云存儲(chǔ)和檢索虛擬機(jī)映像和應(yīng)用程序數(shù)據(jù)。開發(fā)人員指定如何且何時(shí)通過云提供商指定的 API 來部署組件。這與文件傳輸協(xié)議 (FTP 的工作方式相似: FTP 服務(wù)器維持與會(huì)話期間一直開放的客戶端的控制連接。當(dāng)要傳輸文件時(shí),該控制連接用來向服務(wù)器提供一個(gè)來源或目
33、標(biāo)文件名,并協(xié)商一個(gè)用于文件傳輸本身的源和目標(biāo)端口。從某種意義上講,云計(jì)算 API 就像 FTP 控制信道一樣:云計(jì)算 API 在使用云期間是開放的,而且控制如何利用云來提供開發(fā)人員向往的最終服務(wù)。控制如何利用云基礎(chǔ)設(shè)施的 API 的使用具有一個(gè)缺陷:與 FTP 協(xié)議不同的是,云. API 尚未標(biāo)準(zhǔn)化,因此,每個(gè)云提供商都有自己用來管理其服務(wù)的特定 API。這是一個(gè)新興行業(yè)的典型狀態(tài),其中,每個(gè)供應(yīng)商都有其專有技術(shù),這樣的技術(shù)往往把客戶限制在其服務(wù)里,因?yàn)閷S?API 使得變更提供商非常困難。請(qǐng)查找在盡可能多的地方使用標(biāo)準(zhǔn) API 的提供商。標(biāo)準(zhǔn) API 現(xiàn)在可用來訪問存儲(chǔ)設(shè)備,而隨著時(shí)間的推
34、移,用來部署和擴(kuò)展應(yīng)用程序的 API 可能會(huì)被標(biāo)準(zhǔn)化。另外,請(qǐng)查找有哪些云提供商了解其市場而且提供存檔并部署虛擬機(jī)映像和預(yù)配置設(shè)備的方法。云計(jì)算效益要想從云計(jì)算中實(shí)現(xiàn)最大效益,開發(fā)人員必須能夠重構(gòu)其應(yīng)用程序,使應(yīng)用程序可以最有效地利用云計(jì)算所支持的架構(gòu)和部署方式。使用云計(jì)算部署應(yīng)用程序的優(yōu)點(diǎn)包括縮短運(yùn)行時(shí)間和響應(yīng)時(shí)間、最大限度地減輕部署物理基礎(chǔ)設(shè)施的風(fēng)險(xiǎn)、降低入市成本以及加快創(chuàng)新步伐??s短運(yùn)行時(shí)間和響應(yīng)時(shí)間對(duì)于彈性地使用云來運(yùn)行批量作業(yè)的應(yīng)用程序來說,云計(jì)算使得使用 1000 臺(tái)服務(wù)器在相當(dāng)于單個(gè)服務(wù)器所需的千分之一的時(shí)間里完成一項(xiàng)任務(wù)變得非常簡單。前面引用的紐約時(shí)報(bào)的示例就是一個(gè)很好的批作業(yè)
35、示例,通過利用云,極大地縮短了其運(yùn)行時(shí)間。對(duì)于需要向其客戶提供良好響應(yīng)時(shí)間的應(yīng)用程序來說,重構(gòu)應(yīng)用程序以便把任何 CPU 密集型任務(wù)外包給“工人”(Worker.虛擬機(jī),有助于優(yōu)化響應(yīng)時(shí)間,同時(shí)還能根據(jù)需求進(jìn)行伸縮,從而滿足客戶需求。前面引用的 Animoto 應(yīng)用程序就是云如何用來擴(kuò)展應(yīng)用程序并維持服務(wù)質(zhì)量水平的一個(gè)很好的示例。最大限度地減輕基礎(chǔ)設(shè)施風(fēng)險(xiǎn)IT 機(jī)構(gòu)可以利用云來減輕購置物理服務(wù)器所固有的風(fēng)險(xiǎn)。新的應(yīng)用程序是否將會(huì)成功? 如果成功,需要多少臺(tái)服務(wù)器? 部署這些服務(wù)器的步驟是否能夠跟得上工作負(fù)荷增加速度? 如果不能,投入服務(wù)器中的大量資金會(huì)不會(huì)付之東流? 如果該應(yīng)用程序的成功非常短
36、命,IT 機(jī)構(gòu)是否還會(huì)在多數(shù)時(shí)間里處于空閑狀態(tài)的大量基礎(chǔ)設(shè)施中進(jìn)行投資?當(dāng)把一個(gè)應(yīng)用程序推出到云中時(shí),可擴(kuò)展性和購買太多或太少基礎(chǔ)設(shè)施就成為云提供商的問題。越來越多的案例表明,云提供商的基礎(chǔ)設(shè)施規(guī)模如此之大,以至于可以容忍各個(gè)客戶的業(yè)務(wù)量增長和工作負(fù)荷尖峰情況,因而減輕了這些客戶所面臨的經(jīng)濟(jì)風(fēng)險(xiǎn)。云計(jì)算最大限度地減輕基礎(chǔ)設(shè)施風(fēng)險(xiǎn)的另一條途徑是實(shí)現(xiàn)超負(fù)荷計(jì)算,其中企業(yè)數(shù)據(jù)中心 (也許是實(shí)現(xiàn)專用云的數(shù)據(jù)中心 通過一個(gè)允許其向一個(gè)公用云發(fā)送超溢工作來擴(kuò)大其處理工作負(fù)荷尖峰情況的能力。在一個(gè)資源不再稀缺而且能夠以較低成本更好地滿足資源需求的環(huán)境中,可以更好地處理應(yīng)用程序生命周期管理問題。降低入市成本云
37、計(jì)算的許多屬性有助于降低進(jìn)入新市場的成本。 由于基礎(chǔ)設(shè)施是租用的,而不是購買的,成本得到控制,而且資本投資可能為零。除通過按 Sip 購買計(jì)算周期和存儲(chǔ)空間來降低購置成本之外,云提供商的巨大規(guī)模也有助于最大限度地降低成本,從而有助于進(jìn)一步降低入市成本。 應(yīng)用程序與其說是通過匯編倒不如說是通過編程來開發(fā)的。這種快速應(yīng)用程序開發(fā)方法非常規(guī)范,有助于縮短入市時(shí)間,因而有可能使在云環(huán)境中部署應(yīng)用程序的機(jī)構(gòu)先于競爭者入市。.加快創(chuàng)新步伐云計(jì)算有助于加快創(chuàng)新步伐。降低進(jìn)入新興市場的成本有助于使競爭各方處于同一起跑線,因而使新創(chuàng)企業(yè)可以快速而低成本地部署新的產(chǎn)品。這使小公司可以更有效地與在企業(yè)數(shù)據(jù)中心領(lǐng)域里
38、所經(jīng)歷的部署過程長得多的傳統(tǒng)機(jī)構(gòu)進(jìn)行競爭。增強(qiáng)競爭能力有助于加快創(chuàng)新步伐,而且由于許多創(chuàng)新是通過利用開放源軟件實(shí)現(xiàn)的,整個(gè)行業(yè)都會(huì)從云計(jì)算技術(shù)所促成的創(chuàng)新步伐加快而受益。第.3.章實(shí)現(xiàn) IaaS 必須考慮的架構(gòu)問題不斷發(fā)展的應(yīng)用程序架構(gòu)正如我們已經(jīng)說明的:云計(jì)算是當(dāng)前趨勢和最佳做法的自然延伸,從架構(gòu)觀點(diǎn)看云計(jì)算也是如此。再次強(qiáng)調(diào),云計(jì)算并非新生事物,不過在其實(shí)現(xiàn)中,云計(jì)算改變我們所做的一切工作。變革架構(gòu)的途徑在 20 世紀(jì) 90 年代,人們談?wù)摰脑掝}是關(guān)于如何把一個(gè)應(yīng)用程序分解成各種組件,然后是如何將這些組件部署到不同的服務(wù)器上,以便優(yōu)化非功能要求,包括可擴(kuò)展性、可用性、易管理性和安全性?,F(xiàn)在
39、,我們所維持的是一個(gè)分解式應(yīng)用程序架構(gòu),同時(shí)實(shí)際部署到一個(gè)利用虛擬化的整合式架構(gòu)上。.云計(jì)算通過提供一種有計(jì)劃地部署應(yīng)用程序架構(gòu)的方法來繼續(xù)這一趨勢,最終實(shí)現(xiàn)一個(gè)動(dòng)態(tài)數(shù)據(jù)中心的承諾。在云計(jì)算中,效率受到高度重視;如果無法快速而有計(jì)劃地部署應(yīng)用程序架構(gòu),那么該應(yīng)用程序就可能不是一個(gè)適合于此種模式的應(yīng)用程序。變革應(yīng)用程序設(shè)計(jì)過去,應(yīng)用程序設(shè)計(jì)為通過垂直擴(kuò)展來處理大型工作負(fù)載。將更多處理器和內(nèi)存安裝在一個(gè)郵件服務(wù)器上來處理更大的流量。擴(kuò)展數(shù)據(jù)中心服務(wù)器以提高吞吐量。在超級(jí)計(jì)算機(jī)上運(yùn)行高性能計(jì)算作業(yè)。從高度可擴(kuò)展的對(duì)稱型多處理器遷移到價(jià)格低廉但可擴(kuò)展性差的 x86 架構(gòu)服務(wù)器已經(jīng)對(duì)應(yīng)用程序設(shè)計(jì)產(chǎn)生了影
40、響。開發(fā)人員并不期望應(yīng)用程序運(yùn)行于高度可擴(kuò)展的服務(wù)器,而是重構(gòu)其應(yīng)用程序,以便能夠在多個(gè)服務(wù)器之間進(jìn)行水平擴(kuò)展。此應(yīng)用程序重構(gòu)并不總是容易進(jìn)行的,因?yàn)閼?yīng)用程序及其數(shù)據(jù)都必須進(jìn)行設(shè)計(jì),這樣才能把處理和數(shù)據(jù)同時(shí)分解成為較小的數(shù)據(jù)塊。這一已有架構(gòu)趨勢已經(jīng)成為推廣云計(jì)算的一個(gè)關(guān)鍵因素。這一趨勢的示例包括:高性能計(jì)算.高性能計(jì)算 (HPC 工作負(fù)荷已經(jīng)在光金屬 (Bare-Metal 計(jì)算網(wǎng)格上運(yùn)行有一段時(shí)間了,這是通過應(yīng)用程序重構(gòu)實(shí)現(xiàn)的。例如,科學(xué)家已經(jīng)找到為像 3D 氣候建模這樣的應(yīng)用程序削減數(shù)據(jù)的方法,因而可以在許多服務(wù)器上展開應(yīng)用程序。網(wǎng)格計(jì)算 (Grid Computing 是云計(jì)算的“前輩”
41、,這是因?yàn)榫W(wǎng)格計(jì)算使用工具來供應(yīng)和管理多架物理服務(wù)器,這樣,這些服務(wù)器就可以共同配合來解決一個(gè)問題。由于具有極高的計(jì)算、互處理通信和 I/O 需求,HPC 工作負(fù)荷非常適合于作為服務(wù)提供基礎(chǔ)設(shè)施的云,尤其是提供對(duì) I/O 設(shè)備進(jìn)行更直接訪問的光金屬服務(wù)器或 Type I 虛擬機(jī)。數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)通過水平擴(kuò)展數(shù)據(jù)庫服務(wù)器并在其之間對(duì)表進(jìn)行分區(qū),已經(jīng)適應(yīng)于在云環(huán)境中運(yùn)行。此技術(shù) 稱為“分片”(Sharding 使多個(gè)數(shù)據(jù)庫軟件實(shí)例 (通常是 MySQL 軟件 可以在云環(huán)境中擴(kuò)展性能。應(yīng)用程序現(xiàn)在不是訪問單個(gè)中央數(shù)據(jù)庫,而是訪問多個(gè)數(shù)據(jù)庫實(shí)例中的一個(gè),具體取決于哪個(gè)“碎片”(Shard
42、包含所需數(shù)據(jù) (圖 7。 數(shù)據(jù)庫分片技術(shù)在多個(gè)數(shù)據(jù)庫管理系統(tǒng)實(shí)例之間對(duì)數(shù)據(jù)庫表進(jìn)行分區(qū),可通過水圖.7.平擴(kuò)展來支持大型數(shù)據(jù)庫。CPU 密集型處理執(zhí)行像幀渲染 (Frame Rendering 這樣的活動(dòng)的應(yīng)用程序已經(jīng)設(shè)計(jì)為不是為每個(gè)幀創(chuàng)建一個(gè)新線程,而是創(chuàng)建一個(gè)單獨(dú)的虛擬機(jī)來渲染每個(gè)幀,因而通過水平擴(kuò)展來提高性能。數(shù)據(jù)密集型處理開放源社區(qū)正在開發(fā)一般化工具,這些工具可幫助處理大量數(shù)據(jù),然后將結(jié)果聚集到相應(yīng)的進(jìn)程中。例如,Hadoop 就是 MapReduce 問題的一種開放源實(shí)現(xiàn),這種實(shí)現(xiàn)將“工人”(Worker 虛擬機(jī)與他們所需的數(shù)據(jù)的部署集合在一起。目標(biāo)仍然相同應(yīng)用程序架構(gòu)方面的許多進(jìn)步
43、都有助于促進(jìn)云計(jì)算的推廣。這些進(jìn)步有助于支持高效地部署應(yīng)用程序的目標(biāo),同時(shí)有助于使應(yīng)用程序具有彈性,并適度地自動(dòng)擴(kuò)展。然而,杰出應(yīng)用程序架構(gòu)的首要目標(biāo)始終沒有發(fā)生任何變化:那就是支持同樣的始終至關(guān)重要的特征: 可擴(kuò)展性。此特征的重要性始終未曾改變。為云計(jì)算設(shè)計(jì)的應(yīng)用程序需要根據(jù)工作負(fù)荷需求進(jìn)行伸縮,這樣,性能及與服務(wù)水平的符合性就保持適當(dāng)。為了達(dá)到這一點(diǎn),必須將應(yīng)用程序及其數(shù)據(jù)松散耦合,以使可擴(kuò)展性最大化?!皬椥浴边@一術(shù)語經(jīng)常適用于伸縮云應(yīng)用程序,因?yàn)樵朴?jì)算應(yīng)用程序必須不僅可以擴(kuò)展,而且必須在工作負(fù)荷減小時(shí)能夠縮小,以免抬高在云中的部署成本。 可用性。無論應(yīng)用程序是向社交網(wǎng)站用戶提供服務(wù),還是
44、管理大型制造企業(yè)的供應(yīng)鏈,互聯(lián)網(wǎng)應(yīng)用程序用戶都期望這些應(yīng)用程序每時(shí)每刻都能正常運(yùn)行。Sun 公司在此領(lǐng)域的行業(yè)領(lǐng)先地位早在其推出 SunTone SM認(rèn)證計(jì)劃時(shí)就已確立,該計(jì)劃有助于客戶證明其應(yīng)用程序和服務(wù)達(dá)到要求的可用性水平。 可靠性。隨著時(shí)間的推移,對(duì)于可靠性的重視程度已經(jīng)發(fā)生轉(zhuǎn)變。如果大型應(yīng)用程序是指大型對(duì)稱多處理系統(tǒng),那么可靠性就意味著系統(tǒng)組件極少發(fā)生故障,而且即使發(fā)生故障,也可以在不中斷系統(tǒng)正常運(yùn)行的情況下進(jìn)行更換?,F(xiàn)在架構(gòu)適應(yīng)此特征的方式是把應(yīng)用程序設(shè)計(jì)為:即使分解運(yùn)行應(yīng)用程序的一個(gè)或多個(gè)服務(wù)器或虛擬機(jī),應(yīng)用程序仍能繼續(xù)運(yùn)行,而且其數(shù)據(jù)不會(huì)受到破壞。正是在這個(gè)方面,我們?cè)?jīng)擔(dān)心個(gè)別
45、服務(wù)器組件發(fā)生故障,而現(xiàn)在我們構(gòu)建即使全部服務(wù)器發(fā)生故障也不會(huì)造成破壞的應(yīng)用程序。 安全性。設(shè)備需要只對(duì)獲得授權(quán)且通過身份驗(yàn)證的用戶提供訪問權(quán),而且這些用戶需要能夠確信其數(shù)據(jù)是安全的。無論應(yīng)用程序幫助各個(gè)互聯(lián)網(wǎng)用戶準(zhǔn)備其納稅申報(bào)表,還是應(yīng)用程序在公司及其供應(yīng)商之間交換保密信息,都是如此?,F(xiàn)今環(huán)境中的安全性是通過如下手段確立的:利用嚴(yán)格的身份驗(yàn)證、授權(quán)和帳號(hào)管理程序,確保靜止和移動(dòng)中數(shù)據(jù)的安全性,鎖定網(wǎng)絡(luò),以及硬化操作系統(tǒng)、中間件和應(yīng)用軟件。安全性是這樣一個(gè)系統(tǒng)特性,以至于我們不再單獨(dú)強(qiáng)調(diào)安全性.必須將安全性融合到應(yīng)用程序的各個(gè)方面以及應(yīng)用程序部署和操作架構(gòu)和進(jìn)程中。 靈活性和敏捷性。這些特征越
46、來越重要,因?yàn)樯虡I(yè)機(jī)構(gòu)發(fā)現(xiàn)他們必須通過提高向客戶提供應(yīng)用程序的速度來更快地適應(yīng)不斷變化的經(jīng)營環(huán)境。云計(jì)算強(qiáng)調(diào)通過利用最適合的構(gòu)件 (Building Block 來快速完成工作,使應(yīng)用程序非??焖俚孛媸小?可維護(hù)性。一旦部署一個(gè)應(yīng)用程序,就需要對(duì)其進(jìn)行維護(hù)。過去,可維護(hù)性意味著使用的服務(wù)器可以在不停機(jī)或極少停機(jī)的情況下進(jìn)行修理?,F(xiàn)在,可維護(hù)性是指,更新甚至更換一個(gè)應(yīng)用程序的基本基礎(chǔ)設(shè)施組件時(shí),不會(huì)破壞該應(yīng)用程序的特征,其中包括可用性和安全性。 效率。這是特征列表上的新特征,或許這是最能將云計(jì)算模式與其它計(jì)算模式區(qū)別開來的一個(gè)特征。效率是云計(jì)算的意義所在,而且如果不能方便快捷地在云中部署應(yīng)用程序
47、,即使可從模式中受益,該計(jì)算模式也可能不是一個(gè)良好的可選模式。例如,企業(yè)資源規(guī)劃應(yīng)用程序可能最適合于垂直擴(kuò)展的系統(tǒng),并可能在近期通過 SaaS 提供。不過,提取、處理和呈現(xiàn)這些系統(tǒng)中派生的數(shù)據(jù)的應(yīng)用程序可能非常適合于在云中部署。一致而穩(wěn)定的抽象層云計(jì)算提高了抽象水平,這樣,所有組件都抽象化或虛擬化,并可用來迅速組合較高級(jí)別的應(yīng)用程序或平臺(tái)。如果某個(gè)組件不向其客戶或同行提供一致而穩(wěn)定的抽象層,該組件就不適合于云計(jì)算。標(biāo)準(zhǔn)部署單位是虛擬機(jī),它本質(zhì)上可運(yùn)行于抽象硬件平臺(tái)。人們很容易過度關(guān)注構(gòu)建虛擬機(jī)映像,而忽視用來創(chuàng)建虛擬機(jī)映像的模式。在云計(jì)算中,維持該模式而非映像本身非常重要。該模式是保留下來的,
48、而映像則是從該模式產(chǎn)生的。虛擬機(jī)映像將始終在變化,因?yàn)樘摂M機(jī)映像內(nèi)的軟件層將總是需要修補(bǔ)、升級(jí)或重新配置。不變的是創(chuàng)建虛擬機(jī)映像的流程,而且這是開發(fā)人員所應(yīng)重視的。開發(fā)人員可以通過把 Web 服務(wù)器、應(yīng)用程序服務(wù)器和 MySQL 數(shù)據(jù)庫服務(wù)器層疊在一個(gè)操作系統(tǒng)映像上,應(yīng)用補(bǔ)丁程序、配置更改,以及互連各層組件,來構(gòu)建虛擬機(jī)映像。重視模式,而非虛擬機(jī)映像,可以通過重新把模式應(yīng)用到一組新組件,根據(jù)需要來更新這些映像本身。憑借這一標(biāo)準(zhǔn)部署單位,云架構(gòu)設(shè)計(jì)師可以使用有助于以較低成本加快部署速度的設(shè)備。開發(fā)人員可以使用一個(gè)設(shè)備,該設(shè)備預(yù)配置為通過與該設(shè)備的 API 進(jìn)行互動(dòng),在 OpenSolaris O
49、S 上運(yùn)行 Hadoop。架構(gòu)設(shè)計(jì)師可以使用內(nèi)容交換機(jī),這些內(nèi)容交換機(jī)不是作為物理設(shè)備部署的,而是作為虛擬設(shè)備部署的。部署該設(shè)備所需要做的一切事情只是與其 API 或 GUI 進(jìn)行互動(dòng)。即使生產(chǎn)帶有許可證的商用軟件的公司都在通過更加靈活、基于使用情況的許可模式來適應(yīng)云計(jì)算。無論是調(diào)用一個(gè)創(chuàng)建虛擬機(jī)映像的模式,還是定制一個(gè)設(shè)備,結(jié)果產(chǎn)生的虛擬機(jī)映像都需要存儲(chǔ)在企業(yè)進(jìn)行版本控制并提供支持的映像庫中。標(biāo)準(zhǔn)有助于解決復(fù)雜問題云計(jì)算首先重視效率,因而采用少數(shù)標(biāo)準(zhǔn)和標(biāo)準(zhǔn)配置有助于降低維護(hù)和部署成本。擁有可簡化部署的標(biāo)準(zhǔn)比擁有用于作業(yè)的最佳環(huán)境更重要。80/20 規(guī)則就在這里發(fā)揮作用:云計(jì)算重視可以支持 8
50、0% 使用案例的少數(shù)標(biāo)準(zhǔn)。這就把經(jīng)濟(jì)情況從成本高的一次性實(shí)現(xiàn)轉(zhuǎn)變?yōu)檫x擇可最大限度地加以利用的構(gòu)件。將來還會(huì)繼續(xù)專業(yè)化,但起點(diǎn)應(yīng)從標(biāo)準(zhǔn)開始。對(duì)于要采用云計(jì)算的企業(yè),標(biāo)準(zhǔn)可以包括虛擬機(jī)類型、標(biāo)準(zhǔn)虛擬機(jī)映像中的操作系統(tǒng)、工具以及支持的編程語言。 虛擬機(jī)類型。想想虛擬機(jī)選擇對(duì)于要支持的應(yīng)用程序的影響。對(duì)于社交網(wǎng)站應(yīng)用程序、出于安全性進(jìn)行的隔離,以及出于可移植性進(jìn)行的高水平抽象,會(huì)建議使用 Type II 虛擬機(jī)。對(duì)于高性能計(jì)算或可視化應(yīng)用程序,需要直接訪問硬件以實(shí)現(xiàn)最佳性能,會(huì)建議使用 Type I 虛擬機(jī)。 預(yù)安裝、預(yù)配置的系統(tǒng)。必須像在物理服務(wù)器上一樣維護(hù)虛擬機(jī)上的軟件。操作系統(tǒng)仍然需要硬化、修補(bǔ)
51、和升級(jí)。擁有一小組標(biāo)準(zhǔn)化的受支持配置,使開發(fā)人員可以使用當(dāng)前支持的虛擬機(jī)。當(dāng)升級(jí)支持的配置時(shí),應(yīng)設(shè)計(jì)要求自定義的模式,以便于容易地將更改重新應(yīng)用到一個(gè)新的虛擬機(jī)映像。設(shè)備也是如此,其中,可以通過設(shè)備的標(biāo)準(zhǔn) API 來配置當(dāng)前版本。 工具和語言。企業(yè)可能以標(biāo)準(zhǔn)方式使用 Java 編程語言和 Ruby on Rails;小企業(yè)可以以標(biāo)準(zhǔn)方式將 PHP 作為其用于構(gòu)建應(yīng)用程序的首選工具。當(dāng)這些標(biāo)準(zhǔn)在云計(jì)算上下文中成熟時(shí),它們開始形成下一層:把平臺(tái)當(dāng)作服務(wù) (PaaS。虛擬化和封裝技術(shù)支持重構(gòu)當(dāng)通過組合和配置一組虛擬機(jī)映像和設(shè)備重構(gòu)并創(chuàng)建應(yīng)用程序時(shí),要將重點(diǎn)放在特定虛擬機(jī)發(fā)揮什么作用上,而不是放在如何
52、實(shí)現(xiàn)該虛擬機(jī)上。虛擬化和封裝技術(shù)將實(shí)現(xiàn)細(xì)節(jié)隱藏起來,并使開發(fā)人員重新重視組件之間的接口和互動(dòng)。這些組件應(yīng)該提供標(biāo)準(zhǔn)接口,以便于開發(fā)人員方便快捷地構(gòu)建應(yīng)用程序,同時(shí)利用與性能或成本所要求的相似的功能來使用替代組件。應(yīng)用程序開發(fā)是有計(jì)劃地完成的,甚至用來部署應(yīng)用程序的程序也可以封裝,以便于利用和重新利用??梢苑庋b部署三層式 Web 基礎(chǔ)設(shè)施的程序,這樣,該程序的參數(shù)就會(huì)包括指向用于 Web 服務(wù)器、業(yè)務(wù)邏輯和數(shù)據(jù)庫層的虛擬機(jī)映像的指針。然后就可以執(zhí)行此設(shè)計(jì)模式,以便于部署標(biāo)準(zhǔn)應(yīng)用程序,而不必重新設(shè)想或甚至重新考慮 (例如 支持每層所要求的網(wǎng)絡(luò)架構(gòu)。應(yīng)用程序維護(hù)的云計(jì)算原則并非修補(bǔ),而是重新部署。管理創(chuàng)建虛擬機(jī)映像的模式,而不是映像本身,簡化了這種重新部署。部署之后發(fā)現(xiàn)的問題解決起來相當(dāng)容易,或者通過更新組件虛擬機(jī)并
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療設(shè)備租賃解除律師函
- 能源供應(yīng)合同備案制度
- 建筑監(jiān)理基礎(chǔ)施工協(xié)議
- 農(nóng)業(yè)創(chuàng)新園區(qū)停車場改造合同
- 鉆孔工程安全生產(chǎn)考核合同
- 環(huán)保工程木地板工程合同
- 醫(yī)院管理團(tuán)隊(duì)聘用合同
- 租用合同樣本:消防設(shè)備
- 護(hù)理科研項(xiàng)目管理與實(shí)施
- 藥品采購績效評(píng)估體系
- 鍋爐控制器modbus協(xié)議支持說明
- 粉末涂料有限公司危廢庫安全風(fēng)險(xiǎn)分級(jí)管控清單
- 安全生產(chǎn)信息管理制度全
- 住宅物業(yè)危險(xiǎn)源辨識(shí)評(píng)價(jià)表
- 世界主要國家洲別、名稱、首都、代碼、區(qū)號(hào)、時(shí)差匯總表
- 2023學(xué)年廣東省廣州市越秀區(qū)鐵一中學(xué)九年級(jí)(上)物理期末試題及答案解析
- 《報(bào)告文學(xué)研究》(07562)自考考試復(fù)習(xí)題庫(含答案)
- 安全操作規(guī)程
- 電源日常點(diǎn)檢記錄表
- 人教版小學(xué)三年級(jí)語文上冊(cè)期末測試卷.及答題卡2
- 鋼軌接頭位置及接頭聯(lián)結(jié)形式
評(píng)論
0/150
提交評(píng)論