简介
概念
- serverless 是对弱/无服务(削弱开发者对服务部署和维护的感知)应用架构的抽象和总结,是基于云平台的一种高自动化的开发方式,包含Faas和Bass
解决什么(钱)问题
- 成本运营成本不关心部署自动扩容服务资源成本按调用次数收费
- 效率提高应用部署效率提高业务开发的效率
适合什么场景
- 轻量IOT,多媒体处理,机器人,个人博客
- 低实时要求发邮件,消息推送,验证码
- 流量集中定时任务,自动化hook,爬虫
- 快速迭代创业,业务idea 试错
云平台
- AWS
- Azure
- Aliyun
- Tencent
计费
- 预付单价低,按峰值
- 后付单价高,按实际
开源框架
- fn来自 Oracle 的开源 Serverless 框架 https://fnproject.io/
- openfaas以容器技术为核心的开源 Serverless 框架。 https://github.com/openfaas/faas
- fissionPlatform9 推出的开源 Serverless 框架 https://github.com/fission/fission
- Kubeless基于 Kubernetes 架构实现的开源 Serverless 框架 https://github.com/kubeless/kubeless
- OpenWhiskApache 社区的开源 Serverless 框架 https://github.com/apache/incubator-openwhisk
谁在用
- 上线了
- thoughtwork
- 字节跳动
- 腾讯
- 阿里
- aws 80%的容器用户
实战
平台
- Aliyun Serverless Faas
node框架
- midway faashttps://www.yuque.com/midwayjs/faas
*拟机模**器人处理函数
- 创建f create
- 配置f.yml
service: midway-faas-vue-demo
provider:
name: aliyun # tencent
runtime: nodejs10
functions:
render:
handler: api.render
events:
- http:
path: /*
index:
handler: api.index
events:
- http:
path: /api/index
detail:
handler: api.detail
events:
- http:
path: /api/detail
list:
handler: api.list
events:
- http:
path: /api/list
answer:
handler: api.answer
events:
- http:
path: /api/answer
## aggregation deplpy
aggregation:
agg-demo-all:
deployOrigin: false
functionsPattern:
- '*'
package:
include:
- build
artifact: code.zip
- 函数介绍 https://www.yuque.com/midwayjs/faas/glossary
- 部署f deploy
- 访问

访问云函数
- 函数指标

云函数运行指标
- 项目 https://github.com/AviorAlong/midway-faas-test
阿里云 faas 总结
- 5分钟快速部署可用服务
- 收费规则太多
- 自动扩容无法验证
- 自定义域名不方便
总结
优势
- 运营成本低
- 开发效率高
- 自动扩容
劣势
- 安全性恶意调用数据安全
- 新的学习成本新框架新环境
- 调用时长限制函数运行时长10分钟
- 冷启动延迟冷启动时间长
- 平台依赖严重依赖平台的稳定性,迁移成本高
未来?
- bass后端服务上云
- faas轻量服务拆分
- 榨干程序员美好的愿望解放程序员,提高效率,专注于业务开发残忍的挖坑底层,源码,算法,架构
附学习文档
- 社区: serverless 中文社区 https://www.serverless.com/cn
- 平台: 阿里云函数计算 https://promotion.aliyun.com/ntms/act/fc/doc.html
- 媒体报告: Serverless 现状研究报告 https://www.infoq.cn/article/KcLMwB6OXaDhE4676QmM