serverless的初心现状和未来 (serverless架构落地实践)

简介

概念

  • serverless 是对弱/无服务(削弱开发者对服务部署和维护的感知)应用架构的抽象和总结,是基于云平台的一种高自动化的开发方式,包含Faas和Bass

解决什么(钱)问题

  • 成本运营成本不关心部署自动扩容服务资源成本按调用次数收费
  • 效率提高应用部署效率提高业务开发的效率

适合什么场景

  • 轻量IOT,多媒体处理,机器人,个人博客
  • 低实时要求发邮件,消息推送,验证码
  • 流量集中定时任务,自动化hook,爬虫
  • 快速迭代创业,业务idea 试错

云平台

  • AWS
  • Google
  • 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
  • 访问

小白学开发serverless,serverless模式

访问云函数

  • 函数指标

小白学开发serverless,serverless模式

云函数运行指标

  • 项目 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