随着 Serverless 生态的不断成熟,越来越多开发者使用 Serverless 架构构建自己的业务,Serverless 的典型适用场景有哪些?怎样借助工具,更快更好的部署自己的 Serverless 应用?本次课程将带你深入了解这些 Serverless 的最佳实战应用。
文章整理自腾讯云高级产品经理丁坤方在腾讯云大学的视频分享,完整分享视频如下,感兴趣的读者也可以点击文末【阅读原文】下载讲师PDF。
本次分享大纲包括:
1、为什么 Serverless 广受开发者喜爱? 2、Serverless 的典型场景 3、深入理解 Serverless Component 4、为你的静态页面加上后端:搭建express框架 5、三分钟快速定制你的新冠病毒疫情信息查询网页
1、为什么 Serverless 广受开发者喜爱?
在上一节直播课中,我们分享了架构的演进进程,从物理机房到虚拟机,再到容器,再到 Serverless。Serverless 的出现引发了行业革命,但很多人误认为Serverless只是计算的演进,但其实Serverless不单指计算,一般来说Serverless = FaaS + BaaS,既有计算能力的提供,也由后端能力的提供,泛指可以弹性扩缩容,并且按需付费的云服务。
这里的按需付费与按量付费是有区别的,按需付费是当你不需要不使用时,不收取费用,而不是按时长收费。虽然这些服务的底层依然会运⾏在服务器上,但由于我们将其 Serverless 化,开发者对其是没有感知的。
典型的Serverless服务的例子:
都支持弹性扩缩容、按需付费。只要支持上述两个条件,都可以称为 Serverless产品。
Serverless 的优势:
右下角的图,展示了在传统的模式下,搭建企业级架构是需要考虑很多方面的,如运维数据库、分配服务器、集群扩缩容、安全、网络等。对于开发者而言,这很多是没必要的,只需关注自身的业务逻辑。最近流行的全栈⼯程师是指,在⼀些不复杂的业务逻辑,⽆需和后端反复得对接⼝。前端也可以使用 Serverless 做更多后端的事情,更加⾼效,也提升了自己的能力。对于软件来说 Time to Market 的时间也⼤⼤缩短。
Serverless 引⼊的问题和⽅案:
下图是 CNCF 基金会 landscape 对 Serverless 的矩阵,有很多为了解决上述问题而产生的工具、框架和平台,在不同的平台里可以看到各大云厂商都有自己的Serverless 平台,包括开源的厂商也是。框架可以完成上下游资源的打通、调试、排障、优化等。很多工具也是基于这些框架而产生的。
本次 Demo 会使用到的也是最受欢迎的工具 Serverless Framework,之所以推荐大家使用的原因如下:
Serverless Framework 贯穿 Serverless 应⽤的整个⽣命周期。在开发自己的应用时,会涉及到开发、部署、测试、监控、安全、审计、协作等,Serverless Framework 提供了非常完整的解决方案。本次实战主要会用到CLI 命令行工具进行部署。
2、Serverless 架构:典型场景
Serverless 典型场景
典型场景 Top3:
其他场景:这些场景也是很适合Serverless
以下是基于 Web 应用场景展开的,一个典型的应用是静态⽹站托管:通过结合云解析、SSL证书、CDN 和 COS 等组件,快速⽀持静态⽹站托管的场景。⽆需在多个产品控制台进⾏繁琐配置,即可⼀键部署⼀个css/js/html的静态⽹站,⽀持各种框架(Hexo、Vuepress、Lavas、docsify、thumbsup等)上节课陈涛老师也有进行demo演示。
RESTful API 场景:当涉及到动态请求时,可以通过 SCF 云函数及 API ⽹关组件,轻松构建 RESTful API,极简配置,便捷部署,即可完成 API 的 CRUD 操作,适⽤于多种业务场景。
一个完整的网站是静态和动态的结合,还会有分离的架构,结合上面的场景,静态资源可以托管到 COS 上,动态或数据流的请求可以通过 Express 等框架,然后通过 API 网关、SCF 和数据库的能力来支持,这样就是一个非常完善的 Web 应用。大家可能会觉得复杂,但其实用了 Serverless Framework 后体验是一样的。通过结合多个 Serverless Components,结合后端 API 与前端 Vue.js 结合等场景,帮助开发者更便捷地部署 Serverless 全栈 Web 应⽤。
Serverless ⽤户案例
1、第一个是教育行业案例,EF 英孚教育,是英语教育机构。
EF客户痛点:
客户价值:
2、第二个是游戏行业的用户案例,江娱互动是⼀家⽹络游戏研发商,主要从事⽹络游戏开发,以及相关游戏服务。旗下有《世界争霸》、《农场⼩镇》等。
客户⽅案:
客户价值:
下图是客户矩阵图,各⾏各业:他们都在⽤ Serverless 架构。对于开发人员掌握使用Serverless已经是很有必要的。
3、深入理解 Serverless Component
Serverless Components 是 Serverless Framework 重磅推出的基础设施编排能⼒,⽀持开发者通过 Serverless Components 构建、组合并部署你的 Serverless 应⽤。
有以下四个显著特点:
下图是一个简单的Serverless Component例子,是基于腾讯云COS对象存储服务。基于该组件可以快速完成部署。
现在 Serverless 对框架的支持并不局限于 Node.js 语言,还包括 Python、PHP 等,这些组件都是开源的。欢迎大家开发属于你⾃⼰的 Component,成为开源社区的贡献者!
Serverless Component 对 Node.js 的框架适配
那么,Serverless Component 做了哪些改造使其完美适配到云端?
费⽤问题:超值免费额度
Serverless Framework 服务当前免费, 但该产品所⽤到的相关腾讯云产品将按照资源使⽤量进⾏收费(遵循各产品的计费规则)。通过免费额度构建 serverless 应⽤,每年能节省 (13.3+44.432+6) × 12 = 764.784 元,相当于 PV 3w的站点免费⽤,24 个⽉的免费视频会员,或 10 次免费的机场贵宾厅。关联产品免费额度,详细说明如下图。
5、三分钟开发新冠病毒疫情信息查询网页
疫情数据展示页模板,根据 Serverless Framework 构建。
1. 安装
$ npm i -g serverless
$ serverless create --template-url https://github.com/tinafangkunding/nCov-page
$ npm run bootstrap
2. 部署
$ serverless
如果希望查看部署详情,可以通过调试模式的命令 serverless --debug 进行部署。
dashboard: url: http://9u9ywac-n56qlg-1251971143.cos-website.ap-guangzhou.myqcloud.com env: apiUrl: https://service-l77nemo2-1251971143.gz.apigw.tencentcs.com/release/ apiUrlSZ: https://myapi.ihogu.com/public/?s=Whfy.city&city=%E6%B7%B1%E5%9C%B3 api: region: ap-guangzhou functionName: tencent-fullstack-vue-api apiGatewayServiceId: service-l77nemo2 url: https://service-l77nemo2-1251971143.gz.apigw.tencentcs.com/release/
21s › dashboard › done
如您的账号未登陆或注册腾讯云,您可以直接通过微信扫描命令行中的二维码进行授权登陆和注册。部署成功后,可以直接在浏览器中访问日志中返回的 dashboard url 地址,查看该全栈 Web app 的效果 。
本文分享自 ServerlessCloudNative 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!