服务保障和线上监控由云开发平台承担,不再需要专职的运维人员。
具体到现实上手开发,开发者们需要了解三种角色:端、云和控制台。
端的表现形式是对应各平台的SDK,是与前端开发者关系最紧密的一个角色;
云指的是支撑Serverless体系的后台系统,这部分对于开发者来说是无感知的,与其对接的工作由端SDK承担。细化到子角色可以分为接入层和基础服务,接入层负责代理转发和用户鉴权等工作;基础服务提供基本的能力支撑,包括云函数、云数据库和云存储;
控制台的功能分为两大类:一是管理功能,比如云函数的部署、数据和文件的管理等等;二是运营,控制台提供产品线上监控以及数据的统计和可视化,以辅助运营。
场景多样化支撑任何一种新技术或者架构落地到具体的业务场景中都难免会遇到由于业务特殊性造成的迁移困难问题,所以在基础的开发生态之外,云开发为支撑多样化的业务场景建立了必要的策略以及对应的工具。比如对于数据私密性存在高要求的产品,可以通过控制台选择严格的CURD权限管理策略;并且可以使用wx-service-sdk在云函数中进行私密数据的CURD以保障安全性;再比如对实时性要求较高的场景,比如在线客服、多人游戏等,云数据库的实时推送功能可以保障此类功能的高效表现。
现阶段云开发的落地场景有两个:小程序和web端(其他端的落地近期到来)。分享现场有一位观众提出了一个问题:云开发能支撑多大的用户量和请求量?如果对云开发和Serverless有基本了解的话,这个问题其实就相当于问1+1等于几一样。云开发最大的优势之一便是根据请求量进行动态的扩缩容,其背后是腾讯云庞大的计算能力做支撑。不过为了更具体的回答这个问题可以参考一个现实中的案例:腾讯相册。
2018年3月份推出腾讯相册小程序在9个月的时间里实现了用户量破亿的成绩,而这个爆款小程序的开发只占用了一个人力,在云开发基础上,一个人完成了从客户端到服务端到数据的全部工作。这个案例足以说明云开发的便利和强大,更多细节可以参考这篇文章。
总结&展望现阶段前端社区对于前端开发者的进化方向有两种较流行的认知:以Node.js为支撑包揽前后端的大前端和以ReactNative和Flutter为支撑的泛前端。云开发非常接近大前端,并且不仅限于服务端,更进一步地深入到数据和存储。小程序其实非常接近泛前端的概念,它是web和native的综合体,大部分场景下开发者均无需关注平台差异性。那么综合大前端和泛前端,在云+端的支撑下是否能够展望一下前端在未来会成为“全栈+全端”?我们拭目以待。