背景概述
wolai 是一款办公协同应用,具备多人同时在线编辑文档功能。要实现这个功能,一个非常稳定 的 Web 服务接口和一个具备伸缩能力、支持高并发写入、读取分离的分布式数据库是非常重要 的,使用 Serverless 产品能够与分布式数据库进行很好的搭配,非常符合 wolai 的架构需求。
需求分析
wolai 用户不需要快速打开应用,然后即用即走。相反,他们对于应用的初始加载速度没有特 别高的要求,因此 wolai 关注的重点并不是服务器端的渲染问题。通过研究用户习惯,更关注 用户在打开应用后,操作的每一步是否能够快速响应的问题:
- 用户把数据发到服务器上,服务器是否能快速、稳定的接收数据?
- 当有大量并发出现时,会不会让响应速度变慢?
解决方案
为了实现快速迭代,节省人力,wolai 把应用的每一个小的功能点拆分的非常散,在函数计算 上部署了非常多的服务,同时每个服务下又会有多个函数,通过人为拆散的方式实现了函数 解耦。这样做的优势是当我们需要发布时,如果只针对一个函数做了某些优化或者 bug 修复 的话,那就只需要发布这个函数,完全不需要做整体发布。因此可以每天快速累积发布,大 部分函数完全解耦,互不影响。尽量把所有的函数完全独立开,变成独立的业务逻辑。这样 可以保研发迭代的速度。目前团队研发工程师有 10 个人。其中 8 位都是前端工程师,大大提 高了团队人效。
用户价值
经测算,使用函数计算比使用传统框架节省一半以上计算费用,人力的投入能够节省一半甚至更多。
实现快速迭代,节省人力,wolai 的前端工程师就可以把从前到后的一整套开发流程负责起来, 研发迭代速度非常快。