云計算(Cloud computing)可以粗略地定義為根據需要使用在用戶(hù)環(huán)境之外以服務(wù)形式提供的可伸縮計算資源。用戶(hù)只使用需要的資源,只為使用的資源付費。在任何時(shí)候,在 Internet 上的任何地方,都可以訪(fǎng)問(wèn) “云” 中的任何資源。不需要關(guān)心云中的資源在幕后是如何維護的。
![]() |
|
云計算影響了我們設計和交付可伸縮應用程序的方式。在過(guò)去,公司要花費寶貴的時(shí)間和資源構建基礎設施,從而提供競爭優(yōu)勢。常常是 “構建它,它們就來(lái)了”。在大多數情況下,這種方式有以下缺點(diǎn):
有了云計算,就能夠把多余的計算能力銷(xiāo)售給客戶(hù)。這就把計算和 IT 基礎設施轉換為一種實(shí)用工具,就像球場(chǎng)一樣,可供所有人使用。這使競爭取決于創(chuàng )新思想而不是計算資源。
應用程序和 IT 系統需要的資源(為了滿(mǎn)足日益增長(cháng)的存儲、計算、消息傳遞和數據庫需求)本質(zhì)上是 “日用品”??梢詮膬r(jià)格最優(yōu)惠、服務(wù)最好的賣(mài)家那里租用這種基礎設施。很簡(jiǎn)單,不是嗎?這是一個(gè)簡(jiǎn)單但革命性的思想,盡管它并不是完全的新概念。它現在之所以成為技術(shù)潮流,是因為 Amazon 引入了大范圍的云計算環(huán)境。
![]() ![]() |
![]()
|
Amazon Web Services 是一組服務(wù),它們允許通過(guò)程序訪(fǎng)問(wèn) Amazon 的計算基礎設施。Amazon 多年來(lái)一直在構建和調整這個(gè)健壯的計算平臺,現在任何能夠訪(fǎng)問(wèn) Internet 的人都可以使用它。Amazon 提供幾個(gè) Web 服務(wù),但是本系列只關(guān)注滿(mǎn)足大多數系統的核心需求的基本服務(wù):存儲、計算、消息傳遞和數據集。
通過(guò)在 Amazon 提供的可靠且經(jīng)濟有效的服務(wù)上構建功能,可以實(shí)現復雜的企業(yè)應用程序。這些 Web 服務(wù)本身駐留在您的環(huán)境之外的云中,具備極高的可用性。只需根據使用的資源付費,不需要提前付費。因為硬件由 Amazon 維護和服務(wù),所以您也不需要承擔維護費用。
![]() |
|
這個(gè)虛擬的基礎設施大大降低了當今 Web 環(huán)境中的 “貧富差異”。您可以在幾分鐘內快速地獲得一個(gè)基礎設施,而這在真實(shí)的 IT 工作室中可能會(huì )花費幾周時(shí)間。要點(diǎn)在于這個(gè)基礎設施是彈性的,可以根據需求擴展和收縮。世界各地的公司都可以使用這個(gè)彈性的計算基礎設施(見(jiàn)邊欄)。
公司不再需要承擔高額的基礎設施投資和維護成本,這為創(chuàng )新提供了更大的機會(huì )?,F在,您可以把注意力集中在業(yè)務(wù)思想上,而不需要為服務(wù)器操心,不需要擔心磁盤(pán)空間不足等問(wèn)題。根據 Amazon 的估計,企業(yè)把大約 70% 的時(shí)間花在構建和維護基礎設施上,在推動(dòng)企業(yè)發(fā)展的思想上實(shí)際上只花費 30% 的時(shí)間。Amazon 會(huì )處理與硬件和基礎設施相關(guān)的繁瑣工作,并確保其高可用性,您只需關(guān)注如何把您的思想變成現實(shí)。
下面是這個(gè)全 Web 范圍的基礎設施的主要元素,它們提供幾乎所有應用程序最常用的構建塊:
可以根據需要結合使用這些服務(wù);它們能夠很好地相互協(xié)作。因為這些服務(wù)在 Amazon 環(huán)境中運行,它們之間的所有通信通常非???。
![]() |
|
Amazon Web Services 的用戶(hù)可以使用兩個(gè)支持級別:
Amazon 為與每個(gè)服務(wù)進(jìn)行交互提供了基于標準的 SOAP 和 REST 接口。Amazon 和第三方提供多種語(yǔ)言的開(kāi)發(fā)人員庫,包括 Ruby、Python、Java™、Erlang 和 PHP,可以使用這些庫與服務(wù)通信。還可以使用命令行工具管理 EC2 上的計算資源。REST 接口很容易使用;可以用任何編程語(yǔ)言編寫(xiě)客戶(hù)機,通過(guò) HTTP 向 Web 服務(wù)發(fā)出請求。
Amazon Simple Storage Service (S3) 提供一個(gè)用于數據存儲和獲取的 Web 服務(wù)接口。數據可以是任何類(lèi)型的,可以從 Internet 上的任何地方存儲和訪(fǎng)問(wèn)數據??梢栽?S3 中存儲任意數量的對象;存儲的每個(gè)對象的大小可以從 1 字節到 5 GB。存儲本身位于美國或歐盟。在創(chuàng )建 bucket (與操作系統中的文件夾概念相似)時(shí),可以選擇對象的存儲位置。使用與 Amazon 電子商務(wù)網(wǎng)站的全球網(wǎng)絡(luò )相同的數據存儲基礎設施存儲數據,確保安全性。
對于存儲在 S3 中的每個(gè)對象,可以指定訪(fǎng)問(wèn)限制,可以用簡(jiǎn)單的 HTTP 請求訪(fǎng)問(wèn)對象。甚至可以讓對象可通過(guò) BitTorrent 協(xié)議下載。
S3 讓用戶(hù)完全不必為存儲空間、數據訪(fǎng)問(wèn)或數據安全性操心。甚至不必承擔維護存儲服務(wù)器的成本。
![]() |
|
Amazon EC2 是一個(gè) Web 服務(wù),它讓用戶(hù)可以在幾分鐘內獲得虛擬機器,根據需要輕松地擴展或收縮計算能力。您只需為實(shí)際使用的計算時(shí)間付費。如果需要增加計算能力,可以快速地啟動(dòng)虛擬實(shí)例;當需求下降時(shí),可以馬上終止它們。
這些實(shí)例基于 Linux®,可以運行您需要的任何應用程序或軟件。您可以控制每個(gè)實(shí)例。EC2 環(huán)境本身基于在劍橋大學(xué)開(kāi)發(fā)的開(kāi)放源碼的 Xen 系統管理程序。Amazon 允許創(chuàng )建 Amazon 機器映像 (AMI) 作為實(shí)例的模板??梢酝ㄟ^(guò)指定權限控制對實(shí)例的訪(fǎng)問(wèn)??梢杂眠@些實(shí)例做任何事;惟一的限制是,它們必須是基于 Linux 的映像。最近,Amazon 宣布與 Sun Microsystems 合作提供 Open Solaris 支持,但是 EC2 可用的大多數免費和商業(yè)預構建映像是基于 Linux 的。
Amazon EC2 提供真正全 Web 范圍的計算,很容易擴展和收縮計算資源。您可以完全控制在 Amazon 數據中心中運行的這個(gè)計算環(huán)境。Amazon 提供五種服務(wù)器類(lèi)型;可以選擇適合自己應用程序需要的服務(wù)器類(lèi)型。服務(wù)器的范圍從普通的單核 x86 服務(wù)器直到八核 x86_64 服務(wù)器??梢园褜?shí)例放在不同的地理位置或可用性區中,從而確保對抗故障的能力。Amazon 最近還引入了彈性 IP 地址的概念,彈性 IP 地址可以動(dòng)態(tài)地分配給實(shí)例。
用 Amazon Simple Queue Service 實(shí)現可靠的消息傳遞
Amazon Simple Queue Service (SQS) 允許訪(fǎng)問(wèn) Amazon 提供的可靠的消息傳遞基礎設施??梢允褂煤?jiǎn)單的基于 REST 的 HTTP 請求在任何地方發(fā)送和接收消息。不需要安裝和配置任何東西??梢詣?chuàng )建任意數量的隊列,發(fā)送任意數量的消息。Amazon 把消息存儲在多個(gè)服務(wù)器和數據中心中,從而提供消息傳遞系統所需的冗余和可靠性。每個(gè)消息最多可以包含 8KB 的文本數據??梢栽谙⒅惺褂玫?Unicode 字符只包括
#x9 | #xA | #xD | [#x20 to #xD7FF] | [#xE000 to #xFFFD] | [#x10000 to #x10FFFF]。
每個(gè)隊列可以有一個(gè)可配置的可見(jiàn)性超時(shí)周期,用來(lái)控制多個(gè)讀者對隊列的訪(fǎng)問(wèn)。一個(gè)應用程序從隊列中讀取一個(gè)消息之后,其他讀者就看不到這個(gè)消息,直到超時(shí)周期期滿(mǎn)為止。在超時(shí)周期期滿(mǎn)之后,消息重新出現在隊列中,另一個(gè)讀者進(jìn)程就可以處理它。
SQS 與其他 Amazon Web Services 很好地集成??梢允褂?SQS 構建松散耦合的系統;在這種系統中,EC2 實(shí)例可以通過(guò)向 SQS 發(fā)送消息相互通信并整合工作流。還可以使用隊列為應用程序構建一個(gè)自愈合、自動(dòng)擴展的基于 EC2 的基礎設施??梢允褂?SQS 提供的身份驗證機制保護隊列中的消息,防止未授權的訪(fǎng)問(wèn)。
用 Amazon SimpleDB 進(jìn)行數據集處理
Amazon SimpleDB (SDB) 是一個(gè)用于存儲、處理和查詢(xún)結構化數據集的 Web 服務(wù)。它并不是傳統意義上的關(guān)系數據庫,而是一個(gè)高可用的模式,是云中的非結構化數據存儲,可以使用它存儲和獲取包含鍵的值。每組包含鍵的值需要一個(gè)惟一的條目名;條目本身劃分為域。每個(gè)條目可以包含最多 256 個(gè)鍵-值對??梢栽诿總€(gè)域中對自己的數據集執行查詢(xún)。SDB 當前還不支持垮域查詢(xún)。
SDB 便于使用,提供關(guān)系數據庫的大多數功能。SDB 的維護比典型的數據庫簡(jiǎn)單得多,因為不需要設置或配置任何東西。Amazon 負責所有管理任務(wù)。Amazon 自動(dòng)地為數據編制索引,可以在任何時(shí)候任何地方訪(fǎng)問(wèn)索引。不受模式限制的關(guān)鍵優(yōu)點(diǎn)是,能夠動(dòng)態(tài)地插入數據和添加新的列或鍵。
SDB 是 Amazon 基礎設施的組成部分,會(huì )在幕后自動(dòng)地擴展。您可以把注意力放在更重要的方面。同樣,只需為實(shí)際使用的數據集資源付費。
![]() ![]() |
![]()
|
Amazon Web Services 通過(guò)提供以下特性幫助實(shí)現可伸縮的系統:
![]() ![]() |
![]()
|
為了通過(guò)這個(gè) “用 Amazon Web Services 進(jìn)行云計算” 系列中的其他文章詳細了解這些服務(wù),需要注冊一個(gè) Amazon Web Services 賬戶(hù)(見(jiàn) 參考資料)。它會(huì )提供公共和私有安全訪(fǎng)問(wèn)密鑰以及 x.509 安全證書(shū),在 “第 2 部分:用 Amazon Simple Storage Service (S3) 在云中存儲數據” 中開(kāi)始使用各種庫時(shí)需要這些密鑰和安全證書(shū)。
用于與這些 Web 服務(wù)進(jìn)行交互的工具和庫有用多種語(yǔ)言編寫(xiě)的不同版本。本系列中的文章力求與語(yǔ)言無(wú)關(guān),提供多種語(yǔ)言的示例,但是熟悉 Java、Ruby 或 Python 會(huì )有幫助。
![]() ![]() |
![]()
|
在本文中,介紹了 Amazon 的云計算環(huán)境,概述了這個(gè)基礎設施的四個(gè)主要部分。本系列的后續文章詳細討論每個(gè) Amazon Web Service,以及用于利用這個(gè)虛擬基礎設施構建應用程序的各種庫和工具。
聯(lián)系客服