腾讯云 Serverless CI/CD 自动化部署实战

本文将为你们讲解 Serverless 工做原理、架构优点和 Serverless 应用的开发流程,以及如何使用 Serverless CI/CD 能力进行自动化部署。git

本次和你们分享的提纲以下:github

  1. 什么是 Serverless CI/CD?数据库

    • Serverless 介绍
    • Serverless 架构
    • CI/CD 与 Serverless CI/CD
  2. Serverless CI/CD 应用express

    • Serverless 应用开发流程
    • Serverless CI/CD 优点
  3. Serverless CI/CD 实战服务器

    • 基于 Coding CI/CD 的自动化部署
    • 基于 Github CI/CD 的自动化部署

什么是 Serverless CI/CD?

1. Serverless 介绍

下图一张逻辑架构图,最上面application,下面是系统资源。咱们能够经过虚拟机、容器、数据库、存储等来提供系统资源。同时,咱们须要对这些系统资源进行维护,好比资源申请、环境搭建、容灾、扩缩容等。架构

Serverless 是什么呢?Serverless 就是把底层的这些资源以及对这些资源的运维都交给云厂商来维护、这些资源对业务来讲是黑盒的,业务只须要关注本身业务逻辑的开发便可。app

这种架构思想和方法就是 Serverless。框架

Serverless 直译过来叫无服务器,实际上他不是真的不须要服务器,只不过服务器由云厂商来维护。Serverless 是一种软件系统架构思想和方法,不是软件框架、类库或者工具,它的核心思想:无须关注底层资源,好比:CPU、内存和数据库等,只需关注业务开发。less

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 应用,须要进行如下步骤:

  1. 引入组件:引入腾讯云封装好的 severless 组件(如 tencent-express),能够快速进行开发。
  2. 配置 yml 文件:yml 文件是为了定义您的应用组织资源配置。不一样组件对应不一样的 yml 配置。
  3. 业务开发:进行用户自身业务的开发、调试、测试。
  4. 部署上线:把测试经过的功能发布上线。为了业务的稳定,建议进行灰度发布。

更多详细开发部署指南参考官网《 灰度发布与环境隔离 》

因为 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 中文网

相关文章
相关标签/搜索