軟件可以即要即用?企業級軟件訂閲服務 (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: hello@ones.software
聯絡我們:
電郵地址: hello@ones.software
Contact us:
Email address: hello@ones.software
為什麼會看到廣告
通過 Offision 立即提高您的辦公績效!免費試用! 無需信用卡 即開即用
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
Hi 我是 VK~ 在 8 月底寫完〈探索 AI 時代的知識革命:NotebookLM 如何顛覆學習和創作流程?〉後,有機會在 INSIDE POSSIBE 分享兩次「和 NotebookLM 協作如何改變我學習和創作」的主題,剛好最近也有在許多地方聊到關於 NotebookLM 等 AI 工具
Thumbnail
國泰CUBE App 整合外幣換匯、基金、證券等服務,提供簡便、低成本的美股定期定額投資解決方案。 5分鐘開戶、低投資門檻,幫助新手輕鬆進軍國際股市;提供人氣排行榜,讓投資人能夠掌握市場趨勢。
Thumbnail
這是張老師的第三本書,我想前二本應該也有很多朋友們都有讀過,我想絕對是受益良多,而這次在書名上就直接點出,著重在從投資的角度來切入
Thumbnail
W.手工紋繡藝術學院 #改眉 免除色的改眉 殘眉位置和眉骨還有原生毛完全不在一個位置上 (熒幕前的你還在反眉骨設計眉型嗎? 趕快來學新技術吧) 設計後的眉型 視覺效果改善很多 我一直認為 做完的效果比畫的效果還要漂亮 -------------------------- #紋繡眉眼唇全科班教
Thumbnail
原本想當中醫、卻意外為企業把脈;幼時想優化《大富翁》遊戲,日後竟幫產業富豪升級資本遊戲。七年級的鄭敬錞,穿著典雅不失潮流,在同業眼裡他是位「在科技業還能從容駕馭花襯衫」的大神。在客戶眼中,他則是一位精通數位轉型、房產科技、金融科技、區塊鏈的跨領域創新權威,並獲權威雜誌 APAC CIO Outl
Thumbnail
原文在此↓ 疫情爆發以來大家都戴著口罩, 使得本來就已競爭激烈的 一般化妝品銷售量銳減。 日本的化妝品業者從顧客反應得知, 由於戴口罩後只露出眼部, 眼部附近的肌肉使用較為頻繁, 皺紋因此多了起來,結果就是, 很多品項銷量都下降, 尤其是唇膏和粉底 (lipsticks and foundati
小時候總會想著,長大之後想成為什麼樣的大人。 但長大之後我卻忘了怎麼想著未來想再成為怎麼樣嚮往的人呢? 現在的我是孩提時期嚮往的那個樣的大人嗎?不免讓我感到好奇的問題持續地在我腦海裡打轉,而我也一直想再好好的繪製那個嚮往中的自己。 太遠的未來我觸摸不到,但是三年後的情景我大致可以想像。 大概還是
Thumbnail
每個人的生命中,或多或少都受過傷,有時候是別人帶給你的傷害,有時候是自己帶給自己的傷害。或許是不經意,或許是天注定,很多時候,我們總不能很順利的度過每一天。 很喜歡葉揚寫的這本《我所受的傷》,書中大多的篇幅是陳述她懷胎二十三週之後,被醫師宣判寶寶可能有先天心心臟病,她看了好幾位醫師,有的說最好終止懷
Thumbnail
Hi 我是 VK~ 在 8 月底寫完〈探索 AI 時代的知識革命:NotebookLM 如何顛覆學習和創作流程?〉後,有機會在 INSIDE POSSIBE 分享兩次「和 NotebookLM 協作如何改變我學習和創作」的主題,剛好最近也有在許多地方聊到關於 NotebookLM 等 AI 工具
Thumbnail
國泰CUBE App 整合外幣換匯、基金、證券等服務,提供簡便、低成本的美股定期定額投資解決方案。 5分鐘開戶、低投資門檻,幫助新手輕鬆進軍國際股市;提供人氣排行榜,讓投資人能夠掌握市場趨勢。
Thumbnail
這是張老師的第三本書,我想前二本應該也有很多朋友們都有讀過,我想絕對是受益良多,而這次在書名上就直接點出,著重在從投資的角度來切入
Thumbnail
W.手工紋繡藝術學院 #改眉 免除色的改眉 殘眉位置和眉骨還有原生毛完全不在一個位置上 (熒幕前的你還在反眉骨設計眉型嗎? 趕快來學新技術吧) 設計後的眉型 視覺效果改善很多 我一直認為 做完的效果比畫的效果還要漂亮 -------------------------- #紋繡眉眼唇全科班教
Thumbnail
原本想當中醫、卻意外為企業把脈;幼時想優化《大富翁》遊戲,日後竟幫產業富豪升級資本遊戲。七年級的鄭敬錞,穿著典雅不失潮流,在同業眼裡他是位「在科技業還能從容駕馭花襯衫」的大神。在客戶眼中,他則是一位精通數位轉型、房產科技、金融科技、區塊鏈的跨領域創新權威,並獲權威雜誌 APAC CIO Outl
Thumbnail
原文在此↓ 疫情爆發以來大家都戴著口罩, 使得本來就已競爭激烈的 一般化妝品銷售量銳減。 日本的化妝品業者從顧客反應得知, 由於戴口罩後只露出眼部, 眼部附近的肌肉使用較為頻繁, 皺紋因此多了起來,結果就是, 很多品項銷量都下降, 尤其是唇膏和粉底 (lipsticks and foundati
小時候總會想著,長大之後想成為什麼樣的大人。 但長大之後我卻忘了怎麼想著未來想再成為怎麼樣嚮往的人呢? 現在的我是孩提時期嚮往的那個樣的大人嗎?不免讓我感到好奇的問題持續地在我腦海裡打轉,而我也一直想再好好的繪製那個嚮往中的自己。 太遠的未來我觸摸不到,但是三年後的情景我大致可以想像。 大概還是
Thumbnail
每個人的生命中,或多或少都受過傷,有時候是別人帶給你的傷害,有時候是自己帶給自己的傷害。或許是不經意,或許是天注定,很多時候,我們總不能很順利的度過每一天。 很喜歡葉揚寫的這本《我所受的傷》,書中大多的篇幅是陳述她懷胎二十三週之後,被醫師宣判寶寶可能有先天心心臟病,她看了好幾位醫師,有的說最好終止懷