“軟件+服務”(S+S)思路:架構先行

來自微軟的八名架構師撰寫了設計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解決方案的難易程度。

軟件架構,集成設計

關於軟件集成,作者先提出了一個假設——“通過數據集成、功能集成、展示集成等各種技術”,大多數企業應用都跟其它應用有聯繫。

他們說在緊耦合系統中,組織要麼在子系統中圍繞功能子集建立粗粒度的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)工具集對此有所幫助,因爲該工具集“能集成數據更新、編排通過雲服務處理信息交換的工作流”。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章