ISV在SaaS轉型中面臨的技術挑戰
07-23
隨著互聯網的迅猛發展,把軟體作為一種服務,通過internet來提供給最終用戶正在逐漸成為軟體行業的發展潮流。 可以想見,在不久的將來,企業再也不需要花費巨大的成本和精力來維護複雜的IT系統,而是把這些都外包給專業的軟體公司,然後通過購買相應的服務來獲取IT支持。在這種高度的分工中,企業擺脫了IT技術的煩惱,專心於業務的發展,而專業的軟體公司則專註於企業業務需求的分析和相應的IT支持。 而對獨立軟體供應商(Independent Software Vendor,簡稱ISV)來說,SaaS模式意味著分發、部署軟體的方式發生了根本的變化,而為了應對這種變化,ISV必須在軟體架構上改變思路。 SaaS模式與傳統軟體最重要的區別就是互聯網和多租戶,因此ISV最大的挑戰也來自這兩個方面,ISV必須應對把軟體搬到互聯網上以及單實例、多租戶模式所產生的種種問題。 SaaS生態鏈 SaaS模式下,不僅企業和IT公司的分工更加明確,IT系統內部也會進行高度的分化。業界人士普遍認為在SaaS潮流下,未來的軟體服務業會形成一個更加緊密的生態鏈。在這個生態鏈上,各個角色分工高度明確,他們互相支持,互相依賴,緊密合作,共同向企業提供更加高質量的服務。 對於這個生態系統,微軟的描述如圖1所示。「最底層的『Classic』Hosters提供底層的物理支持,例如機房、設備、帶寬等;『SaaS』Hosters則解決賬戶的結算,對ISV進行管理等運營支撐問題;中間的ISV則面向最終用戶,提供相應的SaaS服務。」微軟開發平台合作部經理吳淏這樣解釋這個生態系統。作為微軟在中國研究SaaS技術的主要力量,吳淏所在的開發平台合作部一直在研究SaaS技術,並對微軟的SaaS業務合作者提供技術支持。 通過進一步的分工合作,平台運營商承擔起了軟體在線運營的一系列艱巨的任務,提供服務性能和可靠性的保證,解決帶寬、存儲、運營的基礎支撐,而這些都是高技術含量,高成本投入的。 而ISV則可以在現成的運營平台上進行架構,這樣就可以拋開那些面向互聯網、面向服務的一些基本問題(例如SLA的承諾,安全性和帶寬、伺服器等),專註於單純的應用開發和客戶需求的滿足。 「實際上,在SaaS模式下,ISV還可以細分為兩種角色,一種是專心做軟體開發,向其他集成商提供軟體和功能。另一種是做服務商,面向最終用戶,提供SaaS應用。」蘇州市軟體評測中心平台合作部經理陳鍊說道,他們的團隊從2006年開始承擔著微軟和蘇州軟體園合作的SaaS孵化器計劃。 在微軟描述的SaaS生態系統上,我們也可以看出,在面向最終用戶的中間層存在著兩種角色,一種是ISV,一種是集成商(Aggregators),集成商則把更多的精力放在對現有ISV提供的SaaS應用的集成上,通過哦集成形成新的服務。 ISV的技術挑戰 單實例、多租戶模型可以說是SaaS應用的本質特點,通過這樣的模型,供應商實現了低費用,規模效應的商業模式。但是這就要求供應商能夠承擔多租戶帶來的挑戰,一方面是多租戶同時使用時的承載,另一方面還必須滿足多租戶不同的個性化需求。 吳淏認為SaaS應用面臨的三個最重要的挑戰就是多租戶、可配置和可擴展。多租戶就是指要能支撐多用戶同時在線使用。 可配置是指當不同租戶使用同一個SaaS應用時,租戶可以根據自己的需求對此SaaS應用進行配置。通過在軟體中提供自定義的功能讓用戶自主設置,從而避免了ISV為不同客戶需求重新開發代碼。 「可擴展則指當用戶規模快速增長時,或者當用戶的需求發生改變時,能夠通過對SaaS軟體進行簡單的擴展輕鬆應對。」陳鍊解釋道。 根據這三個方面的發展程度,微軟對SaaS應用分出了四個成熟度級別,如圖2所示。 第一個成熟度級別就相當於原來的ASP模式,每個租戶一個實例,每個實例都根據租戶的特定需求進行開發,彼此不同並且互相獨立。從技術角度來說,就是每個客戶使用一個資料庫、一個Web站點或者虛擬目錄。資料庫中的數據結構和應用的代碼可能都根據客戶需求做過定製化修改。 第二個成熟度級別也是每個租戶一個實例,但是這些實例都是基於一套相同的代碼和數據結構,不需要根據每個用戶需求進行重新開發,只不過在軟體設計的時候已經考慮了可配置性,所以針對不同需求的客戶,可以採用靈活的配置來響應。但是這些實例彼此也是相互獨立的,各自為用戶提供服務。從技術角度來說,所有客戶都是使用一套安裝包,資料庫結構和一樣。 第三個成熟度級別則用一套實例來滿足所有租戶的需求,因此除了可配置之外,還增加了多租戶特性,使得一套實例能夠承擔多租戶同時在線使用,而所有客戶的UI和應用數據是通過授權和安全策略等方式進行隔離。 第四個成熟度級別則在實例和用戶之間加了一個「租戶導入均衡器」,對於租戶來說,他看到的仍是一套實例,但是通過這個均衡器,這套實例所能提供的性能就更高了。例如不同的租戶可能使用人數不同,有的租戶使用者只有幾人,而有的租戶使用者有上千人,這時候向不同租戶提供的服務就要考慮到承載能力的區別問題,這些服務也必然彼此不同。通過這個均衡器就能靈活應對這些問題。 「當前大多數SaaS應用實際上都仍處在第三個級別上,微軟中國、蘇州SaaS孵化器和新宇軟體合作開發出的SaaS應用Crab實際上也是在這個級別上的。微軟正在研究第四個成熟級別的具體實現方式,不過在業界,現在都還沒有成型的解決方案。」 吳淏說道。 除了上面的三個挑戰外,ISV在向SaaS方向轉型時還必須考慮數據安全性、應用狀態無關性等方面。在數據安全性上不僅要考慮網路傳輸的加密,還要考慮數據存儲的加密。而這都是ISV以前從未遇到過的。 從第三個成熟度級別開始所採用的單實例、多租戶模型真正反應了SaaS應用的本質特性。在這種模式下對於後台的數據存儲也存在著三種方式,分別是:獨立資料庫;共享資料庫,隔離數據架構;共享資料庫,共享數據架構。這三種存儲方式帶來的影響表現在是數據的安全和獨立,可擴展的數據模型,可縮放的分區數據。 獨立資料庫方式是每個租戶對應一個單獨的資料庫,它的優勢是實現簡單、易數據恢復、更加安全隔離,缺點則是硬體和軟體的投入相對較高,這種情況適合與對數據的安全和獨立要求較高的大客戶,如銀行、醫療系統。 共享資料庫,隔離數據架構就是所有租戶採用一套資料庫,但是數據分別存儲在不同的數據表集中,這樣每個租戶就可以設計不同的數據模型。它的優勢在於容易進行數據模型擴展,提供中等程度的安全性,最大化利用每台資料庫伺服器的租賃性能。缺點則是數據恢復困難。這種情況比較適合對數據模型有獨特需求,安全要求中等的客戶。 共享資料庫,共享數據架構就是所有租戶使用相同的數據表,並存放在同一個資料庫中。它的優勢是管理和備份的成本低,能夠最大化利用每台資料庫伺服器的性能。缺點則是數據還原困難,難於進行數據模型擴展,另外所有租戶的數據放在一個表中,數據量太大,索引、查詢、更新更加複雜。
推薦閱讀:
圖一:SaaS生態鏈
圖2 SaaS應用的四個成熟度級別
推薦閱讀:
※【經典翻拍】張一山挑戰史上最丑韋小寶?七位娘子讓網友操碎了心.......
※越老越堅固 挑戰世界上最長的弔橋
※別用這八大陋習挑戰老婆底限
※揭開《超級女聲》運營之謎 彙集12萬女生挑戰賽
※20年磨一劍,新任央行行長易綱的新使命和新挑戰……