\想要知道軟件即服務(wù) (SaaS) 在云計算中的扮演的是什么角色嗎?本篇文章將探究不同風格的 SaaS,并給出兩個 SaaS 如何在按需付費的云計算環(huán)境中工作的例子 —— 工廠工程管理和遠程學習。通過結(jié)合多租賃和虛擬化的優(yōu)點對 SaaS 進行性能調(diào)優(yōu)。尋找針對未使用資源和互操作性問題的解決方案。最后,如果沒有恰當?shù)挠媱澓蛯崿F(xiàn),安全性防護的成本將遠遠超出 SaaS 和云計算的價格優(yōu)勢。
簡介
如果使用過 Amazon Web 服務(wù),您一定會對 SaaS 在云計算中扮演的角色很感興趣。好消息是您可以基于這些 Web 服務(wù)開發(fā) Web 感知、云友好的 SaaS。您可以將這個 SaaS 銷售給許多用戶,比如顧問或產(chǎn)品工程師,并通過更實惠的按需付費方式減少提前購買軟件的成本。另一個好處是 SaaS 在一個集中的位置提供更新,避免經(jīng)常下載補丁和進行升級。
在本文中,我將向您展示 SaaS 和云計算之間的異同,并討論 SaaS 在云計算中扮演的角色,以及展示它與效用計算和平臺即服務(wù)(Platform as a service,PaaS)等其他形式的云計算的巨大差別。我還將給出服務(wù)類別和應(yīng)用程序示例,探討關(guān)于結(jié)合多租賃和虛擬化的內(nèi)容。然后,我將論及未使用的資源和互操作性問題,并提供一些相應(yīng)的解決方案。最后介紹測試 SaaS 在云計算中的執(zhí)行情況所需的條件,以及 SaaS 在安全性方面的問題。
SaaS 的成熟度
SaaS 已經(jīng)非常成熟,可以看作是 mashup 的一部分,或是 PaaS 產(chǎn)品或基于 Internet 的服務(wù)的一個插件。它提供開箱即用的應(yīng)用程序,比如企業(yè)資源管理或工廠工程管理。不管您身居何處,都可以從 Web 瀏覽器訪問這個應(yīng)用程序。
SaaS 服務(wù)的完善得益于服務(wù)器和磁盤上的虛擬平臺軟件。服務(wù)完善程度僅次于它的是 PaaS 和基礎(chǔ)設(shè)施即服務(wù)(Infrastructure as a Service,IaaS)。服務(wù)完善程度最低的是基于 Internet 的服務(wù)。PaaS 在磁盤上運行 API 和虛擬平臺軟件,而 IaaS 則通過 Internet 提供了一個完整的計算機基礎(chǔ)設(shè)施,并僅為 Amazon EC2 和 IBM Blue Cloud 等的用戶提供了服務(wù)器虛擬化。Amazon S3、Amazon Simple DB 和 Google Base 等都是基于 Internet 的服務(wù)。
示例 1:工廠工程管理
我們可以構(gòu)建一個完善的 SaaS,工廠工程公司可以利用它改進生產(chǎn)周期,以及為商品采購、銷售和財務(wù)交易提供保障。這個 SaaS 還能幫助決定生產(chǎn)轉(zhuǎn)包中的容量計劃所需的業(yè)務(wù)流程。它的用戶群很大,可以是廠長、質(zhì)量經(jīng)理、生產(chǎn)線管理員、COO 和 CFO。
主管人員不僅可以利用 SaaS 在按需付費的訂閱環(huán)境中訪問數(shù)據(jù),他們還可以借助它在財務(wù)、工廠工程、生產(chǎn)周期、供應(yīng)管理和人力資源計劃方面做出關(guān)鍵決策。SaaS 可充當制造型工廠的決策者的經(jīng)營業(yè)務(wù)智能工具。比如,通過 SaaS 提供的工具可以為決策者提供原料處理時間、生產(chǎn)周期時間和設(shè)備更換時間的理想指標。這些工具還可以給出分析,并在某個指標沒有達到理想指標時為決策者提供補救措施。
示例 2:遠程學習
我們可以將一個培訓程序構(gòu)建為 SaaS。DigitalChalk 的 SaaS 模型專門針對大學或企業(yè)客戶,幫助他們通過 Web 站點傳輸培訓內(nèi)容(包括遠程學習)。在構(gòu)建這個 SaaS 時,它創(chuàng)建了自己的 Amazon Machine Image (AMI) 并使用 Amazon S3、EC2 和 SQS,而不是使用數(shù)據(jù)中心。
要開發(fā)其他的 SaaS 服務(wù),可以使用 EC2 將要運行的 IBM AMI。其中包括 IBM DB2、IBM Informix、IBM Websphere Smash 和 IBM Lotus Web Content。要擴展 AMI 存儲庫,可以使用預先配置好的 AMI 模板,也可以創(chuàng)建一個包含有應(yīng)用程序、庫、數(shù)據(jù)和相關(guān)設(shè)置的 AMI。
SaaS 服務(wù)的分類
Microsoft® 將 SaaS 分為兩類:面向企業(yè)的服務(wù)和面向個人消費者的服務(wù)。這兩種服務(wù)均可通過訂閱購買得到。面向企業(yè)的服務(wù)是用于金融、供應(yīng)鏈管理及客戶關(guān)系等方面的、基于按需付費的大型定制商業(yè)解決方案(例如,工廠工程管理)。面向個人消費者的服務(wù)的目標是不需要他們付費,而是依靠廣告支持獲得收入。
由于這兩種分類仍然很有限,我這里再增加兩個種類:共享資源服務(wù)和 外包服務(wù)。共享資源服務(wù)在一個用戶池中分發(fā)服務(wù),能夠讓大型公司以很低的成本能獲得峰值的負荷容量,減少了對大型內(nèi)部數(shù)據(jù)中心的需求。外包服務(wù)則讓中小型企業(yè)可以通過完全外包數(shù)據(jù)中心基礎(chǔ)設(shè)施的方式提供服務(wù)(比如,遠程學習)。
除了面向個人消費者的服務(wù)外,只有企業(yè)向大量客戶提供服務(wù)時,才可能有收益。因為只有客戶群足夠大,按需付費訂閱的低收益才能彌補基礎(chǔ)設(shè)施的高成本 — 它不像效用計算那樣按使用率來收費。除訂閱外,收入來源還有介紹費、交易費、基于消費的定價、基于性能的定價、轉(zhuǎn)銷收益及收入分成。
最佳性能調(diào)優(yōu)
每個示例都顯示 SaaS 的三個屬性:可配置性、可伸縮性及多租賃效率。如果 SaaS 不具備一個或多個這樣的屬性,那么這個 SaaS 就是不成熟的。為了獲得更靈活的系統(tǒng)最佳性能調(diào)優(yōu),可以將多租賃與虛擬化相結(jié)合。
多租賃
多租賃是指一種軟件架構(gòu),在這種架構(gòu)下,軟件的單個實例作為一個 SaaS 運行,服務(wù)于多個客戶組織(租戶)。對于這種多租戶的架構(gòu),數(shù)據(jù)和配置被虛擬分區(qū),以使每個客戶組織都能處理一個虛擬的應(yīng)用程序?qū)嵗Mㄟ^合并單個操作中的 IT 資源,多租賃節(jié)約了成本。
多租賃的一個缺點就是當用戶的基數(shù)很小時,它也要占用大量的內(nèi)存和進行大量的應(yīng)用程序處理。當用戶基數(shù)很大時,由于負荷可以在多個用戶間分攤,就克服了這個缺陷。多租賃的另一個缺點就是構(gòu)造一個高效的多租賃應(yīng)用程序可能需要額外的編程,這就增加了開銷。
虛擬化
SaaS 架構(gòu)中的服務(wù)器虛擬化不局限于多租賃的數(shù)據(jù)和配置虛擬分區(qū)。虛擬化的好處之一就是它能通過動態(tài)調(diào)整實際服務(wù)器的數(shù)量以及資源的合理大小(包括存儲和數(shù)據(jù)庫資源),從而提高系統(tǒng)的容量以滿足需求(比如在 12 月份購買會增加)。不好的一面是,由于虛擬化軟件互操作性方面的問題,虛擬化后的服務(wù)器有可能不能從一個廠商轉(zhuǎn)移到另一個廠商。
問題 1:未使用資源
運行在 Web 服務(wù)之上的 SaaS 利用 SOA 在軟件應(yīng)用程序之間進行交互。每個軟件服務(wù)均可充當一個服務(wù)提供者或請求者。SaaS 服務(wù)提供者通過公共代理向其他應(yīng)用程序公開其功能。SaaS 服務(wù)請求者合并來自其他服務(wù)的數(shù)據(jù)和功能。二者均在 SaaS 服務(wù)的部署和管理上因經(jīng)營規(guī)模擴大而得到節(jié)約。
不管資源是否缺乏,Web 服務(wù)通常會松散地耦合。要確保用于服務(wù)器提供者和請求者的資源在容量隨需求上下波動時不會被浪費,需要創(chuàng)建一個具有耦合開關(guān)的 Web 服務(wù)以配合 SaaS 應(yīng)用程序。當 Web 服務(wù)收到一個告警表示其對應(yīng)的資源已經(jīng)達到特定的浪費級別時,這個開關(guān)就會從松散耦合倒向緊密耦合。
問題 2:互操作性問題
如果您的 SaaS 是 Web 感知、云友好的,公司可能會發(fā)現(xiàn)很難對不同的廠商運行同一個 SaaS 應(yīng)用程序,因為這些廠商可能具有不同的導入和導出數(shù)據(jù)的格式。考慮這樣一個場景:假設(shè)您有兩個 SaaS 應(yīng)用程序需要 mashup。一個在某個廠商的云計算環(huán)境中使用了行業(yè)標準 API。另一個則在另外一個廠商的云計算環(huán)境上運行了專有 API。不經(jīng)過某些修改,這種 mashup 將不能工作。
首先必須解決這兩個云計算廠商間的可移植性問題。這兩個廠商是已經(jīng)允許兩種環(huán)境之間的通信,還是必須要對二者間的數(shù)據(jù)進行處理?這兩種類型 API 的數(shù)據(jù)格式和邏輯是兼容的,還是必須要重新格式化兩個應(yīng)用程序間的數(shù)據(jù)或更改邏輯?目前,還沒有 API 導入和導出數(shù)據(jù)的相關(guān)標準。不過,IBM 和 Amazon 正在共同努力以使互操作性和 mashup 更易于設(shè)計和管理。
測試非常關(guān)鍵
作為軟件開發(fā)的一部分,測試可以確保云計算和 SaaS 能正常工作。為了提高服務(wù)質(zhì)量,也需要進行 SaaS 服務(wù)和應(yīng)用程序的測試。為了開始測試,需要仿真終端用戶環(huán)境,比如多個 Web 瀏覽器、操作系統(tǒng)和網(wǎng)絡(luò)連接性。沒有這些條件就不是一個好開端。例如,一個 Web 瀏覽器有的特性,另一個瀏覽器可能沒有。特性的缺少有可能會影響用戶訪問云計算中的 SaaS 服務(wù)的方式或者未使用資源如何處置的方式。
接下來,測試是否有多租賃漏洞,比如由于軟件漏洞,用戶 A 得以假冒成用戶 B。其他需要進行測試的還有:在系統(tǒng)負載正常的情況下,用戶使用的擴展范圍是多少。在按需付費的環(huán)境中如何最好地管理專有密鑰。云中的大量數(shù)據(jù)應(yīng)如何備份和存儲。在 SaaS 模型中,版本控制和更改管理并非客戶行為,但必須對其進行須測,以確保它們能被充分驗證。同樣重要的是要測試 SaaS 是否滿足垂直需要,因為 SaaS 是一個水平應(yīng)用程序。
要記住,與部署于典型的數(shù)據(jù)中心環(huán)境中的產(chǎn)品相比,云