Serverless CI/CD实践案例

本文涉及的产品
函数计算FC,每月15万CU 3个月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 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有一个初步的认识,并且可以快速的在自己的项目中,应用起来,进入到“更安全、更科学的”应用集成、部署的实战中

相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
目录
相关文章
|
1月前
|
运维 监控 Cloud Native
【云故事探索】NO.17:国诚投顾的云原生 Serverless 实践
国诚投顾携手阿里云,依托Serverless架构实现技术全面升级,构建高弹性、智能化技术底座,提升业务稳定性与运行效率。通过云原生API网关、微服务治理与智能监控,实现流量精细化管理与系统可观测性增强,打造安全、敏捷的智能投顾平台,助力行业数字化变革。
【云故事探索】NO.17:国诚投顾的云原生 Serverless 实践
|
1月前
|
运维 监控 Cloud Native
【云故事探索】NO.17:国诚投顾的云原生 Serverless 实践
通过与阿里云深度合作,国诚投顾完成了从传统 ECS 架构向云原生 Serverless 架构的全面转型。新的技术架构不仅解决了原有系统在稳定性、弹性、运维效率等方面的痛点,还在成本控制、API 治理、可观测性、DevOps 自动化等方面实现了全方位升级。
|
5月前
|
存储 运维 Serverless
千万级数据秒级响应!碧桂园基于 EMR Serverless StarRocks 升级存算分离架构实践
碧桂园服务通过引入 EMR Serverless StarRocks 存算分离架构,解决了海量数据处理中的资源利用率低、并发能力不足等问题,显著降低了硬件和运维成本。实时查询性能提升8倍,查询出错率减少30倍,集群数据 SLA 达99.99%。此次技术升级不仅优化了用户体验,还结合AI打造了“一看”和“—问”智能场景助力精准决策与风险预测。
515 69
|
5月前
|
Cloud Native Serverless 流计算
云原生时代的应用架构演进:从微服务到 Serverless 的阿里云实践
云原生技术正重塑企业数字化转型路径。阿里云作为亚太领先云服务商,提供完整云原生产品矩阵:容器服务ACK优化启动速度与镜像分发效率;MSE微服务引擎保障高可用性;ASM服务网格降低资源消耗;函数计算FC突破冷启动瓶颈;SAE重新定义PaaS边界;PolarDB数据库实现存储计算分离;DataWorks简化数据湖构建;Flink实时计算助力风控系统。这些技术已在多行业落地,推动效率提升与商业模式创新,助力企业在数字化浪潮中占据先机。
339 12
|
7月前
|
Kubernetes 监控 Serverless
基于阿里云Serverless Kubernetes(ASK)的无服务器架构设计与实践
无服务器架构(Serverless Architecture)在云原生技术中备受关注,开发者只需专注于业务逻辑,无需管理服务器。阿里云Serverless Kubernetes(ASK)是基于Kubernetes的托管服务,提供极致弹性和按需付费能力。本文深入探讨如何使用ASK设计和实现无服务器架构,涵盖事件驱动、自动扩展、无状态设计、监控与日志及成本优化等方面,并通过图片处理服务案例展示具体实践,帮助构建高效可靠的无服务器应用。
|
8月前
|
负载均衡 Serverless 持续交付
云端问道9期实践教学-省心省钱的云上Serverless高可用架构
详细介绍了云上Serverless高可用架构的一键部署流程
145 10
|
9月前
|
运维 Cloud Native Serverless
Serverless Argo Workflows大规模计算工作流平台荣获信通院“云原生技术创新标杆案例”
2024年12月24日,阿里云Serverless Argo Workflows大规模计算工作流平台荣获由中国信息通信研究院颁发的「云原生技术创新案例」奖。
|
9月前
|
Serverless 开发工具 开发者
活动实践 | 西游再现,函数计算一键部署 Flux 超写实文生图模型部署
这些图片展示了阿里巴巴云开发者生态的多个方面,包括开发工具、技术文档、社区交流、培训认证等内容,旨在为开发者提供全方位的支持和服务。
|
9月前
|
人工智能 Serverless API
尽享红利,Serverless构建企业AI应用方案与实践
本次课程由阿里云云原生架构师计缘分享,主题为“尽享红利,Serverless构建企业AI应用方案与实践”。课程分为四个部分:1) Serverless技术价值,介绍其发展趋势及优势;2) Serverless函数计算与AI的结合,探讨两者融合的应用场景;3) Serverless函数计算AIGC应用方案,展示具体的技术实现和客户案例;4) 业务初期如何降低使用门槛,提供新用户权益和免费资源。通过这些内容,帮助企业和开发者快速构建高效、低成本的AI应用。
323 12

热门文章

最新文章

相关产品

  • 函数计算