昨天(2009-11-14)參加了廣州技術沙龍的第三期,老潘的 PaaS 講座很有意思,由於以前很少接觸面向小企業的軟件領域, 所以很多觀點頗有眼前一亮的感覺。
(下面的文章僅憑記憶寫成, 如有錯誤,見諒)
問題的提出:
SaaS 是軟件發展的方向, 但 SaaS 帶來了幾個問題
- 以前軟件做好扔在下載站就完事了, 現在則需要自己建服務器, 要維護服務器,比如定期備份數據庫等等。
- 如果用戶量快速增長怎麼辦?比如昨天的 jjmmw 就講一個例子, 用戶數量上來了,服務器卻天天當機。那麼你就需要添加服務器, 優化架構(引入 memcache, 數據庫讀寫分離, ...)
- 當然還有一些其他問題和需求,比如用戶之間如何交流等,與今天的主題無關,所以忽略
這些無疑大幅度加大了 SaaS 軟件作者的門檻,感覺已經不是一個人來做,而需要一個團隊了。
"雲計算" 這個概念被提出了, 比如 amazon 的 ec2 和 google 的 appengine 都可以很好地解決第1個和第2個問題, 只要花點錢就可以了,也不是很貴, 不過在中國會有訪問速度和GF* 這兩個問題。
那麼問題是否完全解決了呢?小企業用戶用戶仍然不願意遷移到 SaaS 上來,爲什麼呢?
- 單一的一個 SaaS 軟件是不能滿足 SaaS 需求的, 但多個 SaaS 服務如何整合在一起, 比如最簡單的賬戶問題
- 如何定製一個 SaaS 軟件?單機軟件還可以玩二次開發, SaaS 怎麼玩?
- 我如何相信 SaaS 提供商的人品, 他如何保證不會泄漏,篡改我的數據?
- 我如何相信 SaaS 提供商的能力, 他如何保證不會丟失我的數據?
- 如何遷移我的軟件, SaaS 供應商垮了怎麼辦?
面對這些問題,我也會選擇慎重考慮, 最後選擇購買傳統軟件來解決我的問題。
老潘的解決方案: PaaS, Platform as a Service (平臺即服務)
那麼如果 SaaS 軟件不是部署在 ec2 或者 appengine 上,而是一個統一的平臺呢?
由這個統一的平臺來提供帳號系統和數據庫, 數據庫方面每個企業使用獨立的數據庫, 可以做到讓 SaaS 軟件作者也無權查看。
SaaS 軟件中,軟件作者通常對所有用戶提供同一個版本, 在 PaaS 上這個不再是必須的,軟件作者可以爲每個企業定製軟件,或者也可以加強軟件的可定製性,讓企業用戶來定製。
那麼是不是大部分問題都解決了呢?
- 帳號系統由 PaaS 提供, 所以帳號系統天然整合了
- 可以向作者購買定製版,也可以通過腳本來定製
- PaaS 平臺上 SaaS 供應商也無法訪問你的數據, 通過一些技術手段可以防止 SaaS 軟件的後門(比如限制底層語言的能力), 那麼你只需信任 PaaS 平臺供應商就可以了。
- 同樣,你只需要擔心 PaaS 供應商的能力,而不用擔心每個 SaaS 供應商的能力。
- 相信 PaaS 供應商不會倒,同時 PaaS 供應商提供倒出數據的能力, 不過仍然沒有完全解決這個問題。
最後老潘還演示了一下自己的 易度平臺 。
感想:
以前在金山軟件實驗室的時候, 廣泛使用各種互聯網應用,來一個新人時需要加一堆帳號,當時只是覺得麻煩, 卻從來沒想過提煉出這個問題,看來我是天生不擅長提出問題麼?
面向企業的應用, PaaS 是一個好的方向,那麼面向個人的呢?是否一定要整合到 facebook, renren這種平臺上呢? 好處是可以帶來大量的用戶?是否會帶來其他的問題?
march liu 的 postgreSQL 講的也不錯,不過才一半,下次講完了一起寫。