SaaS(軟件即服務(wù))平臺(tái)架構(gòu)設(shè)計(jì)指南

2021-01-27    分類: 網(wǎng)站建設(shè)

架構(gòu)師必備技能指南:saas(軟件即服務(wù))架構(gòu)設(shè)計(jì)

——saas(軟件即服務(wù))平臺(tái)架構(gòu)設(shè)計(jì)指南

1、介紹

從計(jì)算機(jī)誕生開始,就伴隨著計(jì)算機(jī)應(yīng)用程序的演變。簡短的回顧歷史,我們可以清楚的看到應(yīng)用程序發(fā)生的巨大變化。上世紀(jì)70年代中期,隨著個(gè)人PC機(jī)的爆炸式增長以及程序員的崛起,讓計(jì)算機(jī)的計(jì)算能力得到了大跨越的提升,個(gè)人PC機(jī)上可以運(yùn)行非常復(fù)雜的應(yīng)用程序。

進(jìn)入上世紀(jì)80年代,隨著Bulletin Board System(簡稱:BBS)電子公告板系統(tǒng)的興起,它可以為廣大PC機(jī)用戶提供基本的在線服務(wù),如在線聊天、電子郵件、消息發(fā)送和文件下載。由于受到那個(gè)時(shí)代計(jì)算機(jī)網(wǎng)絡(luò)傳輸速度的限制,在線服務(wù)的響應(yīng)速度慢,交互體驗(yàn)差是大的通病。

進(jìn)入90年代中后期,隨著萬維網(wǎng)的出現(xiàn),計(jì)算機(jī)的計(jì)算能開始進(jìn)入快速提升階段,加之網(wǎng)絡(luò)基礎(chǔ)設(shè)施的持續(xù)完善,計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)也隨之發(fā)展起來,這讓W(xué)eb網(wǎng)站可以提供功能多元化和更為復(fù)雜的在線服務(wù),直到今天,我們所看到的互聯(lián)網(wǎng)(或云)開發(fā)的在線服務(wù)應(yīng)用程序。

在這段計(jì)算機(jī)技術(shù)快速成長的時(shí)間里,計(jì)算機(jī)軟件到底發(fā)生了哪些變化?從歷史的發(fā)展中,我們可以看到,應(yīng)用程序本身沒有發(fā)生本質(zhì)的變化(程序=數(shù)據(jù)結(jié)構(gòu)+算法),變化的是軟件的供需方式發(fā)生了改變?,F(xiàn)在,應(yīng)用程序消費(fèi)者不需要再在他們的PC機(jī)上下載和安裝特定的應(yīng)用程序,即可獲得軟件所提供的計(jì)算服務(wù)。在云計(jì)算技術(shù)的支持下,消費(fèi)者(企業(yè)或個(gè)人)只需要使用Web工具(瀏覽器)訪問并登錄軟件提供商的Web系統(tǒng),通過簡單的配置,就可以獲得自己所需應(yīng)用程序服務(wù)。這種通過網(wǎng)絡(luò)即可使用軟件的服務(wù),即使saas(軟件即服務(wù))。


圖 1-1 2015中國saas生態(tài)

在本篇文章中,我們將著重介紹saas架構(gòu)設(shè)計(jì),并圍繞WHAT(是什么?)、WHY(為什么?)、WHERE(在哪里?)和HOW(怎么樣?)這四個(gè)問題,對(duì)以下的幾點(diǎn)進(jìn)行闡述:


圖 1-2 文章結(jié)構(gòu)

  • 1、什么是saas平臺(tái)?
  • 2、為什么需要使用saas平臺(tái)架構(gòu)?
  • 3、saas平臺(tái)主要的特性和優(yōu)勢有哪些?
  • 4、saas平臺(tái)適合在什么領(lǐng)域進(jìn)行實(shí)施?
  • 5、saas平臺(tái)有哪些先天性的缺陷?
  • 6、saas平臺(tái)有哪些核心的組件?
  • 7、實(shí)施saas架構(gòu)設(shè)計(jì)時(shí)的注意事項(xiàng)有哪些?

2、什么是saas平臺(tái)?


圖 2-1 saas組成結(jié)構(gòu)

在你決定實(shí)施saas品臺(tái)架構(gòu)設(shè)計(jì)前,你有必要先了解saas平臺(tái)是什么。從宏觀的角度來看,saas是一種軟件應(yīng)用程序交付方式,軟件提供商集中化托管一個(gè)或多個(gè)軟件應(yīng)用程序,并通過互聯(lián)網(wǎng)向租戶體用這些軟件應(yīng)用程序。從分類上看,saas(軟件即服務(wù))也是云計(jì)算重要的一部分。目前國內(nèi)主流的云服務(wù)提供商如阿里云、百度云、騰訊云等,為廣大用戶提供了不同業(yè)務(wù)需求的云服務(wù),它們大致可以分為以下幾類:

  • 1、基礎(chǔ)設(shè)施即服務(wù):如CPU、Network、Disk和Memory等
  • 2、平臺(tái)即服務(wù):如阿里云服務(wù)器和云數(shù)據(jù)庫等
  • 3、軟件即服務(wù):阿里短信、阿里郵箱
  • 4、數(shù)據(jù)即服務(wù):如阿里云對(duì)象存儲(chǔ),七牛云存儲(chǔ)等
  • 5、其他軟件服務(wù):機(jī)器學(xué)習(xí)、人工智能等

saas應(yīng)用程序的任何更新或者修復(fù)漏洞操作都是由軟件提供商負(fù)責(zé)實(shí)施和處理的,由于租戶是通過互聯(lián)網(wǎng)獲取軟件服務(wù),所以租戶端無需下載任何的升級(jí)包或者修復(fù)補(bǔ)丁,是一種開箱即獲取最新軟件產(chǎn)品的服務(wù)方式。

通過對(duì)什么是saas的介紹,接下來,我們了解一下選擇saas作為軟件架構(gòu)來設(shè)計(jì)產(chǎn)品的一些理由。

3、為什么選擇saas?

我們將從不同的角度來闡述幾個(gè)為什么選擇saas的理由。透過對(duì)這些因素的分析,為你是否需要將自己的軟件saas化提供一定的參考依據(jù)。

3.1、消費(fèi)者角度

獲取軟件服務(wù)的方式足夠簡單,saas也許是迄今為止使用軟件最簡單的方式之一,租戶只需要?jiǎng)觿?dòng)鼠標(biāo)和鍵盤,即可在幾小時(shí)甚至幾分鐘內(nèi)獲得一個(gè)大型的軟件服務(wù)。相比于傳統(tǒng)使用軟件的方式,租戶省去了研發(fā)、部署、運(yùn)維等一系列繁復(fù)的過程,且獲得軟件的時(shí)間和費(fèi)用成本都大幅度降低。

3.2、商業(yè)角度

saas可以體用跨地域、跨平臺(tái)的軟件服務(wù)。與此同時(shí),軟件服務(wù)商可以統(tǒng)一對(duì)軟件進(jìn)行版本管理,這將帶來以下幾點(diǎn)好處(包括但不限于):

  • 1、縮短產(chǎn)品上線時(shí)間:多端適配,統(tǒng)一版本,統(tǒng)一更新
  • 2、降低維護(hù)成本:不需要同時(shí)維護(hù)多個(gè)版本的軟件實(shí)例,運(yùn)維壓力減小
  • 3、容易升級(jí):由于版本得到有效控制,一次升級(jí),即可覆蓋所有租戶端

4、saas的特性和優(yōu)勢

我們將saas應(yīng)用程序與傳統(tǒng)的桌面應(yīng)用程序做一個(gè)水平的對(duì)比,部署一個(gè)saas產(chǎn)品將可以獲得以下的幾點(diǎn)優(yōu)勢。

4.1、簡單

saas化的產(chǎn)品通過互聯(lián)網(wǎng)向租戶提供軟件服務(wù),隨著Web技術(shù)(如jQuery、Node.js)的進(jìn)步,Web頁面的交互體驗(yàn)度大幅度提升,交互更流暢、更人性化。與傳統(tǒng)的桌面應(yīng)用程序的人機(jī)交互效果相差無幾。

4.2、經(jīng)濟(jì)實(shí)惠

saas化產(chǎn)品可以為租戶提供彈性的付費(fèi)方案,如按日、按月、按年、按使用人數(shù)或者按使用量進(jìn)行計(jì)費(fèi),它將給租戶提供更經(jīng)濟(jì)的使用軟件的財(cái)務(wù)預(yù)算表。

4.3、安全

使用saas產(chǎn)品無需擔(dān)心數(shù)據(jù)安全問題,這好比將錢存入銀行一樣安全。相較于企業(yè)內(nèi)部部署的軟件系統(tǒng)而言,saas產(chǎn)品具備更高的安全保障能力,因?yàn)檐浖峁┥叹哂懈嘬浖踩雷o(hù)的技術(shù)資源、人力資源和財(cái)政資源。

4.4、兼容性

與傳統(tǒng)軟件相比、saas軟件的兼容性更好,它沒有傳統(tǒng)軟件的多本版維護(hù)問題和操作系統(tǒng)兼容問題。在saas軟件中,租戶用戶在使用軟件的過程中,幾乎上感覺不到軟件發(fā)生了改變。當(dāng)租戶用戶登錄到系統(tǒng)上時(shí),就已經(jīng)獲得了最新版本的軟件。

5、saas軟件的適用范圍

saas產(chǎn)品具有廣泛的適應(yīng)范圍,特別是與其他云產(chǎn)品(如IaaS(基礎(chǔ)設(shè)施即服務(wù))和PaaS(平臺(tái)即服務(wù)))配合使用時(shí)這種能力表現(xiàn)尤為突出,例如阿里云之類的云計(jì)算技術(shù)允許你配置可托管的Web站點(diǎn)、數(shù)據(jù)庫服務(wù)器等。你只需要打開瀏覽器并登錄到阿里云控制臺(tái),通過操作對(duì)應(yīng)的控制面板,即可獲得相關(guān)的軟件服務(wù)。

從理論上講,saas可以將任何的軟件saas,下面列舉一些通用的分類供大家參考:

  • 1、Office在線辦公類saas產(chǎn)品
  • 2、電子郵件和即時(shí)消息類saas產(chǎn)品
  • 3、社交媒體類saas產(chǎn)品
  • 4、第三方API類saas產(chǎn)品
  • 5、安全和訪問控制類saas產(chǎn)品
  • 6、機(jī)器學(xué)習(xí)類saas產(chǎn)品
  • 7、人工智能類saas產(chǎn)品
  • 8、地理位置服務(wù)類saas產(chǎn)品
  • 9、數(shù)據(jù)流和數(shù)據(jù)檢索類saas產(chǎn)品

6、saas產(chǎn)品的天生缺陷


圖 6-1 saas產(chǎn)品的缺點(diǎn)

從上圖我們可以直觀的看到,saas產(chǎn)品與生俱來的幾個(gè)缺陷,接下來我們將逐一進(jìn)行描述。

6.1、軟件控制權(quán)

與企業(yè)內(nèi)部部署的軟件不同,由于saas軟件被擊中托管在服務(wù)提供商的Web服務(wù)器中,所以租戶無法控制所有的軟件應(yīng)用程序,saas化的軟件比企業(yè)自行部署的軟件獲得的控制權(quán)更少,租戶可操作的自定義控制權(quán)極度有限。

6.2、消費(fèi)者基數(shù)小

由于saas軟件是將一套應(yīng)用程序共享給一個(gè)或者多個(gè)租戶共同使用,這種共享的消費(fèi)方式還未被大多數(shù)的消費(fèi)者所接受。同時(shí),受制于市場環(huán)境的影響,目前還有大多數(shù)的軟件還未saas化。

6.3、性能瓶頸

共享應(yīng)用程序必然會(huì)帶來服務(wù)器性能的下降、如計(jì)算速度、網(wǎng)絡(luò)資源、I/O讀寫等都將面臨嚴(yán)峻的考驗(yàn)。在性能方面,企業(yè)內(nèi)部部署的“獨(dú)享模式”的應(yīng)用程序比saas軟件的“共享模式”略勝一籌。

6.4、安全問題

當(dāng)租戶在選擇一款saas產(chǎn)品時(shí),產(chǎn)品的安全性將會(huì)被放置在第一位進(jìn)行考慮。如數(shù)據(jù)的隔離、敏感數(shù)據(jù)的加密、數(shù)據(jù)訪問權(quán)限控制、個(gè)人隱私等問題。在2018年5月25日,GDPR(General Data Protection Regulation)《通用數(shù)據(jù)保護(hù)條例》出現(xiàn)之后,越來越多的人開始重視數(shù)據(jù)安全問題。如何大程度的打消租戶的這一顧慮,需要服務(wù)提供商加強(qiáng)對(duì)自身信譽(yù)度的提升,以贏得租戶的信賴。

7、saas產(chǎn)品的核心組件

不同類型的saas產(chǎn)品,由于要面對(duì)不同的用戶愿景,可能在功能和業(yè)務(wù)上會(huì)有所不同,但任何一個(gè)saas產(chǎn)品,都具備以下幾個(gè)共同的核心組件。


圖 7-1 saas 核心組件

7.1、安全組件

在saas產(chǎn)品中,系統(tǒng)安全永遠(yuǎn)是第一位需要考慮的事情,如何保障租戶數(shù)據(jù)的安全,是你首要的事情。這如同銀行選需要保障儲(chǔ)戶資金安全一樣。安全組件就是統(tǒng)一的對(duì)saas產(chǎn)品進(jìn)行安全防護(hù),保障系統(tǒng)數(shù)據(jù)安全。

7.2、數(shù)據(jù)隔離組件

安全組件解決了用戶數(shù)據(jù)安全可靠的問題,但數(shù)據(jù)往往還需要解決隱私問題,各企業(yè)之間的數(shù)據(jù)必須相互不可見,即相互隔離。在saas產(chǎn)品中,如何識(shí)別、區(qū)分、隔離個(gè)租戶的數(shù)據(jù)時(shí)你在實(shí)施saas平臺(tái)架構(gòu)設(shè)計(jì)時(shí)需要考慮的第二個(gè)問題。

7.3、可配置組件

盡管saas產(chǎn)品在設(shè)計(jì)之初就考慮了大多數(shù)通用的功能,讓租戶開箱即用,但任然有為數(shù)不少的租戶需要定制服務(wù)自身業(yè)務(wù)需求的配置項(xiàng),如UI布局、主題、標(biāo)識(shí)(Logo)等信息。正因?yàn)闊o法抽象出一個(gè)完全通用的應(yīng)用程序,所以在saas產(chǎn)品中,你需要提供一個(gè)可用于自定義配置的組件。

7.4、可擴(kuò)展組件

隨著saas產(chǎn)品業(yè)務(wù)和租戶數(shù)量的增長,原有的服務(wù)器配置將無法繼續(xù)滿足新的需求,系統(tǒng)性能將會(huì)與業(yè)務(wù)量和用戶量成反比。此時(shí),saas產(chǎn)品應(yīng)該具備水平擴(kuò)展的能力。如通過網(wǎng)絡(luò)負(fù)載均衡其和容器技術(shù),在多個(gè)服務(wù)器上部署多個(gè)軟件運(yùn)行示例并提供相同的軟件服務(wù),以此實(shí)現(xiàn)水平擴(kuò)展saas產(chǎn)品的整體服務(wù)性能。為了實(shí)現(xiàn)可擴(kuò)展能力,就需要saas展示層的代碼與業(yè)務(wù)邏輯部分的代碼進(jìn)行分離,兩者獨(dú)立部署。例如使用VUE+微服務(wù)構(gòu)建前后端分離且可水平進(jìn)行擴(kuò)展的分布式saas應(yīng)用產(chǎn)品。對(duì)于可擴(kuò)展,還有另外一種方式,即垂直擴(kuò)展,其做法比較簡單,也比較粗暴:通過增加單臺(tái)服務(wù)器的配置,如購買性能更好的CUP、存儲(chǔ)更大的內(nèi)存條、增大帶寬等措施,讓服務(wù)器能夠處理更多的用戶請(qǐng)求。但此做法對(duì)于提升產(chǎn)品性能沒有質(zhì)的改變,且成本很高。

7.5、0停機(jī)時(shí)間升級(jí)產(chǎn)品

以往的軟件在升級(jí)或者修復(fù)Bug是,都需要將運(yùn)行的程序脫機(jī)一段時(shí)間,等待升級(jí)或修復(fù)工作完成后,再重新啟動(dòng)應(yīng)用程序。而saas產(chǎn)品則需要全天候保障服務(wù)的可用性。這就需要你考慮如何實(shí)現(xiàn)在不重啟原有應(yīng)用程序的情況下,完成應(yīng)用程序的升級(jí)修復(fù)工作。

7.6、多租戶組件

要將原有產(chǎn)品saas化,就必須提供多租戶組件,多租戶組件是衡量一個(gè)應(yīng)用程序是否具備saas服務(wù)能力的重要指標(biāo)之一。saas產(chǎn)品需要同時(shí)容納多個(gè)租戶的數(shù)據(jù),同時(shí)還需要保證各租戶之間的數(shù)據(jù)不會(huì)相互干擾,保證租戶中的用戶能夠按期望索引到正確的數(shù)據(jù),多租戶組件是你必須要解決的一個(gè)問題。其余的組件都將圍繞此組件展開各自的業(yè)務(wù)。

總結(jié)

本文將軟件應(yīng)用程序的發(fā)展歷程作為切入點(diǎn),并圍繞WHAT(是什么?)、WHY(為什么?)、WHERE(在哪些領(lǐng)域?qū)嵤?和HOW(怎么樣?)這四個(gè)問題對(duì)saas展開了介紹。文中詳細(xì)的闡述了基于saas架構(gòu)的軟件設(shè)計(jì)需要注意的問題,并分析了saas產(chǎn)品的特性、有點(diǎn)、缺點(diǎn)。最后還介紹了基于saas架構(gòu)的軟件產(chǎn)品應(yīng)該具備的幾個(gè)核心組件以及他們各自的作用。希望本次能夠讓你對(duì)saas平臺(tái)架構(gòu)有一個(gè)全面的了解,并且在你準(zhǔn)備實(shí)施saas平臺(tái)架構(gòu)設(shè)計(jì)前能夠提供一些價(jià)值的參考信息。

新聞標(biāo)題:SaaS(軟件即服務(wù))平臺(tái)架構(gòu)設(shè)計(jì)指南
轉(zhuǎn)載注明:http://www.bm7419.com/news/97752.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名搜索引擎優(yōu)化、企業(yè)網(wǎng)站制作做網(wǎng)站、定制開發(fā)云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站