本文将为大家解说 Serverless 工作原理、架构劣势和 Serverless 利用的开发流程,以及如何应用 Serverless CI/CD 能力进行自动化部署。
本次和大家分享的提纲如下:
-
什么是 Serverless CI/CD?
- Serverless 介绍
- Serverless 架构
- CI/CD 与 Serverless CI/CD
-
Serverless CI/CD 利用
- Serverless 利用开发流程
- Serverless CI/CD 劣势
-
Serverless CI/CD 实战
- 基于 Coding CI/CD 的自动化部署
- 基于 Github CI/CD 的自动化部署
什么是 Serverless CI/CD?
1. Serverless 介绍
下图一张逻辑架构图,最下面 application,上面是系统资源。咱们能够通过虚拟机、容器、数据库、存储等来提供系统资源。同时,咱们须要对这些系统资源进行保护,比方资源申请、环境搭建、容灾、扩缩容等。
Serverless 是什么呢?Serverless 就是把底层的这些资源以及对这些资源的运维都交给云厂商来保护、这些资源对业务来说是黑盒的,业务只须要关注本人业务逻辑的开发即可。
这种架构思维和办法就是 Serverless。
Serverless 直译过去叫无服务器,实际上他不是真的不须要服务器,只不过服务器由云厂商来保护。Serverless 是一种软件系统架构思维和办法,不是软件框架、类库或者工具,它的核心思想:毋庸关注底层资源,比方:CPU、内存和数据库等,只需关注业务开发。
2. Serverless 架构
Severless 的架构如下图所示。客户端申请将发送的 API 网关,由云函数进行解决,调用底层资源进行返回。利用云函数主动伸缩的劣势,罢黜用户运维的懊恼。
应用 Severless 开发利用,能打消传统海量服务器组件需要,升高开发和运维复杂性。Serverless 按需调用,按需伸缩,按应用免费,升高启动老本。因为底层资源调配工作都由云厂商解决,用户只需专一业务逻辑开发即可。
3. CI/CD 与 Serverless CI/CD
CI/CD 是 继续集成(Continuous Integration)和继续部署(Continuous Deployment)的简称。指在开发过程中主动执行一系列脚本来减低开发引入 bug 的概率,在新代码从开发到部署的过程中,尽量减少人工的染指。
Serverless CI/CD 基于 CI/CD 继续集成的 pipeline 机制,实现用户开发部署的全自动化,晋升开发效率。
Serverless CI/CD 利用
1. Serverless 利用开发流程
开发一个 serverless 利用,须要进行以下步骤:
- 引入组件:引入腾讯云封装好的 severless 组件(如 tencent-express),能够疾速进行开发。
- 配置 yml 文件:yml 文件是为了定义您的利用组织资源配置。不同组件对应不同的 yml 配置。
- 业务开发:进行用户本身业务的开发、调试、测试。
- 部署上线:把测试通过的性能公布上线。为了业务的稳固,倡议进行灰度公布。
更多具体开发部署指南参考官网《灰度公布与环境隔离》
因为 serverless 利用开发过程中调试是间接调用云函数等资源,因而每次批改代码后都须要执行部署命令,重复执行命令行比拟繁琐。环境的隔离与灰度公布如果人工配置容易产生谬误,因而须要 CI/CD 能力反对。
2. Serverless CI/CD 劣势
后面讲到 CI/CD 通过在开发过程中主动执行一系列脚本来减低开发引入 bug 的概率,在新代码从开发到部署的过程中,尽量减少人工的染指。
应用 Serverless CI/CD,次要是利用 CI/CD 已有的劣势,让 serverless 开发部署自动化,进步开发的效率,缩小人工产生的出错。
附:Demo 源码地址
One More Thing
立刻体验腾讯云 Serverless Demo,获取收费试用额度 ???? serverless/start
欢送拜访:Serverless 中文网!