前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航

serverless及小程序云开发实践总结

首页
2021-09-12 18:24:08
Front-End
serverless

# 一、Serverless 架构详解

# 1.1 什么是serverless

我们使用函数的时候不用关心后端IP、域名,只需要调用函数,后端的服务是一个函数。serverless并不是没有服务器,只是服务器部署在云上面的,比我们去自己维护更方便多

  • Serverless又名无服务器,所谓无服务器并非是说不需要依赖和依靠服务器等资源,而是开发者再也不用过多考虑服务器的问题,可以更专注在产品代码上。
  • Serverless是一种软件系统架构的思想和方法,它不是软件框架、类库或者工具。它与传统架构的不同之处在于,完全由第三方管理,由事件触发,存在于无状态(Stateless)、 暂存(可能只存在于一次调用的过程中)计算容器内。构建无服务器应用程序意味着开发者可以专注在产品代码上,而无须管理和操作云端或本地的服务器或运行时(运行时通俗的讲 就是运行环境,比如 nodejs 环境,java 环境,php 环境)。Serverless 真正做到了部署应用 无需涉及基础设施的建设,自动构建、部署和启动服务。
  • 第一种:狭义 Serverless(最常见)= Serverless computing 架构 = FaaS 架构 = Trigger(事件驱动)+ FaaS(函数即服务)+ BaaS(后端即服务,持久化或第三方服务)= FaaS + BaaS
  • 第二种:广义 Serverless = 服务端免运维 = 具备 Serverless 特性的云服务

  • FAAS:函数及服务,通俗来说就是我们可以写一个函数,在该函数内执行业务逻辑,函数由fas平台运行
  • BAAS:后端及服务,通常指云服务,该云服务常指中间件服务,

FAAS+BAAS 构成了Serverless架构

整体架构十分简单明了, 用 FC 替代了 Web 服务器,但是换来的是免运维,弹性扩容,按需付费等一系列优点

目前,Serverless 的应用场景广泛,大部分传统业务均可以在 Serverless 云函数上完美支持

# 1.2 Serverless要解决什么?

问题:前端和后端分离后,彼此独立,这样就导致前端需要关注一些后端关注的问题,如下。

  • 完整的后端应用上线流程
  • 机器管理运维:扩缩容
  • 降级、熔断、限流
  • 域名、性能、监控

是不是触及了很多同学的知识盲区。作为一个前端,确实大多数人对于服务端的环境,部署基础设施等等东西并不了解。但是现在前端是独立的部署,前端必然面临这些东西。这就是serverless要解决的问题。

# 1.3 Serverless做什么事?

问题:是不是可以弄一个工具,我们只需要关心前端代码,服务器的东西工具自动帮我们做好。

这就是serverless做的事情。如下图,我们只需要关心业务代码,不需要关心服务器的基础设施。

# 1.4 Serverless和函数计算的区别

# 1.5 Serverless 的技术特点

事件驱动

  • 云函数的运行,是由事件驱动起来的,在有事件到来时,云函数会启动运行
  • Serverless 应用不会类似于原有的「监听 - 处理」类型的应用一直在线,而是按需启动
  • 事件的定义可以很丰富,一次 http 请求,一个文件上传,一次数据库条目修改,一条消息发送,都可以定义为事件

单事件处理

  • 云函数由事件触发,而触发启动的一个云函数实例,一次仅处理一个事件
  • 无需在代码内考虑高并发高可靠性,代码可以专注于业务,开发更简单
  • 通过云函数实例的高并发能力,实现业务高并发

自动弹性伸缩

  • 由于云函数事件驱动及单事件处理的特性,云函数通过自动的伸缩来支持业务的高并发
  • 针对业务的实际事件或请求数,云函数自动弹性合适的处理实例来承载实际业务量
  • 在没有事件或请求时,无实例运行,不占用资源

无状态开发

  • 云函数运行时根据业务弹性,可能伸缩到 0,无法在运行环境中保存状态数据
  • 分布式应用开发中,均需要保持应用的无状态,以便于水平伸缩
  • 可以利用外部服务、产品,例如数据库或缓存,实现状态数据的保存

# 1.6 传统服务器架构 VS Serverless架构

  1. 传统的开发模式

  1. 新型的serverless开发模式

fe

  • 一、Serverless 架构详解
    • 1.1 什么是serverless
    • 1.2 Serverless要解决什么?
    • 1.3 Serverless做什么事?
    • 1.4 Serverless和函数计算的区别
    • 1.5 Serverless 的技术特点
    • 1.6 传统服务器架构 VS Serverless架构
    • 1.7 使用serverless优缺点
    • 1.8 如何理解理解Serverless技术—FaaS和BaaS
    • 1.9 Serverless计算如何工作?
    • 2.0 FAAS 冷启动
    • 2.1 FAAS 分层
    • 2.2 后端应用 BaaS 化
    • 2.3 Serverless使用场景
    • 2.4 serverless的厂家
  • 二、微信小程序云开发
    • 2.1 小程序传统开发模式
    • 2.2 云开发正在改变小程序的开发模式
    • 2.3 小程序云函数计费
    • 2.4 小程序云开发项目的创建与配置
      • 云开发项目初始化
      • 小程序云开发资源的管理
      • 其他工具与方式
      • 部署并上传云函数
    • 2.5 小程序云函数场景
      • 小程序云开发对比不同方式获取用户信息的应用场景
      • 小程序码
      • 图片上传
      • 云函数路由优化tcb-router
      • 云函数超时时间
      • 订阅消息
      • 定时触发器
    • 2.6 云数据库
    • 2.7 小程序云函数调试
      • 控制台调试
      • vscode本地调试
    • 2.8 小程序云开发部署管理后台演示-触发云函数的运用
      • 接口调用凭证access_token的缓存与更新
      • HTTP API 触发云函数
  • 三、不同厂商的serverless部署演示
    • 3.1 腾讯serverless
      • 1、Web 函数管理
      • 2、serverless fromework及控制台部署
      • 3、serverless部署前端项目
      • 4、在serverless中连接mysql
      • 5、云开发与serverless的区别
    • 3.2 阿里云函数部署
    • 3.3 vercel部署

← Jenkins部署微前端方案实践总结微前端实战总结篇 →