前言:在SaaS模型中,應(yīng)用程序是通過網(wǎng)絡(luò)向用戶提供服務(wù)。用戶只需要通過網(wǎng)絡(luò)訪問應(yīng)用程序便可完成自身的業(yè)務(wù)活動,而不需要安裝和維護軟件。任何的SaaS模型的實施,都應(yīng)具備以下三個特征:
多租戶架構(gòu):SaaS模型設(shè)定了多個用戶共享一套應(yīng)用程序源碼,此源碼被服務(wù)提供商統(tǒng)一托管
自定義可配置:不同用戶共享一套應(yīng)用程序源碼,這就要求SaaS模型須具備一定的自定義和可配置功能,以便可以管理和維護用戶的自定義業(yè)務(wù)
可訪問:SaaS模型依賴于網(wǎng)絡(luò)為用戶提供服務(wù),所以必須確保在任何的時間點都能為用戶提供數(shù)據(jù)訪問服務(wù)。
軟件即服務(wù)
為了能夠打造一款成功的SaaS軟件,在實施SaaS模型的過程中,應(yīng)該遵循以下的步驟:
1. 提前了解業(yè)務(wù)
? 在考慮技術(shù)和架構(gòu)的問題之前,清楚的了解業(yè)務(wù)非常重要。沒有了解業(yè)務(wù),任何應(yīng)用程序的設(shè)計和開發(fā)工作都無從談起。為了得到更好的SaaS模型實施效果,必須在很早的階段就開展需求調(diào)研工作,明確軟件的業(yè)務(wù)和設(shè)計目標(biāo)。調(diào)研的范圍應(yīng)該是充足的、廣泛的,以便更好的識別出SaaS模型的業(yè)務(wù)邊界和核心內(nèi)容。在調(diào)研時,應(yīng)該包括以下的內(nèi)容:
- 采用什么樣的架構(gòu)進行設(shè)計?
- 用戶類型和用戶規(guī)模分別是什么?
- 如何處理應(yīng)用程序的可擴展性、安全性和穩(wěn)定性這三個問題?
? 業(yè)務(wù)先于設(shè)計和開發(fā),在非常早的階段便開展調(diào)研和需求分析工作非常重要,它有助于評估項目的成本、周期和風(fēng)險。除此之外,還應(yīng)該重視現(xiàn)有系統(tǒng)在改造工程中所面臨的挑戰(zhàn)。
2.選擇能勝任的團隊
? 物盡其用,人盡其才,無論技術(shù)和架構(gòu)如何,選擇適合SaaS模型的技術(shù)團隊尤為重要。在實施SaaS模型之前,決策者應(yīng)該選擇一支由經(jīng)驗豐富的開發(fā)人員組成的團隊,他們必須對SaaS模型的概念有深入的了解,且該團隊?wèi)?yīng)該擁有多種專業(yè)技術(shù)的人員,同時對SaaS行業(yè)中應(yīng)該遵循的最佳實踐有充分的了解。
3.設(shè)計可擴展的基礎(chǔ)架構(gòu)
一旦技術(shù)團隊了解完業(yè)務(wù)需求,下一步的重點就是構(gòu)建可擴展的基礎(chǔ)架構(gòu)組件:
- 數(shù)據(jù)中心
- 網(wǎng)絡(luò)設(shè)施:網(wǎng)絡(luò)安全(如HTTPS加密、認證和鑒權(quán))
- 硬件設(shè)施:操作系統(tǒng)和存儲
- 數(shù)據(jù)備份和系統(tǒng)監(jiān)控工具
? 除了上述之外,內(nèi)部的評審工作也應(yīng)該同步進行,以便在構(gòu)建基礎(chǔ)架構(gòu)是評估應(yīng)用系統(tǒng)的總體成本,在最終決定實施SaaS模型前,還需考慮一下因素(成本驅(qū)動):
- SaaS軟件的成熟度模型
- 可伸縮性和可用性
- 客戶端兼容性
- 數(shù)據(jù)備份和恢復(fù)
- 網(wǎng)絡(luò)帶寬和存儲空間
- 安全管理(加密級別和安全證書)
4.網(wǎng)絡(luò)帶寬和應(yīng)用服務(wù)器
? 這點非常重要,為了達到良好的用戶體驗效果,用戶規(guī)模和類型決定了帶寬的大小和應(yīng)用服務(wù)的數(shù)量。因此需要綜合考慮SaaS模型的帶寬大小和應(yīng)用服務(wù)器的數(shù)量,合適的搭配能夠消除數(shù)據(jù)中心的網(wǎng)絡(luò)瓶頸問題。如果不自行構(gòu)建數(shù)據(jù)中心,選擇外包托管(如阿里云,騰訊云,亞馬遜)方式,則應(yīng)該考慮以下因素:
- 數(shù)據(jù)中心是否高可用(7x24x365)?
- 是否具備監(jiān)控和災(zāi)備能力(容災(zāi)和數(shù)據(jù)恢復(fù))?
- 是否具備數(shù)據(jù)安全防護能力(防攻擊,防破解)?
- 是否具備可測試能力(完備的API測試接口,沙盒測試環(huán)境,SDK開發(fā)包)?
5.構(gòu)建基礎(chǔ)架構(gòu)組件
? 基礎(chǔ)設(shè)施設(shè)計完成后,我們須準(zhǔn)備可靠的、穩(wěn)定的、經(jīng)過實際驗證的功能組件,此過程對于確保SaaS模型的高可用性能指標(biāo)尤為重要。在評估這些硬件指標(biāo)時,我們還需要確保其能夠在項目交付日期范圍內(nèi)交付所有的硬件組件并確保調(diào)試正常。
6.向基礎(chǔ)設(shè)施中持續(xù)部署SaaS應(yīng)用
? 一旦基礎(chǔ)設(shè)施可用,開發(fā)團隊就應(yīng)該持續(xù)構(gòu)建和部署SaaS應(yīng)用。此時應(yīng)對服務(wù)器進行統(tǒng)一的管理和配置,根據(jù)不同的業(yè)務(wù)需要安裝對應(yīng)的操作系統(tǒng),分配指定的IP,設(shè)置用戶訪問策略以及配置防火墻等。
持續(xù)部署
7.容災(zāi)和數(shù)據(jù)恢復(fù)
? 現(xiàn)在,SaaS應(yīng)用程序已經(jīng)準(zhǔn)備就緒,下一步應(yīng)該考慮的問題是如何容災(zāi)和數(shù)據(jù)恢復(fù)的問題。面對容災(zāi)和數(shù)據(jù)恢復(fù),需要考慮一下幾點:
- 如何應(yīng)對災(zāi)難的發(fā)生(不可抗拒因素不在考慮范圍)
- 如何縮小受災(zāi)范圍以及如何減小受災(zāi)帶來的影響
- 如何在災(zāi)難發(fā)生時,應(yīng)用程序還可以局部可用
- 如何在有限的時間范圍內(nèi)完成數(shù)據(jù)恢復(fù)
數(shù)據(jù)備份
8.系統(tǒng)監(jiān)控
? 系統(tǒng)監(jiān)控子系統(tǒng)對于SaaS模型特別重要,好的應(yīng)用監(jiān)控子系統(tǒng)有助于更早的發(fā)現(xiàn)問題,及時的避免災(zāi)難的發(fā)生。在SaaS模型中,監(jiān)控子系統(tǒng)應(yīng)該對以下的參數(shù)進行監(jiān)控:
- 內(nèi)存和CPU的使用率
- 磁盤的I/O讀寫速率
- 操作系統(tǒng)和應(yīng)用程序日志
- 其他應(yīng)用組件(數(shù)據(jù)庫、Web容器、TCP等)性能參數(shù)
系統(tǒng)監(jiān)控
9.建立客服中心
? 一旦SaaS應(yīng)用成功投放市場,它就需要有一個客戶支持服務(wù)中心(面向業(yè)務(wù)或者技術(shù))。客戶支持服務(wù)中心應(yīng)該具備適當(dāng)?shù)钠睋?jù)處理和在線溝通能力,一個優(yōu)秀的SaaS模型,客戶支持服務(wù)是必不可少的,它有助于提升SaaS軟件的服務(wù)質(zhì)量。客戶支持服中心應(yīng)當(dāng)適時地提供郵件、短信、電話、票據(jù)等服務(wù)能力,如果SaaS模型中有需要技術(shù)團隊繼續(xù)關(guān)注的問題,還應(yīng)該提供工單處理服務(wù),以便在發(fā)生技術(shù)故障時,能夠以最短的時間將故障信息以郵件或者短信的形式發(fā)送給相關(guān)的技術(shù)人員。
10.SaaS成熟度模型
? 在實施SaaS模型時,選擇何種等級的成熟度模型,直接決定了你需要為此付出的資金成本,同時也影響著軟件的交付周期和開發(fā)風(fēng)險。因此,在面對此問題時,可以先考慮第二級或者第三級SaaS軟件成熟度模型,然后根據(jù)業(yè)務(wù)量和用戶規(guī)模,逐步滿足高性能、可配置、自定義等更高級別成熟度模型的要求,以降低實施SaaS模型的風(fēng)險。SaaS軟件成熟度模型評估對照表如下圖所示:
SaaS軟件成熟度對比
11.規(guī)范化的文檔
? 在完成上述10個關(guān)鍵步驟后,需對整個SaaS模型做出詳細的記錄。如需求文檔,設(shè)計文檔,組件文檔以及接口文檔等。這些文檔將幫助運維人員在運維過程中快速定位系統(tǒng)故障。如果SaaS模型在后期有任何的修改和升級操作,這些文檔也可以幫助工作人員了解SaaS模型。