雲端計算服務模型,第 3 部分: 軟體即服務(PaaS)

huidaoli發表於2013-07-20

英文原文:Cloud computing service models, Part 3: Software as a Service

  軟體即服務 (SaaS) 為商用軟體提供基於網路的訪問。您有可能已經使用過 SaaS,即使您當時並不知道。SaaS 的示例包括 Netflix、Photoshop.com、Acrobat.com、Intuit QuickBooks Online、Gmail 和 Google Docs。可能不太明顯的 SaaS 實現包括移動應用程式市場中的相當一部分。

  SaaS 為企業提供一種降低軟體使用成本的方法——按需使用軟體而不是為每臺計算機購買許可證。尤其是考慮到大多數計算機在差不多 70% 的時間是空閒的,SaaS 可能非常有效。企業不必為單一使用者購買多個許可證,而是讓許可證的使用時間儘可能接近 100%,從而儘可能節省成本。

  為了方便,表 1 再次給出本系列第 1 部分中提供的三類服務的概念交叉矩陣。

  表 1. 三類雲端計算的概念交叉矩陣 

 範型轉變特徵關鍵詞彙優點缺點和風險不應該使用的場合
基礎設施即服務 (IaaS) 基礎設施即資產 常常獨立於平臺;分擔基礎設施成本,因此會降低成本;服務水平協議 (SLA);按使用量付費;自我伸縮 網格計算,效用計算,計算例項,系統管理程式,暴雨 (cloudbursting),多租用者計算,資源池 避免在硬體和人力資源方面花費資產費用;降低 ROI 風險;降低進入門檻;簡化和自動化伸縮過程 企業效率和生產力很大程度上取決於廠商的能力;可能會增加長期成本;集中化需要新的/不同的安全措施 當資產預算大於運營預算時
平臺即服務 (PaaS) 許可證購買 消費雲基礎設施;能夠滿足敏捷的專案管理方法 解決方案堆 簡化的版本部署 集中化需要新的/不同的安全措施
SaaS 軟體即資產(企業和消費者) SLA;由 “瘦客戶機” 應用程式提供 UI;雲元件;通過 API 進行通訊;無狀態;鬆散耦合;模組化;語義性互操作能力 瘦客戶機;客戶機-伺服器應用程式 避免在軟體和開發資源方面花費資產費用;降低 ROI 風險;簡化和迭代式的更新 資料的集中化需要新的/不同的安全措施

  SaaS 給軟體廠商提供了新的機會。尤其是,SaaS 軟體廠商可以通過四個因素提高 ROI:

  • 提高部署的速度
  • 增加使用者接受率
  • 減少支援的需要
  • 降低實現和升級的成本

  部署的速度

  在過去,部署傳統的桌面應用程式需要很大的工作量。實際上,我曾經多次聽到桌面應用程式開發人員把更新他們的應用程式稱為 “部署噩夢”。正如 Tariq Ahmed 在 Flex 4 in Action (Manning Press) 的第 1 章中指出的,“要想讓數千甚至數萬客戶機同時執行軟體的某一版本,後勤方面的複雜性是非常高的。”

  Ahmed 說,複雜性這麼高,以致於大多數桌面軟體開發公司甚至認為這根本不合理或不可行。過去受到這個問題困擾的開發商應該考慮部署軟體的 SaaS 版本。但是,妨礙傳統軟體開發公司進入 SaaS 市場的最大障礙是讓桌面應用程式能夠作為 SaaS 應用程式執行。在許多情況下,這需要在某種程度上重新編寫軟體,一些公司覺得這麼做成本太高。

  這正是向雲端計算轉移的過程比較緩慢且平緩的主要原因之一。在大多數情況下,符合邏輯的解決方案是分階段地把軟體轉移到雲中,首先以 SaaS 的形式提供原應用程式的高度簡化的版本。考慮到開發商對版本控制的控制水平,這麼做是很合理的。在這裡,分析一下 SaaS 的特點會很有幫助。

  您可以看出在雲端計算與過去的 “LAN 計算” 之間有許多相似之處。典型的 LAN 架構由站內的許多工作站組成,它們常常被稱為啞終端,它們通過連線強大的大型機(常常由 IBM 提供)執行應用程式,見 圖 1。

  圖 1. 顯示在基本 LAN 中客戶機終端與大型機系統的關係的簡單示意圖 

顯示在基本 LAN 中客戶機終端與大型機系統的關係的簡單示意圖 

  這種計算型別過去非常適合企業,因為 IT 部門能夠完全控制版本,可以非常方便地多次部署更新。同樣,過去妨礙桌面軟體應用程式開發商進行版本控制的後勤障礙在雲中也不存在,因為軟體在開發公司能夠直接訪問的基礎設施上執行。

  考慮到 SaaS 必須能夠服務的客戶機數量,SaaS 基礎設施的規模要比 LAN 大得多。但是,底層的概念是相同的。圖 1 所示的大型機能夠駐留足夠多的軟體例項,從而為本地網路中連線它的所有客戶機提供服務;而 圖 2 所示的雲由許多不同的計算機資源組成,它們共同提供計算能力,從而執行為世界各地的客戶機提供服務所需的許多軟體例項。

  圖 2. 顯示在 SaaS 中客戶機裝置與雲的關係的簡單示意圖
顯示在 SaaS 中客戶機裝置與雲的關係的簡單示意圖 

  增加接受率

  如果您走出企業,看看 SaaS 對於一般消費者的意義,就會發現以前一些軟體的許可證費用太高,而現在 SaaS 讓一般消費者能夠以合理的價格使用它們。一個好例子是 Adobe 以 SaaS 的形式提供 Adobe® Photoshop®。儘管這項工作是 Adobe 正在做的試驗,但是已經取得了一些效果。例如,我注意到在需要執行簡單的照片編輯任務時,在我的朋友和家庭成員中越來越多的人開始使用 Photoshop.com 進行基本的照片編輯,而不是啟動全功能的版本。出現這種趨勢的原因是,不需要完整版本中的功能的人現在可以省錢。與此同時,過去不使用 Photoshop 的人也開始使用 Photoshop.com 了,這給 Adobe 帶來了爭取新的長期客戶的機會,擴大了潛在客戶的範圍。

  SaaS 提供的多種業務模型尤其有吸引力。例如,Intuit 以 SaaS 的形式提供 QuickBooks Online,按月收取服務費。作為經常旅行的企業主,我發現這種服務非常有用,尤其是因為我的業務夥伴住在 400 英里外的另一個州里。同時,Adobe 在 Photoshop.com 和 Acrobat.com 中應用了 SaaS,以 freemium 服務的形式提供軟體——freemium 服務是指一種基於許可證軟體產品的 SaaS 縮略版的業務模型。

  freemium SaaS 基於的收入模型是,預計免費使用者中的一部分最終會覺得軟體很有用,他們會升級到啟用了更多特性的 SaaS 付費版本,或者購買包含所有特性和功能的桌面版本的許可證。這種方法往往比通過 “受限制的演示” 模式試用軟體更好,因為演示模式要求使用者在桌面計算機上安裝他們可能不會購買的應用程式。另外,如果免費使用者中升級的比例低於預期,還可以通過廣告進一步補充這個模型。隨著雲端計算的發展,傳統的桌面軟體廠商經常使用這種方法適應市場的變化。

  減少支援的需要

  大型客戶服務中心的成本很高,不得不支援多種平臺會導致支援問題增加,而 SaaS 可以大大緩解這些難題。首先,部署的簡便性讓開發人員能夠在發現 bug 之後很快進行修復,這意味著大多數 bug 可以在大量使用者遇到它們之前被修復,這會減少客戶支援部門接到的電話數量,提高客戶滿意度,降低客戶流失的可能性。

  另外,傳統桌面軟體應用程式的開發商常常必須支援多種平臺。例如,開發商可能必須支援 Windows® 7 和 Apple Mac OS X 10.6 作業系統,新增對第二種作業系統的支援差不多會讓開發成本加倍;而且,如果支援這些作業系統的許多不同版本,問題會更多。支援作業系統的多個版本還會產生限制。

  例如,如果您要構建一個在 Windows 7 上執行的程式,但是它必須與 Windows XP 相容,就必須非常小心,要確保特性和功能在這兩個版本上都能夠執行;否則,就必須把專案分為兩個分支,為每個版本開發單獨的程式碼,這會不可避免地降低生產力和效率,延長完成專案的預期時間。讓業務執行官心跳加速的最快方法之一是,告訴他後兩年的預期開發進度要減慢一半兒。另外,支援不同的作業系統和這些作業系統的不同版本會增加預算;這個問題和其他因素導致目前軟體開發專案的失敗率非常高。

  降低實現和升級的成本

  SaaS 推動 ROI 的第四個因素與第一個因素有點兒相似。但是,部署的速度是指快速、簡便地部署應用程式更新所帶來的好處。與之相反,降低實現和升級的成本是指開發公司由於能夠控制版本和執行軟體的基礎設施所獲得的經濟利益。

  因為開發商可以控制執行軟體的平臺(平臺通常對於使用者完全透明),所以他們不必負擔在多個平臺上測試和部署 bug 補丁和新特性的額外開銷,這會節省大量資金。這讓 SaaS 應用程式的升級成本更低。節省的大量時間和資金讓開發商有機會更好地響應客戶的請求並增強易用性,從而提高客戶滿意度,降低客戶流失的可能性,這會帶來間接的經濟利益。

  SaaS 和使用者體驗設計

  SaaS 應用程式代表著一種新一代應用程式設計方式。儘管在我目前看到的文件中沒有明確地指出,但是看起來 SaaS 程式也帶來了一種新的 UI 設計方式,這種方式與大多數其他行業中的產品設計流程更一致。這種方式包含一個稱為使用者體驗設計 (UXD) 的流程,在這個流程中由產品團隊而不是開發團隊設計 GUI。

  UXD 的主要目的是,確定哪些特性會讓應用程式對於目標客戶最有價值,並在設計中融入這些知識。儘管對於是否應該在所有型別的軟體的開發中都執行這個流程有爭議,但是在 SaaS 應用程式開發中這種做法非常普遍。出現這種現象的原因可能是,SaaS 可以實現的業務模型與傳統軟體不同,需要執行 UXD;而且通過開發 SaaS 可以節省大量時間和資金,讓開發商有能力執行 UXD。

  SaaS 對於開發人員的意義

  正如您看到的,完全成熟的雲端計算對於企業和消費者來說都是巨大的轉變,必須克服很多難題。因此,這個轉變過程會花費一段時間,要經過幾個階段的漸進遷移。在這次計算模式演變期間,軟體開發商必須能夠適應變化的環境,從而繼續滿足企業和消費者的需要。

  隨著雲端計算的發展,企業必須能夠適應變化的環境,而軟體程式設計師需要擴充他們的技能並瞭解 SaaS 程式設計模型,從而適應企業的要求。雲端計算不僅僅是通過虛擬化提供可伸縮的基礎設施和平臺可移植性。它還把軟體提升到全新的水平,可以認為它代表著新一代計算機程式設計模型。這一論斷可能比較大膽,但是考慮到本文中討論的 SaaS 提供的機會,這並非沒有根據。

  例如,一般消費者能夠負擔軟體費用意味著潛在客戶更多。能夠控制平臺、基礎設施和軟體版本會直接節省成本。顯然,SaaS 很快會帶來某種程度的 “民主”,也就是說中小型的開發企業也能夠與大型開發商在同一領域中競爭。

  結束語

  在本文中,我們分析了雲端計算的第三種型別 SaaS。更重要的是,您瞭解了 SaaS 應用程式的日益流行所帶來的機會和挑戰。

  在閱讀本系列中的三篇文章之後,我希望您對雲端計算對於您的職業前途和企業意味著什麼有了更清晰的認識。除了前兩篇文章中提供的 IaaS  PaaS 方面的參考資料之外,參考資料提供關於 SaaS 的更多資訊的連結。

  參考資料

  關於作者

  Dan Orlando 是企業開發社群公認的領導者。作為長期顧問,Dan 經常向行業領導者以及 IBM developerWorks、Adobe Developer Connection 和 Amazon Web Services 等出版物提供 Adobe 技術平臺方面的專業經驗。Dan 還在 DanOrlando.com 上定期發表部落格文章。

相關文章