fbpx

雲架構實戰 - 淺談 SaaS 雲服務

什麼是 SaaS 雲服務?

對我來說 SaaS 雲服務只是某種型態的軟體概念,實現技術有沒有完全用到雲端技術並不是重點。只要是能夠讓軟體快速建立環境,讓使用者可以隨手可得、立即使用與享受的系統,我都認為是雲服務的概念,哪怕你為了驗證市場請工讀生建立假自動化的環境 (工人智慧!?) 也罷,真正能解決問題,並創造價值的系統才是最重要的。

軟體最大的價值在於複製 - 平台發大財

軟體研發成本極高而且風險也極高,但生產 (執行) 成本極低。雲服務就是基於這樣的特性所萌生的,因此雲服務一旦使用的客戶多了,就會變得很有效益 (但有效益不代表賺錢喔~~),這種越多人用越賺的概念,在商業模式中我們成為低邊際成本,這也是為什麼大家都想投入平台開發的行列。

雲端最基本的三個角色 IaaS, PaaS, SaaS,我們談的雲服務屬於 SaaS (Software as a Service) 的範疇,如果關於雲端服務 SaaS 已經了解了,那要如何實做這樣的服務呢?開始以前,先來看看雲服務需要什麼特性?

雲端服務特性 1 - 服務穩定持續不中斷

大多數的 SaaS 雲服務都建構於 IaaS 之上,為什麼穩定的雲服務會選擇透過 IaaS 技術來建制呢?因為 IaaS 在穩定度的設計上,比起直接由實體機組成 Server 來說,多了許多控制機制與容錯機制,而且在開發與管理上更為方便。但我們這裡就不深談 IaaS 或 VM 等等之特性,相信這些大家都很了解,之後我們會談到如何實現 Master/Slave, Active/Active, High Availability, Redundancy, Online Backup, Auto Scale-out 等等找麻煩的架構。

雲端服務特性 2 - 資源拓展能力

資源拓展能力其實就像我們生活中的自來水與電力公司,隨插即用,用多少算多少。在雲服務的概念上,客戶不會關心你的主機有多少容量、多少頻寬、多少記憶體,市場要的就是能在線立即使用、擴充、彈性收費等等特性。

目前大廠所提供的 PaaS 服務,相對來說是穩定的,直接使用 PaaS 來開發 SaaS,可以輕易作到資源動態拓展的能力,但除了有學習曲線的問題之外,再來就是技術掌握性的問題了,一但用就綁死了。我沒有太多使用 PaaS 開發的經驗,也無從分享。因此我只能分享在 IaaS (VM) 之上如何建構穩定的服務,說穿了就是自幹。使用 PaaS 其實主要可以帶來的特性就是資源的彈性擴充,「資源彈性擴充」才是我們的目的,用不用 PaaS 其實不太重要,只要你可以實現「資源彈性擴充」來降低服務的邊際成本,就是好方法。當我們的產品業務量快速成長時,可以快速地新增資源來滿足需求,才是真正的目的。

不管黑貓白貓,會抓老鼠就是好喵~

雲端服務特性 3 - 可靠的資料保存

在大廠的 IaaS 架構上,基本上資料丟失的機會很低 (除了去年某廠的事件... XD),但是我們還是可能會遇到由於人為作業疏失,或者真的遇到資料毀損。由於我經驗中其中一個產品是開發企業雲端硬碟,因此客戶的資料相當重要,資料儲存策略架構上採用冗餘 (Redundant) 機制,所有資料都會在線同時分別在兩個以上的節點各儲存一份,包含所有的檔案、資料庫、Log 記錄等等,如此就可以避免單一硬體損毀時丟失資料,當然也要付出對應的代價。詳細的實現措施後面會提到,先賣個關子。

下次見...