serverless部署前后端项目实践
# 一、serverless架构介绍及安装serverless
Serverless又名无服务器,所谓无服务器并非是说不需要依赖和依靠服务器等资源,而是开发者再也不用过多考虑服务器的问题,可以更专注在产品代码上。Serverless是一种软件系统架构的思想和方法,它不是软件框架、类库或者工具。它与传统架构的不同之处在于,完全由第三方管理,由事件触发,存在于无状态(Stateless)、 暂存(可能只存在于一次调用的过程中)计算容器内。构建无服务器应用程序意味着开发者可以专注在产品代码上,而无须管理和操作云端或本地的服务器或运行时(运行时通俗的讲 就是运行环境,比如nodejs环境,java环境,php环境)。Serverless真正做到了部署应用 无需涉及基础设施的建设,自动构建、部署和启动服务。
通俗的讲:Serverless 是构建和运行软件时不需要关心服务器的一种架构思想
虚拟主机已经是快被淘汰掉的上一代产物了。云计算涌现出很多改变传统 IT 架构和运维方 式的新技术,比如虚拟机、容器、微服务,无论这些技术应用在哪些场景,降低成本、提升 效率是云服务永恒的主题。Serverless 的出现真正的解决了降低成本、提升效率的问题。它真正做到了弹性伸缩、高并发、按需收费、备份容灾、日志监控等。
# 1.1 传统的开发模式与serverless开发模式对比
传统的开发模式

新型的serverless开发模式

Serverless 正在改变未来软件开发的模式和流程

# 1.2 Serverless 和 ServerFul 架构的区别
# 传统的 ServerFul 架构模式
ServerFul 架构就是 n 台 Server 通过 网络通信 的 方式 协作在一起,也可以说 ServerFul 架构是基于 Server 和 网络通信(分布式计算) 的 软件实现架构 , Server 可 以是 虚拟机 物理机 ,以及基于硬件实现的云的云服务器

# Serverless 架构模式
Serverless 的核心特点就是实现自动弹性伸缩和按量付费

# 1.3 使用serverless的优势
- 资源分配: 在
Serverless架构中,你不用关心应用运行的资源(比如服务配置、磁盘大小)只提供一份代码就行。 - 计费方式: 在
Serverless架构中,计费方式按实际使用量计费(比如函数调用次数、运 行时长),不按传统的执行代码所需的资源计费(比如固定CPU)。计费粒度也精确到了毫 秒级,而不是传统的小时级别。个别云厂商推出了每个月的免费额度,比如腾讯云提供了每 个月 40 万 GBs 的资源使用额度和 100 万次调用次数的免费额度。中小企业的网站访问量不 是特别大的话完全可以免费使用。

- 弹性伸缩:
Serverless架构的弹性伸缩更自动化、更精确,可以快速根据业务并发扩容更 多的实例,甚至允许缩容到零实例状态来实现零费用,对用户来说是完全无感知的。而传统 架构对服务器(虚拟机)进行扩容,虚拟机的启动速度也比较慢,需要几分钟甚至更久。
# 1.4 Serverless 组成
- 广义的 Serverless 更多是指一种技术理念:Serverless 是构建和运行软件时不需要关心服务 器的一种架构思想。刚开始学 Serverless 你可以把它理解为虚拟主机的升级版本
- 狭义的 Serverless 是指现阶段主流的技术实现:狭义的 Serverless 是
FaaS和BaaS组成

# 1.5 Serverless 开发流程

# 1.6 为什么要学 Serverless
先看看招聘信息

看看最近 2 年 Github 的 start 数量和周下载量



目前已经使用了 serverless 的大公司

# 1.7 Serverless 的能力
# 计算能力
- 资源按需分配,无需申请资原
- Mwm:租户级别强镜离 Docker:进程级别隔离
- Mwm+Docker 轻量级资源毫秒级启动
- 实时扩容,阶梯缩容
- 按需收费
# 系统运维能力
- 性能保障:整个链路耗时毫秒级内,并支持 VPC 内网访问
- 安全保障
- 资源对用户不可见,安全由腾讯云提供专业的保障
- 提供进程级和用户级安全隔离
- 访问控制管理
<