AirJD 焦点
AirJD

没有录音文件
00:00/00:00
加收藏

如何构建SaaS应用 by 王子龙

发布者 ruby
发布于 1446427035341  浏览 4205 关键词 Ruby, 创业 
分享到

第1页

如何构建 SaaS 应用

王子龙 @cookiebody



第2页

SaaS 是什么? 面向企业的互联网软件。



第3页

SaaS 是什么? 面向企业的互联网软件。



第4页

SaaS 是什么? 面向企业的互联网软件。



第5页

SaaS 市场潜力怎样?



第6页

SaaS 市场潜力怎样?



第7页

消费市场



企业市场



第8页

构建 SaaS 之架构



虚拟化 Virtualization



多租户 Multitenancy



第9页

虚拟化 自动部署和更新



第10页

多租户

所有数据都通过租户区分 所有操作都包含租户ID



第11页

多租户数据存储架构 尽量避免运行期间执行DDL



第12页

构建 SaaS 之架构



一体化 Monolithic



微服务 Microservice



第13页

示例

应用进程

博客 论坛

数据库

 添加验证码图片  添加全文搜索



第14页

一体化



CaptchaModule.generate CaptchaModule.validate(id, value)



SearchModule.build(para) SearchModule.search(keyword)

应用进程



Image Magick



博客 论坛 全文搜索 验证码



全文索引



数据库



第15页

微服务



HTTP.post("captcha/generate") HTTP.post("captcha/validate", id, value)



HTTP.post("search/build", para) HTTP.post("search", keyword)



应用进程

验证码

Image Magick



应用进程

博客 论坛



应用进程

全文搜索

全文索引



数据库



第18页

构建 SaaS 之性能优化



 热点数据长期缓存



获取



Cache



更改



Database



 慢操作异步化处理



Ajax Poll App



Queue



Worker



SSE



第19页

构建 SaaS 之扩展



垂直扩展



水平扩展



第20页

三层结构 Web Server App App

DB



第21页

水平扩展 Load Balancer



Web Server Web Server



放在负载均衡之后



App App App 无状态的App,直接加



DB Replication DB



集群中加节点



第22页

水平扩展之数据库

 适合非结构化数据  无需跨DB的事务

Sharding



第23页

水平扩展



节点1



节点2



节点3



每个节点,都包含完整的基础设施 同个用户的数据,都存储在同个节点中



10K+ 用户 / 节点 50+ 节点



第24页

Ruby 相关技术栈  App Server  Database library  Web framework



第25页

以往的企业软件,是为了提升工作效率。 目前,软件的机会,在于变革工作本身。

@levie Box CEO



支持文件格式:*.pdf
上传最后阶段需要进行在线转换,可能需要1~2分钟,请耐心等待。