軟件可以即要即用?企業級軟件訂閲服務 (SaaS) 的開發 (1)

閱讀時間約 9 分鐘

系統架構:Single tenancy (單一租戶模式) 和 Multi tenancy (多租戶模式)

Software as a Service (SaaS)

自從 2006 年 Amazon 推出自家的雲端運算服務 AWS 開始,雲端運算徹底改變了傳統伺服器架構的使用方法。由每一次都要購買或租借一臺伺服器主機,變成想用多少伺服器資源都可以即時得到,並採納按照實際使用時間來計算收費的資源訂閱 (Subscription) 模式,大大提升架構系統的靈活度和資源分配效率。這種伺服器架構上的革命,造就了 Software as a Service (SaaS) 的興起。
在這種交付模式(即 SaaS)中雲端集中式代管軟件及其相關的資料,軟件僅需透過網際網路,而不須透過安裝即可使用。用戶通常使用精簡用戶端經由一個網頁瀏覽器來存取軟件即服務。-- 維基百科

雲端運算經歷了十餘年的發展,隨著各大科技巨頭如 Microsoft AzureGoogle Cloud 紛紛加入戰團,今時今日雲端運算服務已經發展得非常成熟。雲端運算能提供到一些普通伺服器不容易做到的功能,如專門處理大數據的資料庫 (Big data Database),以及針對地域問題的災難恢復 (Disaster recovery)。這些服務提供極高的彈性,方便了不少軟件開發商去開發新的軟件,而訂閱收費模式亦大大降低了初創企業入場的門檻。
( https://www.cio.com/article/2991767/10-tips-for-running-a-profitable-subscription-based-business.html)
由於雲端運算採取了訂閲收費,軟件的收費模式亦跟隨著由一次性 (one-off) 收費趨向以訂閲收費的形式來供客戶選擇。這個顯然是整個軟件業界的發展方向,例如 Microsoft 和 Adobe, 都將旗下歷史悠久的 Microsoft Office 和 Adobe Photo 分別轉為 Office 365Creative Cloud 這種訂閲式收費軟件。 新的訂閲模式的娛樂服務如 Netflix / Disney+ / Apple TV + 也不斷興起,而Google 最近發佈的 Stadia 更是企圖用訂閲收費的模式,來衝擊整個遊戲業界。
Every customer interaction is a marketing opportunity. If you go above and beyond on the customer service side, people are much more likely to recommend you. — — Stewart Butterfield, co-founder of Slack

雖然說軟件訂閲是一個大趨勢,但如何去建立一個成功的系統,就需要相當多軟件工程上的學問。和對普羅大衆的軟件不同,企業對軟件的要求會更加嚴格,因爲整個服務會影響到他們自身的日常商業運作,所以在建立這種系統時,需要注意的項目就比平時更多。今後我會在這裡和大家由以下的方向出發,去探討怎樣去建立一個穩健的軟件訂閲服務。
  1. 系統架構 (System architecture)
  2. 可擴展性 (Scalability)
  3. 高可用性 (High availability)
  4. 安全性 (Security)
  5. 監察與維護 (Monitoring and Maintenance)
  6. 持續發展 (Continuous development)
那麼,讓我首先講解一下系統架構所需要留意的事項。
系統架構 (System architecture)
建立軟件系統的第一步是設計好適合的系統架構,根據不同的商業需求 (Business Requirement) 所設計出的系統架構也會不同。但歸納起來,訂閲服務的系統架構的可以分爲兩大類:單一租戶模式 (Single tenancy) 多租戶模式 (Multi-tenancy)
Single tenancy

單一租戶模式 (Single tenancy)


單一租戶模式 是為各個客戶設立一套獨立的軟件系統,他們會有獨立的數據庫、服務器、文件存儲空間等等。

安全且穩定: 絕大部分企業都會重視資料的安全和保密。單一租戶模式的好處在於每個客戶都有完全獨立的系統,不會有用戶之間資料發生衝突的情況發生,也不會因爲其他客戶的使用量增加而影響到自身的系統。單一租戶對於企業來説會是一個極具說服力的方案。

有彈性及易於管理:所有數據庫備份、系統還原的工作,或者其他的定制服務,單一租戶模式都能夠提供給予客戶。系統也能夠根據客戶的要求更改域名,或者安裝在客戶指定的雲端服務上面。而因為每個服務器都是獨立運作的,用戶可以選擇在不影響業務的時間帶,來進行系統更新。

單一租戶模式是一個直觀的方案,和傳統的系統分別其實不大,只是將系統由傳統的數據中心轉移到雲端服務之上,而雲端服務的成本也就轉化為系統的訂閲收費。

Multi-tenancy

租戶模式 (Multi-tenancy)


和單一租戶模式不同,多租戶模式是以共用系統資源爲主,多個用戶會同時使用同一套系統

經濟實惠:在商業角度來看,價錢是相當重要的考慮因素,多租戶模式就能通過分享各個用戶的用量,來分攤成本。這就能將現有的資源得到充分利用,以避免服務器資源上的浪費。按照不同服務的性質而有差別,但採取多租戶模式的話,往往就能夠將伺服器的成本降至一成以下

迅速提供服務:訂閲服務講求的是能否迅速提供服務,使客戶在短時間内就開始使用是重中之重。 單一住戶模式可能需要數天的設立時間,並對系統進行整合測試 (Integration test)、負載測試 (Load test)等等的測試,才能確保實際運行穩定。而多租戶模式則是在已經運行中的系統中,添加新的租戶 (Tenant) 給予客戶。添加用戶往往只要數分鐘便完成,而且系統的穩健程度就得到確保。

容易監察、維護及更新:完善系統的監察亦是確保服務質素的重要一環。在多租戶模式下,開發者只需要監測一組伺服器的狀態,便可知道所有客戶是否能正常使用系統。而當要修正系統時,只要將修正配置到一組伺服器上就能解決問題,不需要針對個別客戶進行修正。

用戶回饋和產品發展:多租戶模式往往可以使得產品有更高速的成長速度。每當新功能完成並配置到系統上,所有租戶也能即時受惠。而功能亦能啓發用戶提出新的需求,開發者能根據這衆多的用戶回饋去分析和開發新的功能。

雖然多租戶模式下的系統是分享了各種資源並降低成本,但要注意的是用戶的資料是必須做好區分。例如可以使用同一個數據庫伺服器,但每個客戶的數據庫必須分開。文件存儲亦是同等狀況,每個客戶儲存文件的文件夾必須分開。即使在資源共享的情況下,數據的安全和保密還是最重要的考慮。

Photo by Victoriano Izquierdo on Unsplash

如何取捨?


兩種都各有優點,但實際要建立一個系統的時候,到底應該如何取捨呢?恕我直言,我是傾向支持開發多租戶模式,原因是多租戶模式本身是可以作爲單一租戶模式來使用。

不同的客戶對系統會有不同的要求。如果有客戶提出必須有一個完全獨立的系統時,你可以爲一個客戶另外設立一組伺服器。這組伺服器只是爲了服務這客戶而設,並限制只有該客戶才能使用這個環境,不會添加新的租客。這樣多住戶模式就能簡單地變成單一租戶模式來使用,各取優點。


總結


現在多租戶模式的應用是大勢所趨,Slack、Office 365 ,這些軟件都是採用這種系統架構。這樣才可以控制成本,以維持市場上的競爭力。

多租戶模式似乎有絕對的優勢,但實際上做出一個穩健的多租戶模式系統並不容易,對開發者的系統架構能力也有很高的要求。而系統有任何問題也會影響到全部的客戶。例如系統如不採取一個有效的方法,去將用戶的流量分流到不同的數據庫的話,極有可能會令到系統本身出現混亂,往後亦難以作出維護。

我們之後會和大家介紹多租戶模式的實踐,由原始碼的層面出發,去看看如何做出一個穩健的多租戶模式架構。更多資訊可以留意 ONEs 軟件開發誌 定期發佈的文章,亦可以聯絡我們,亦可以聯絡我們,我們的網址是: ones.software
ONEs 軟件開發誌
We share what we have learned about app and web development. Find us in ones.software. Email: [email protected]
聯絡我們:
電郵地址: [email protected]
Contact us:
Email address: [email protected]
為什麼會看到廣告
通過 Offision 立即提高您的辦公績效!免費試用! 無需信用卡 即開即用
留言0
查看全部
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
W.手工紋繡藝術學院 #改眉 免除色的改眉 殘眉位置和眉骨還有原生毛完全不在一個位置上 (熒幕前的你還在反眉骨設計眉型嗎? 趕快來學新技術吧) 設計後的眉型 視覺效果改善很多 我一直認為 做完的效果比畫的效果還要漂亮 -------------------------- #紋繡眉眼唇全科班教
Thumbnail
原本想當中醫、卻意外為企業把脈;幼時想優化《大富翁》遊戲,日後竟幫產業富豪升級資本遊戲。七年級的鄭敬錞,穿著典雅不失潮流,在同業眼裡他是位「在科技業還能從容駕馭花襯衫」的大神。在客戶眼中,他則是一位精通數位轉型、房產科技、金融科技、區塊鏈的跨領域創新權威,並獲權威雜誌 APAC CIO Outl
Thumbnail
原文在此↓ 疫情爆發以來大家都戴著口罩, 使得本來就已競爭激烈的 一般化妝品銷售量銳減。 日本的化妝品業者從顧客反應得知, 由於戴口罩後只露出眼部, 眼部附近的肌肉使用較為頻繁, 皺紋因此多了起來,結果就是, 很多品項銷量都下降, 尤其是唇膏和粉底 (lipsticks and foundati
小時候總會想著,長大之後想成為什麼樣的大人。 但長大之後我卻忘了怎麼想著未來想再成為怎麼樣嚮往的人呢? 現在的我是孩提時期嚮往的那個樣的大人嗎?不免讓我感到好奇的問題持續地在我腦海裡打轉,而我也一直想再好好的繪製那個嚮往中的自己。 太遠的未來我觸摸不到,但是三年後的情景我大致可以想像。 大概還是
Thumbnail
每個人的生命中,或多或少都受過傷,有時候是別人帶給你的傷害,有時候是自己帶給自己的傷害。或許是不經意,或許是天注定,很多時候,我們總不能很順利的度過每一天。 很喜歡葉揚寫的這本《我所受的傷》,書中大多的篇幅是陳述她懷胎二十三週之後,被醫師宣判寶寶可能有先天心心臟病,她看了好幾位醫師,有的說最好終止懷
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
W.手工紋繡藝術學院 #改眉 免除色的改眉 殘眉位置和眉骨還有原生毛完全不在一個位置上 (熒幕前的你還在反眉骨設計眉型嗎? 趕快來學新技術吧) 設計後的眉型 視覺效果改善很多 我一直認為 做完的效果比畫的效果還要漂亮 -------------------------- #紋繡眉眼唇全科班教
Thumbnail
原本想當中醫、卻意外為企業把脈;幼時想優化《大富翁》遊戲,日後竟幫產業富豪升級資本遊戲。七年級的鄭敬錞,穿著典雅不失潮流,在同業眼裡他是位「在科技業還能從容駕馭花襯衫」的大神。在客戶眼中,他則是一位精通數位轉型、房產科技、金融科技、區塊鏈的跨領域創新權威,並獲權威雜誌 APAC CIO Outl
Thumbnail
原文在此↓ 疫情爆發以來大家都戴著口罩, 使得本來就已競爭激烈的 一般化妝品銷售量銳減。 日本的化妝品業者從顧客反應得知, 由於戴口罩後只露出眼部, 眼部附近的肌肉使用較為頻繁, 皺紋因此多了起來,結果就是, 很多品項銷量都下降, 尤其是唇膏和粉底 (lipsticks and foundati
小時候總會想著,長大之後想成為什麼樣的大人。 但長大之後我卻忘了怎麼想著未來想再成為怎麼樣嚮往的人呢? 現在的我是孩提時期嚮往的那個樣的大人嗎?不免讓我感到好奇的問題持續地在我腦海裡打轉,而我也一直想再好好的繪製那個嚮往中的自己。 太遠的未來我觸摸不到,但是三年後的情景我大致可以想像。 大概還是
Thumbnail
每個人的生命中,或多或少都受過傷,有時候是別人帶給你的傷害,有時候是自己帶給自己的傷害。或許是不經意,或許是天注定,很多時候,我們總不能很順利的度過每一天。 很喜歡葉揚寫的這本《我所受的傷》,書中大多的篇幅是陳述她懷胎二十三週之後,被醫師宣判寶寶可能有先天心心臟病,她看了好幾位醫師,有的說最好終止懷