立即点击-> 选择您最喜爱的框架,免费体验 Serverless Demo
本文整理自 ServerlessDay · China 大会 - 《从零到一,Serverless 平台在滴滴内部落地》分享,讲师滴滴弹性云平台负责人张健、滴滴资深前端开发工程师陈钦辉。滴滴 Serverless FT成员来自:滴滴基础平台部、车服技术部、金融事业部、普惠产品技术部。
我们调研了业界的 Serverless 方案,最终决定了自己的方案:K8s + Knative + Istio 搭建应用级 Serverless。他的优势是:
那有了 Severless 基础能力,如何通过他来升级我们的研发模式呢?
从研发视角看下,整个 Serverless的全局,自上而下是:
右侧:是业务服务环境,下面是常规的日志、监控、报警、性能分析的能力
左下侧:是Nodejs生态体系,包括业务框架、SDK、Nodejs性能分析平台
左上侧:是面向Serverless 研发体系的共享市场
在虚线框里,就是面向一个业务场景,基于 Serverless 能力打造的一个通用解决方案。
将上面 Serverless 全局图拆分,我们把它分成三部分,这三部分也是我们年初立项,多个团队合作做这件事的一个模块分工,分为底层、平台层,和面向业务的研发层。
在开发者使用过程中,他们的流程是这样的:
Serverless-cli 的定位
我们再来看下 Serverless-cli, 它的定位是,基于插件式命令行扩展框架。他包含如下3个核心能力:
serverless-cli 的设计
cli 设计包含核心模块、默认命令、webpack相关、配置规范、以及基于cli 框架上层打造的插件生态。
场景方案 - FaaS(云函数)
第一个场景方案:云函数。函数即服务,用户快速编写一个函数接口,这里创建了两个接口, 每个接口暴露一个函数,入参为param 和 context, 通过 async 返回函数同步异步结果。这个场景的插件为 @didi/sls-cli-plugin-faas, 用户通过 package.json 中声明依赖即可。FaaS工程类型的优势,是简单高效,并且通过Serverless 路由可以灵活控制隔离粒度。
场景方案 - Sma(微应用)
第二个场景方案:微应用。
页面即服务,前后端代码一体化,service.js 里保留出两个接口 list 和 add, 此时可以在前端组件中,类似远程调用,直接调用这两个方法,如同本地函数一样。另外它的服务端代码上下文和 FaaS 保持一致。
场景方案 - Sma-light(微应用-轻量版)
因为是应用级Severless方案,服务部署过程还是需要经历构建代码、编译镜像、以及整个应用级的部署。故我们基于Runtime的设计,结合Nodejs热更新能力,来支持页面级发布能力,轻量微应用类型工程。它支持
不同场景方案,一致开发体验
我们来感受下,不同场景下一致的开发体验,包括创建、构建、开发、部署等 执行dev 时会一件启动前端资源webpack服务,同时启动服务端runtime服务,打开导航页面。
另外部署,可以执行 sls deploy, 通过 cli 将服务、按场景先后,按流量分组部署到 Severless 平台。也可以通过 Vscode 插件可视化方式进行操作,进行部署、回滚。
云端开发
更进一步,我们提供了云端开发能力,来满足一些如云函数,这类轻量创建服务的方式,开发者可以通过平台创建函数、页面,完成开发、调试,上线,且它的开发体验与本地是完全环境一致,并且是复用的。
我们来看一个业务使用案例。
这是我们普惠的工作台,是一个面向运营,集合了多个业务线后台系统。这里的菜单栏是配置集成起来的,每个菜单项是一个独立的页面,目前我们还没有采用微前端的一些轻量的隔离方案,使用的是简单、有效的iframe来进行隔离的。每个页面即服务,由每个业务线团队里的每个同学,用他们熟悉的技术栈,通过的前面介绍的微应用解决方案,独立运维。
最后,我们也在积极探索用 V8 Isolate 与我们现有应用级Serverless + Runtime设计结合,实现面向nodejs更轻量高效的Serverless 隔离方案。
3 秒你能做什么?喝一口水,看一封邮件,还是 —— 部署一个完整的 Serverless 应用?复制以下链接至 PC 浏览器访问:
china.serverless.com/express
3 秒极速部署,立即体验史上最快的 Serverless HTTP 实战开发!
传送门:
点击阅读原文,访问:Serverless 中文网,您可以在「最佳实践」里体验更多关于 Serverless 应用的开发!
本文分享自 ServerlessCloudNative 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!