Serverless CI/CD实践案例

本文涉及的产品
简介: CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。CI/CD 的核心概念是持续集成、持续交付和持续部署。作为一个面向开发和运营团队的解决方案,CI/CD 主要针对在集成新代码时所引发的问题。具体而言,CI/CD 可让持续自动化和持续监控贯穿于应用的整个生命周期(从集成和测试阶段,到交付和部署)。这些关联的事务通常被统称为“CI/CD 管道”,由开发和运维团队以敏捷方式协同支持。

前言

CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。CI/CD 的核心概念是持续集成、持续交付和持续部署。作为一个面向开发和运营团队的解决方案,CI/CD 主要针对在集成新代码时所引发的问题。具体而言,CI/CD 可让持续自动化和持续监控贯穿于应用的整个生命周期(从集成和测试阶段,到交付和部署)。这些关联的事务通常被统称为“CI/CD 管道”,由开发和运维团队以敏捷方式协同支持。


Serverless架构在很多时候,会有很多函数组成完整的服务,这也给函数在后期的维护带来了极大的不便,此时CI/CD就显得尤为重要。更加科学、安全的持续集成和部署过程,不仅仅会让我们整体的业务流程更加规范,也会在一定程度上,降低人为操作,手工集成部署所产生错误的概率,同时也会大规模降低运维人员的工作负担。所以在Serverless架构下,CI/CD的流程就显得非常重要。本文将会以Serverless Devs开发者工具为例,通过Github Action实现函数计算相关服务的CI/CD功能。

CI/CD实践

如果需要通过CI/CD,将Serverless项目持续集成和部署到对应的云厂商上,需要我们有一个合适的工具来做这个事情。此时我们可以根据云厂商,选择不同的开发者工具,当然我们也可以选择一些常见的开源Serverless开发者工具来做这个事情,例如Serverless Devs,Serverless Framework等。本文将会以Serverless Devs为例,将Github上的仓库,通过Github Action部署函数到阿里云函数计算平台。

首先我们需要了解Github Action,GitHub Actions 是 GitHub 2018年10月推出的持续集成服务,通过Github Action和Serverless Devs组合,不仅可以实现持续集成服务,在很多时候也可以实现部署操作。

通过Github Action为例,我们可以通过Yaml格式,进行相对应的流程部署:

  • Checkout
  • 初始化 Serverless Devs
  • 配置阿里云密钥信息
  • 进行一些CI操作(可选)
  • 进行一些CD操作(部署到线上)

例如,我们的Yaml可以是:

name: serverless CI/CD


on:

 push:

   branches: [master]


jobs:

 serverless-cicd-job:

   name: Serverless cicd

   runs-on: ubuntu-latest

   steps:

   - name: Checkout

     uses: actions/checkout@v2

   - name: Initializing Serverless-Devs

     uses: Serverless-Devs/serverless-devs-initialization-action@main

     with:

       provider: alibaba

       AccessKeyID: ${{ secrets.ALIYUN_ACCESS_KEY_ID }}

       AccessKeySecret: ${{ secrets.ALIYUN_ACCESS_KEY_SECRET }}

       AccountID: ${{ secrets.ALIYUN_ACCOUNT_ID }}

   - name: Config

     run: sudo --preserve-env s config add -p alibaba --AccessKeyID ${{ secrets.ALIYUN_ACCESS_KEY_ID }} --AccessKeySecret ${{ secrets.ALIYUN_ACCESS_KEY_SECRET }} --AccountID ${{ secrets.ALIYUN_ACCOUNT_ID }}

   - name: Deploying

     run: sudo --preserve-env s deploy

这个流程中,主要是当有代码push到master分支后进行:

  1. Checkout操作
  2. 通过Serverless-Devs/serverless-devs-initialization-action@main初始化Serverless Devs
  3. 通过s config add指令进行密钥配置
  4. 通过s deploy进行项目部署(CD)

我们可以创建仓库:

然后配置密钥信息,可以将我们的密钥信息配置到Settings中的Secrets下:

主要需要配置我们Yaml中的几个变量:

secrets.ALIYUN_ACCESS_KEY_ID:阿里云密钥ACCESS_KEY_ID

secrets.ALIYUN_ACCESS_KEY_SECRET:阿里云密钥ACCESS_KEY_SECRET

secrets.ALIYUN_ACCOUNT_ID:阿里云用户ID

配置过程如下:

配置结果如下:

配置完成之后,我们可以在本地修改一下代码内容,修改之后,可以提交到线上:

部署到线上之后,我们可以看到Serverless CI/CD流程已经被触发:

稍等片刻,我们可以看到已经完成了整个流程,并且可以在日志中查看到部署结果:

可以看到我们的函数已经被更新到了线上。至此,我们完成了Serverless CI/CD的案例。

总结

如果想非常简单,快速,方便的完成Serverless应用的CI/CD的建设,一个完善的开发者工具是必不可少的,Serverless Devs是一款多云的开发者工具,可以通过该工具非常简单的、快速的、方便的部署AWS、阿里云、腾讯云等多个云厂商的函数计算等相关服务,同时Serverless Devs也是一个开源项目,用户可以随时随地的贡献组件,应用以满足更多场景的诉求。

通过Serverless Devs与Github Action的结合,我们可以用极低的成本,完成Serverless项目的CI/CD建设,不仅仅可以部署函数计算,还可以部署对象存储,API网关等多种云服务。希望读者通过对本章内容的阅读,可以对Serverless CI/CD有一个初步的认识,并且可以快速的在自己的项目中,应用起来,进入到“更安全、更科学的”应用集成、部署的实战中

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
18天前
|
人工智能 NoSQL Serverless
基于函数计算3.0 Stable Diffusion Serverless API 的AI艺术字头像生成应用搭建与实践的报告
本文主要分享了自己基于函数计算3.0 Stable Diffusion Serverless API 的AI艺术字头像生成应用搭建与实践的报告
494 6
基于函数计算3.0 Stable Diffusion Serverless API 的AI艺术字头像生成应用搭建与实践的报告
|
9月前
|
编解码 运维 监控
课时9:典型案例2:函数计算在音视频场景实践
课时9:典型案例2:函数计算在音视频场景实践
281 0
|
9月前
|
存储 运维 Serverless
【函数计算实践】一个应用案例
本文起源于一个用户匹配的需求。用户的不同信息分布于两个系统,且客观上无法直接打通(不必纠结具体是什么场景,这是真实存在,且非技术上能解决的),所以就涉及到两个系统id匹配的问题。
226 0
|
7天前
|
弹性计算 Cloud Native 安全
【阿里云云原生专栏】云原生与芬克斯:阿里云函数计算在金融行业的应用案例
【5月更文挑战第26天】阿里云函数计算在金融行业数字化转型中发挥关键作用,提供高可用、安全、灵活且成本效益的解决方案。通过事件驱动架构和弹性伸缩,适应业务波动,确保服务连续性。在实时风控系统案例中,函数计算实现低延迟评估,提升风控效率。此技术助力金融企业快速创新,增强市场竞争力。
137 0
|
9月前
|
编解码 人工智能 运维
课时9:典型案例2:函数计算在音视频场景实践(三)
典型案例2:函数计算在音视频场景实践
504 0
|
18天前
|
运维 中间件 Java
淘宝权益玩法平台的Serverless化实践
淘宝权益玩法平台的Serverless化实践
234 0
|
18天前
|
SQL 弹性计算 运维
畅捷通的 Serverless 探索实践之路
畅捷通的 Serverless 探索实践之路
|
6月前
|
SQL 弹性计算 运维
畅捷通的 Serverless 探索实践之路
畅捷通非 Serverless 架构向 Serverless 架构转型,提高了5个核心运行稳定性,同时管理简化运维工作,真正的提升系统资源利用率。
128897 1
畅捷通的 Serverless 探索实践之路
|
8月前
|
人工智能 运维 Serverless
基于函数计算模板部署AI应用实践
在本实验场景中,将向大家介绍如何基于阿里云函数计算FC服务部署Stable Diffusion实现文字到图片的生成;以及部署ImageAI 目标检测应用,对现有图片内容进行检测。
|
9月前
|
弹性计算 监控 Cloud Native
课时5:云原生体系下 Serverless 弹性探索与实践(五)
云原生体系下 Serverless 弹性探索与实践
947 0

热门文章

最新文章

相关产品

  • 函数计算