
從貯存到支付,云計算的領導者(亞馬遜)提供了一系列的低價服務來吸引注意。我們將緊密關注這些。
亞馬遜網絡服務( AWS)是基于一個簡單的想法:亞馬遜已經建立了一個跨越全球的硬件和軟件基礎設施,來支持該公司的互聯網業務,那么為什么不將那些基礎設施的組件模塊化并且出租?這是類似一個建設州際公路的大型建筑公司,出租其設備和專門的技術,把他們投入到例如,修建一條小路,鋪平了一間超級市場的停車場,修理管路,或者開掘后院游泳池的工程中。
更具體地, AWS通過REST或者基于SOAP的網絡服務呼叫使亞馬遜業務體系的各個模塊都能夠連接和使用。這些模塊可以比作是有X2GHz處理器和2GB內存的虛擬電腦系統,并且存儲系統能夠容納數TB的數據,數據庫,支付管理系統,訂單追蹤系統,虛擬店面系統,所有上述情況的組合,甚至更多。當我說“實用”,我真正的意思是指“值得” 。你只需要為你使用的服務(和他們的資源)買單。
最為關鍵的是,你可以租用大量的虛擬機,存儲數TB的數據,或建立一個互聯網范圍的消息隊列,并且你將只需向Amazon支付你消費的資源費用。因此,如果你的業務需求的一組CPU群和數百十億字節的儲存空間來處理你每周星期三才要處理的工作,也就是說,你并不需要一間房子來存放一個星期有六天不工作的服務器。你可以使用AWS。因此,AWS對有間歇性或短暫的處理需求的商業系統尤其具有吸引力。
費用也非常合理。舉例來說,貯存100 GB的數據一個月,將花費15美元( 15美分每GB每月) ,開發者每發送1GB數據到“計算云”需要支付10美分費用(亞馬遜網絡服務的網站提供了一個簡單的在線AWS計算器,計算你每月使用的任何服務組合的費用) 。
想了解更多AWS以及其云計算的競爭對手?請參閱我們的特別報告"Inside the emerging world of cloud computing."。準備涉足AWS,但又不知道從何開始?請閱讀"Hooking your apps into Amazon Web Services."
正如上面所示,這種服務范圍包括從硬件(盡管虛擬)到處理。這些服務分為三類:基礎設施服務,電子商務服務,和網絡信息服務。
調查基礎設施服務
基礎設施服務有彈性計算云(EC2);簡單儲存服務(S3),持久存儲系統;簡單數據(SimpleDB)組成,他實現了一個遠端存取數據庫;和亞馬遜的簡單排隊服務(SQS) ,一個消息隊列服務和約束分布式應用程序代理,由E2,S3 ,和SimpleDB 組合構成。
這些服務的提供無限的計算,存儲和通訊設施。他們非常適合被稱為“間歇性”的應用:他們需要大量計算或貯存設施,并且不安常規(例如,一個應用程序只在每周周五晚上進行收集數據的處理) 。一個應用程序,需要全世界連通性-也就是說,一個系統對圖形文件進行處理并且將結果通過互聯網提供給客戶-也可以善加利用基礎設施服務。最后,這些服務作為大型分布式應用的優秀概念驗證實驗室。發展內務正在尋求證明,一個被提議的企業環境應用程序能通過使用基礎設施服務來實現一個藍本的可行性,并且可以避免硬件成本,但如果該藍本被認為不可行,將是一個凈損失。
彈性計算云(EC2)。
想象一個廣闊空間充滿了服務器系統,所有網路連結在一起。坐在你的單一工作站,你創建一個虛擬機的形象,它定義了一個1.2 GHz主頻處理器,1.7GB內存和一個160 GB的硬盤的虛擬機運行Linux,并且預裝你特別用來壓縮大量待處理數據的軟件。你部署他對外服務,并且管理這些服務器。在將來某個時間, 你的數據挖掘操作將獲得大量的數據矩陣。你指示服務實例化50部虛擬機,并釋放每一個數據矩陣中。在幾秒鐘內, 50部1.2 GHz主頻處理器都將積極處理你的的數據。他們完成后,他們的把結果存放在一個預先指定的儲存點,然后消失。
EC2簡言之。 他完全是一部具有無限采集能力的虛擬計算機,用戶能夠用來執行一些處理任務。然而“無限”并不不意味“無邊際”; 相反,他是具有上限的。 亞馬遜的文獻闡明,你能同時租用“上百,甚至數以萬計”虛擬機。
EC2如何同他的競爭對手較量呢?請參閱測試中心的測試評論:"Cloud versus cloud: A guided tour of Amazon, Google, AppNexus, and GoGrid."
因為在EC2中的系統是虛擬的,亞馬遜提供了一個廣泛的硬件支持能力。在低端,你可以調用一個主頻是1.26GHz和1.8GB內存的Opteron級機器。在高端(截止到寫這篇文章時) ,你可以調用一個擁有15 GB內存的64位多核系統。這些規格是略計。虛擬機器,你實例在EC2計算機單元(ECU) ,亞馬遜定義為相當于1 1.0ghz到1.2 GHz主頻2007 Opteron處理器。 (該公司建議確定自己的基準,以確定哪些是你的特定應用程序的最好實例) 。
亞馬遜機器映象( AMI )由一個操作系統和當虛擬機啟動時你想要預先載入的任何的應用程序組成。目前,只有Linux可作為EC2實例的操作系統 ,雖然這幾乎不是一個限制。有不少的亞馬遜預制的AMI產品目錄發布。審閱這些目錄,我發現使用Ubuntu、OpenSolaris、Centos,Fedora和許多其他的立即可用的AMIs–總共有1 00多AMI準備外賣。你可以使用亞馬遜免費提供的SDK建立自己的AMI,但過程是漫長的。從產品目中選擇一個編譯好的AMI要容易得多,并且能夠按需定做。即使如此,許多可用的AMI,包括具體應用的軟件;你完全可以找到一個滿足你需要的。
簡單儲存服務(S3)。
亞馬遜簡單的儲存服務(S3)實際上是一個以太網上的大磁盤。嚴格來說,你需要知道關于它一切的90%。它沒有目錄和沒有文件名-只是一個大空間,你可以儲存和提取大小從1byte到5 G B的非結構化數據。
我們稱之為“塊”,S3稱之為“對象” ,我們稱之為“目錄 ”,S3 則比方為“桶” 。因此,當你在S3上儲存200KB的JPEG格式的圖片時,你是把200KB的對象放進水桶。一特定的AWS帳戶可以擁有多達100個水桶。水桶能容納無限數量的塊 ,它可以分配給無論是在美國或歐洲的使用者。據推測,這為用戶提供了一個本土化的服務,因為桶可在任何地方通過互聯網,從亞馬遜獲得。在美國和在歐洲提供服務的費用差異是微小的;在歐洲提供1000次的網絡存取服務,只比在美國貴大約2000美分。
更深入,你可以把一對象看做是三位一體:關鍵字,數值,和元數據。關鍵字是該對象的名稱,數值是它的內容,以及元數據是一組描述對象信息的關鍵字/數值對。 (雖然訪問權限也同對象聯系在一起,但被視為單獨的存儲對象) 。對象的名稱可以是3至255個字符,亞馬遜對命名唯一約束的地方就是,是他們希望不要同網址混淆。因此,一個對象被命名為“ 192.168.12.12 ”是不合要求的。
而S3的結構實際上是一個平面文件系統, S3的API允許一位能干的程序員在桶內建立明顯的子目錄。不夠理想的是對象名稱中必須包含該目錄的名稱;不過,人為的可以簡單修飾對象名稱。因此,如果你想要一個動物的目錄和蔬菜的目錄,你可能有對象關鍵字,如“動物-貓” , “動物-狗” , “蔬菜-甜菜, ”和“蔬菜-胡蘿卜” 。使存儲目標的地址前綴參量,你可以限制被檢索對象的關鍵字為動物或蔬菜。 在亞馬遜的簡單的數據庫應該保存更加復雜的數據結構。
亞馬遜的簡單數據庫服務(SimpleDB)。
亞馬遜S3是專為大型,非結構化的數據塊設計, 而SimpleDB是為復雜的,結構化數據建立的。與其他服務一樣,這個名稱說明了一切。雖然SimpleDB是使用輕量級并且很容易掌握的查詢語言實現的數據庫,但他支持大部分你可能會需要的數據庫操作(搜索,提取,插入,并刪去)。為保持SimpleDB簡潔,亞馬遜遵循一個原則,就是最好的API擁有最低限度的切入點:SimpleDB有七項。
SimpleDB數據庫不是像Oracle或MySQL那樣的關系數據庫。 (亞馬遜的文件指出,如果你確實需要成熟的關系數據庫,你可以在彈性計算云中的AMI平臺上免費的運行MySQL服務器)。SimpleDB數據庫(一個“領域”在SimpleDB說法)由數據項組成,并且數據項目由屬性組成。 屬性是一個名字/數值對。 最少,數據項必須有ItemName屬性,擔當數據項的唯一識別符。 當你發送一次查詢時,結果是ItemName數值的匯集-獲取數據項的實際內容(屬性),你使用那些數值作為輸入執行Get操作。
并不是那么簡單,SimpleDB擁有令人驚訝的能力。 一個 SimpleDB數據庫可以成長到10 GB的和安置多達2.5億個屬性。你可以為某一特定數據項定義多達256個屬性,并沒有規定在一個域中所有的數據項具有相同的屬性。在此外,特定的屬性可以有多個值,因此,客戶數據庫,可以為單一customername屬性存儲多個別名。
最后,SimpleDB是專為支持“實時” (快速周轉)查詢設計。為確保快速查詢響應,當數據項被放置在數據庫中時,所有屬性將自動索引編號。此外,亞馬遜的文件顯示,查詢應在不超過5秒內完成,否則,查詢可能會中止。亞馬遜這么做是為確保查詢收到一個快速反應,即使使查詢達到妨礙調用程序的惡意程度。
亞馬遜簡單隊列服務(SQS)。亞馬遜SQS相對于JMS或MQSeries服務體系來說,只是一個簡單的消息隊列服務。SQS最顯著的特征是它的無所不在。一個亞馬遜的書籍文獻表明: “在互聯網的所有計算機不用安裝任何軟件或特殊防火墻配置就可以增加或讀消息”。 當然, SQS信息的處理端很可能就是EC2上的AMIs。
像亞馬遜其他網絡服務,SQS名副其實:消息只許是文字,并且長度必須小于8 KB。你可以構建一個具有四個功能的工作隊列:createqueue , sendmessage , receivemessage , deletemessage 。 (還有其他方便的功能; 例如,ListQueues將列出現有帳戶的的隊列) 。
SQS隊列主要設計支持分布式計算機系統之間的工作流,因此,并發管理和故障排除是絕對的。 當客戶從隊列讀一則消息時,那則消息沒有被刪除; 它被鎖定,導致其他客戶看不見。 用那個方式,如果消息作為工作流一部分,代表一項具體任務執行,兩個客戶不可能同時讀一消息,并且復制。 然而,如果消息沒有在指定的暫停之前被刪除,鎖就被解除了。 然而,目的是讓消息的原始讀者指定的工作完全時將消息刪除。 如果原始的讀者無法完成工作(或許由于系統事故),那么暫停到期,消息在隊列中“再現”,并且一個不同的客戶能讀消息和承擔該指定的工作。
CIO頻道人物視窗
CIO頻道方案案例庫
大數據建設方案案例庫
電子政務建設方案案例庫
互聯集成系統構建方案案例庫
商務智能建設方案案例庫
系統集成類軟件信息研發企業名錄