來自微軟的八名架構師撰寫了設計S+S和雲端運算的注意事項,這篇文章集合了在為企業規劃軟體加服務(S+S)的解決方案時,應該考慮的設計因素。
文章的作者有FredChong、AlejandroMiguel、JasonHogg、UlrichHomann、BrantZwiefel、DannyGarber、JoshyJoseph、ScottZimmerman和StephenKaufman,他們將S+S定義為軟體即服務(SaaS)的擴充:
S+S為組織外包開發、管理、部署提供了更多的選擇,也提供了更多運行業務的技術操作因素。S+S與面向服務的體系架構(SOA)原則協同工作。S+S提供了採購、融資、部署應用軟體和服務的多種模式,從而協助實現SOA的企業增加其技術選擇。
S+S與SOA相輔相成,因為“S+S憑藉部署在公司內部的雲端運算和解決方案為組織提供了最佳化IT投資的計算模型”。S+S並不會否定使用SOA的地方,而是“提供採購、融資、部署應用軟體和服務的多種模式,以此協助SOA最佳化其技術選擇”。
在作者的設想中,S+S、SOA、雲端運算之間的關係如下:
文章對企業架構做了如下分析,從而解決了很多問題:
企業架構
要實現S+S,企業架構需要評估現有的IT資源,包括系統、應用、人力和經驗,決定哪些是內部可實現的,哪些需要外包。就此而言,作者推薦了一個很多大型組織已經在用的模式:
·專有、涉及關鍵業務的系統——這些系統本質上是專有、涉及關鍵業務的,或者是提供競爭優勢的,它們往往被看得很重要,外包給外部服務供應商的話會有風險。因此這些系統往往由組織的現有IT部門設計、開發、操作、管理。
·非專有、涉及關鍵任務的系統——那些非專有,但仍然涉及關鍵任務的系統可以由另一家公司開發,不過仍然要由組織的現有IT部門設計、操作和管理。
·非專有的系統——只要能和服務供應商建立合適的服務水平協議(SLA),非專有、提供標準化功能和介面的系統通常就很適合外包給雲端服務供應商。這種系統的例子有電子郵件、日曆、內容管理工具。
他們還建議仔細斟酌組織的IT成熟度等級、ROI或成本節約、以及採用S+S解決方案的難易程度。
軟體架構,整合設計
關於軟體整合,作者先提出了一個假設——“通過Data Integration、功能整合、展示整合等各種技術”,大多數公司專屬應用程式都跟其它應用有聯絡。
他們說在緊耦合系統中,組織要麼在子系統中圍繞功能子集建立粗粒度的Facade,要麼採用整合技術,在傳統應用和託管到本地/外部的服務之間搭建橋樑。
針對那些使用SOA服務的系統,作者建議考慮將這些服務遷移到雲中,包括使用Internet服務匯流排技術,因為非正式的訊息匯流排技術不能滿足該方法。
軟體架構,應用設計
作者認為,“應用根據面向服務的原則進行設計,會為S+S應用的採用或整合奠定一個堅實的基礎”,但這還不充分。向企業IT系列服務添加遠程服務還需要考慮很多重要的問題:
·遠程服務失敗時要實施一定的策略
·用補償事務代替原子事務
·使用非同步訊息傳遞
·服務發生變化時更新應用的消費服務
·測試有特定需求的S+S應用
·軟體架構,資訊設計
S+S會迫使組織採用一種新的方法進行資訊設計:
傳統上,公司專屬應用程式的重點是資料一致性、事務可靠性,還有不斷增加的輸送量。它們通常依賴於關係型資料模型和關係型資料管理系統,這些模型和系統遵循原子性、完整性、一致性和持久性(ACID)原則設計可靠的資料庫。S+S不同於此,它會促使組織去思考自己的資訊設計過程。
要將資料支援為服務範式
設計出來的服務和底層資料結構必須要能支援更多的事務量,或者必須能處理比往常更大的資料量。這必然會給架構設計和資料分區策略帶來變化。分區策略必須藉助功能分割或水平資料分割來支援底層資料庫的水平擴充。不過這些策略可能會影響效能的最佳化。這就解釋了為什麼一些高效能的系統正在遠離ACID可靠性,而是越來越偏向於基本可用(BasicallyAvailable)、柔性狀態(SoftState)和最終一致性(BASE),並開始解除邏輯分區和物理分區架構之間的耦合了。
基礎設施架構
作者在這部分立馬錶示,企業過去必須購買所有需要的計算基礎設施,包括伺服器、存放裝置、網路裝置和案頭。有時甚至要建立大樓和資料中心,來安置所有的裝置和相關人員。雲端運算(尤其是基礎設施即服務(IaaS)和虛擬化)為公司提供了新的機會,能將基礎設施的一些需求轉移到其它組織。
儘管IaaS帶來了好處,但企業架構師仍然要考慮可用性、伸縮性、安全性、可靠性和可管理性,權衡大量的設計因素。
安全
安全在過去的二十年中一直是企業的重要方面。自從互連網出現以來,總結出的安全教訓現在都仍然適用。關鍵的S+S安全要素有:
S+S安全涉及廣泛的主題,要提供身份及其授權,要允許內部系統和雲端服務之間的單點登入,要在傳輸和靜止狀態保護資料,還要增強部署在雲平台上的應用代碼,以防應用遭受惡意軟體的攻擊和滲透。
管理
在處理企業防火牆內的應用和服務的同時,IT管理者還需要考慮防火牆外的應用和服務,“不僅要從已部署的技術角度考慮,還要從IT角色和責任、操作程式及政策的角度出發,這些視角對已部署軟體和服務的使用和操作會產生影響”:
舉例來說,應用外包給SaaS供應商,現在維護這些應用的管理員和操作者並不是企業員工。在S+S的世界裡,傳統的IT角色和責任可能需要合并為單獨的服務提供者角色,該角色實際上承擔SLA中指定的責任。還應該明確確定依法強制執行責任的條款,以減少因服務供應商不能圓滿履行責任而產生的負面結果。同樣,解決使用者問題和技術問題的IT管理流程現在也該由服務供應商處理。對最小化服務中斷來說,建立明確的升級程式、將有效溝通渠道併入企業的終端使用者支援過程都是至關重要的。
操作
提到操作,作者們建議:
考慮外包IT操作角色和責任對業務的影響。商務持續性、責任、員工和客戶滿意度都是關鍵因素,這些因素必須通過確定明確的SLA和可靠的雲端服務供應商來解決。
企業應該在融合軟體和服務環境的IT操作中發揮積極作用。不過企業應該建立監控系統,以便發現外包服務中技術問題,而不是關注於執行細節。企業還應該建立操作過程,以確保服務供應商儘快解決了問題。
結論
在結論中,作者提出了組織涉及雲端運算的三種方式:
·消費雲——將應用和IT服務外包給第三方的雲供應商,比如微軟的BusinessProductivity線上套件、CRM線上和LiveMeeting服務。
·使用雲——使用雲中可用的平台和基礎設施服務,像WindowsAzure和SQLAzure。
·擁抱雲——成為雲端服務供應商。BizTalkServer企業服務匯流排(ESB)工具集對此有所協助,因為該工具集“能整合資料更新、編排通過雲端服務處理資訊交換的工作流程”。