Serverless + 低代码,让技术小白也能成为全栈工程师?
点击可观看精彩演讲视频
经常有朋友问我,Serverless、FaaS最近几年这么火,是不是大前端要一统开发技术栈的节奏,如果是这样的话,Serverless 的边界是什么?这个问题很好,大家都普遍关心边界在哪里,我自己也好好思考了一下,我把这个问题留在后面来解答。
回到正题,Serverless + X = more,今天就来分享一下腾讯云开发最近在 Serverless 方向正在做的一些事情。
我的这次分享主要包含四个部分,分别是我们对于 Serverless 技术演进的理解,Serverless+低代码,Serverless 的场景化应用,以及最后的 Serverless+生态。
一、Serverless 技术演进
首先,看一下 Severless 技术演进的过程和路径:
Serverless1.0阶段,我们认为 Serverless = FaaS,于是我们有了云函数的事件驱动,自动部署,无服务免运维,可伸缩性强,扩缩容对用户是透明,随用户访问量自动伸缩,让用户成本更加低廉。
进入Serverless2.0,业内对于 Serverless 的普遍认知是FaaS加BaaS的综合体。以此为前提,云开发团队将 Serverless 具体实现为图上所示的模型,引入了云数据库和云存储。云数据库基于mongoDB我们自研了flexDB,文档式数据库,提供增删改查的接口。云存储提供文件托管服务,包含了CDN加速,开发者不需要申请域名,也无需管理服务器。
无论是 Serverless 还是云开发,提供的仍然是底层SDK和API,能否再进一步进入应用层的封装做抽象,将应用 Serverless 化,是留给我们思考和解决的问题。
于是在去年,我们推出了国内首家基于 Serverless 的低代码平台微搭,微搭具有一码多端、可视化拖拽编辑、一键完成应用构建和部署、提供业务模型封装、基于模型驱动的表单设计引擎、流程引擎等能力,帮助开发者除了在底层后台节省运维工作外,上层还可复用沉淀业务组件,更多通过可视化配置来实现和构建应用。
通过这张图,我们可以很形象地看到,随着 Serverless 技术演进所带来的开发模式的不同。在最初的传统开发模式下,开发者要关注从底层基础设施,到业务架构设计,再到业务逻辑整体的业务运营和服务稳定。
到第二步云开发模式下,提供了Faas + Baas的平台服务,通过云函数,云托管也就是容器托管,云存储和云数据库,屏蔽了底层需要管理的冷备热备,网络防护,负载均衡这些后端运维能力。
再到了低码开发模式下,低码平台对业务架构进一步抽象,沉淀行业组件,提供应用的多端构建能力,提供开箱即用的工具,以及数据层面的业务分析能力,让开发者持续关注在业务创新的价值层面。
再看一下,我们基于 Serverless 理念打造的应用开发平台——云开发,云开发是目前国 Serverless 最佳的落地实践。为什么这么说,我们可以看一下传统模式开发和云开发的流程对比。
传统模式下,HTTP请求发送到Server接入层,从接入通过RPC调用到逻辑层,再通过SQL查询或者Object对象请求到达底层存储,可以看到整体过程是面向Server 和代码的。
云开发模式下,屏蔽了Server概念,前端通过SDK或者HTTP的方式,直接调用后台的业务逻辑和数据逻辑,完成前后端一体化的开发调用。同时云开发提供了扩展能力,可以方便调用云上其他服务,如短信,图像和音视频处理等等。云开发的模式整体是面向代码,去Server化的。
下面我们再看一下云开发的能力矩阵。我们提供小程序/Web/H5的SDK,支持一套代码,多端运行在微信和浏览器体系下。
应用业务代码支持多种语言,包括主流的spring cloud,dubbo,以及php,node,go等等,其中springcloud和dubbo框架是通过 Serverless 化容器托管的方式来支持,也是我们的另一款产品——云托管,不限制语言和框架,可以让传统模式下的开发者把后台代码打包成镜像服务,同样享受弹性伸缩的好处。同时,云开发也提供了通用能力,如鉴权管理,版本管理,流量灰度等等。
上面提到云开发,让开发者成为了全栈开发,如果你是一个前端工程师,也可以熟练地写后端逻辑,甚至做运维的工作,从前端到后台完整的开发应用。那么接下来要提到的云开发低代码,让产品和运营等不会开发的角色,也可以快速构建应用。云开发低代码就是我们即将推出的产品——微搭低代码。
二、Serverless + 低代码
微搭低代码是国内首家基于 Serverless 的低代码开发平台,可以快速浏览下平台画像:
面向用户,可以是产品运营,也可以是开发者,服务商,企业IT运维人员。 面向一云多端,小程序,公众号和web应用。 面向场景,营销表单设计,企业运营管理,比如HR,财务等等,还有企业内部研发提效平台。 面向应用的全生命周期,从开发构建到测试部署一体化,到监控运营。 面向行业,包括政务,教育,零售,工业等等,其中政务行业,四川省健康码在年初已经上线,得到广泛应用和好评。
我们再来看一下低代码的能力矩阵:
低代码底层使用的云开发能力,在可视化配置层提供基础的UI组件,业务组件,以及允许用户自定义个性化组件;在应用构建层,平台提供了表单设计器和可视化数据源等能力;除了基础能力之外,开放的扩展体系允许用户接入打通第三方数据源,并上传自定义组件或者应用模板到应用中心,最终实现一码多端,支持小程序,H5和Web等应用形态。
行业场景化能力上,支持交易支付等基础的开店场景,基于微信电商中台的标准化能力,可直接打通微信视频号进行流量分发。
企业级能力上,支持账号权限,流程引擎,如表单和数据模型,支持审批流等常用的办公场景;可快速生成数据报表,提供轻量BI,可视化看板,用于数据决策分析。同时打通企业微信工作台,支持企微账号消息,应用的一键发布。
可以看出,低代码平台本身就是应用 Serverless 化甚至 Codeless 化的产物。
三、Serverless + 应用化
Serverless 应用化之后有哪些好处?在团队协同上讲,可以打破“竖井”,实现高效敏捷的协作。在传统开发模式下,业务、产品、设计、开发、测试与运维人员各司其职,且各有一套领域内的工具和语言,让跨职能的沟通变得困难而低效。
而有了低代码后,这一状况将得到改善。各角色都可以在同一个低代码开发平台上紧密协作,这种全新的协作模式不仅打破了职能边界,还能通过统一的可视化语言和单一的应用表示页面、数据和逻辑,更高效地对齐项目各方对应用形态和项目进度的理解,快速预览,快速迭代,实现敏捷协作。
目前微搭低代码不仅支持应用构建,还支持了应用组件化,自定义编辑器,以及接入三方数据源。
简单地说明下应用构建在技术层面上做了哪些工作:
低码编辑器,内置了通用应用语言规范CALS,从内部开源项目通用组件语言规范扩展而来,用于标准化的描述应用,将应用以及资源描述为一个JSON文件。 低码框架和编译器,把符合 CALS 规范的应用描述文件转换为应用源码,支持自定义模板,包括小程序、Web等,和自定义组件库等。 部署层面,基于云原生一体化部署工具-CloudBase Framework公司级的对外开源项目,可以把低码应用一键部署上云。
四、Serverless + 生态
那么如何围绕 Serverless 进行生态建设,打造多元生态?
首先,微搭支持了微信生态内原生交易组件,电商平台的标准化接口,在微搭平台可一键集成,快速开一个属于自己的店铺,并且是可以专属定制的。小程序应用天然支持视频号的绑定。其次,微搭本身是一个开放的平台,提供良好的扩展体系,开发者可以上传自己的自定义组件,接入外部数据源,甚至可以上传应用模板到微搭的应用市场。最后,微搭提供开箱即用的营销能力,和广告数据打通,提供多渠道分析能力,帮助商户更好地做运营决策。
如上,云开发实现了让后端资源 Serverless 化,可以免运维免联调,以及云+微信结合免鉴权调用开放能力。云开发低码,实现了可视化拖拽应用生成,让不懂研发的产品和运营能配置出一个自己所需要的内部管理系统。企业内部的管理系统快速搭建,以及很多时候作为小团队创业公司实现一个MVP,项目快速落地进行市场验证,这些通过云开发低码都可以完成。
最后,我们通过低码可集成行业工具箱,如微信生态内用户增长工具,以数据驱动为增长策略,集成广告和支付能力,助力企业洞察未来增长趋势。从让开发者成为全栈开发,到产品运营也可以快速构建应用,最后到帮助企业应用客户获得快速成长,是我们一直努力的方向。当前已经有上百万企业客户入驻到我们云开发平台中,未来希望有更多合作伙伴和开发者加入我们,共同把这个生态做好。谢谢大家!
讲师简介
骆勤
腾讯云高级技术专家,微搭基础产品负责人
腾讯云高级技术专家,微搭基础产品负责人,专注于前后端研发效能提升,工程化体系建设。在性能优化、研发效能、技术产品化等方向有丰富落地经验。
推荐阅读
连接人与万物,腾讯云 Serverless 助力打造更友好的世界
创下国内 Serverless 峰会新记录!第二届 Techo TVP 开发者峰会闪耀北京
腾讯云以 Serverless 之名,助力企业加速实现云端创新
点击观看峰会的精彩总结视频👆
📚 看视频不过瘾还想要干货PPT?关注本公众号,在后台回复关键词「serverless」即可获取!