自动化 CI&CD 与灰度发布|学习笔记

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介: 快速学习 自动化 CI&CD 与灰度发布

开发者学堂课程【从 0 入门函数计算:自动化 CI&CD 与灰度发布】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/645/detail/10724


内容简介:

1.环境管理和自动化部署

2.灰度发布

 

1.环境管理和自动化部署

当我们从传统开发迁到 Serverless 架构下,对于环境和部署的管理思路也会有所不同,当用户转到 Serverless 下,它可以轻松的给我们提供更多的环境,而这常常是被忽略的一个好处。当我们开发项目时,通常需要一个生产环境,需要预发环境和一些测试环境等,但通常每个环境都需要消耗资源和成本以保证服务的在线和可用。而大多数的时候,非生产环境上的访问资源量又非常少,为此付出大量成本是很不划算的一件事情。

但是,在 Serverless 架构中,我们可以为每位开发人员提供一个准生产环节,做CSD 的时候,可以为每个功能分支创建独立的演示环境。当团队成员在开发功能或者是修复 bug 时,需要预览新功能就可以立即部署,而不需要在自己的机器上模拟或者找其他同事协助来进行测试环境的使用和搭建等。这一切都受益于 Serverless,我们不需要为空闲资源付费,当我们去部署那些根本或者基本没有访问量的环境时,成本将会为我们降到很低很低。由于部署环境变得很容易,对于自动化部署的要求就变得更高了,当然是否采用 Serverless 部署自动化架构都是很重要的。能否构建部署和创建整个环境是区分开发团队优秀与否的重要因素。在Serverless 场景下,这种能力尤为重要,因为只有这样,才能充分利用平台的优势。后面的课程我们会了解到借助于函数计算平台提供的工具,开发人员可以用从前做不到的方式在准生产环境中轻松部署测试代码。

 

2.灰度发布

由于 Serverless 提供的弹性访问机制在没有访问量的时候能自动缩容到 0,极大的节约了部署的多环境成本。然而,在同一套环境内的多个不同的版本也可以受益于这套机制,传统应用虽说也支持在一个环境中并存多个版本,但相对比 Serverless 更加困难。首先,每个版本都需要相对独立的运行环境,会消耗更多的资源,其次,需要解决多个版本之间的流量的分配问题。

在 faas 上,这些问题已经被版本和别名机制完美的解决了。在 faas 上,由于没有流量就不会消耗计算资源,所以在发布一个版本的时候,成本也变得很低很低,每次发布都可以形成一个版本,然后通过别名来进行版本的切换和流量的分配。至于faas 的这套抽象,让灰度发布和 AD 测试变得非常的简单,不需要像 K8S 那样复杂的基础设置,开发者也可以轻松的享受平滑升级和快速验证的高级特性。

后面的课程我们会介绍更多的细节。Serverless 让开发和部署都变得更加的简单,希望您能够继续探索其他思维。

更多相关的资料可以访问函数计算的产品页。(http://www.aliyun.com/product/fc

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
1天前
|
jenkins Java 持续交付
软件开发自动化程度的不断提高,持续集成(CI)和持续部署(CD)成为现代软件开发的重要组成部分
随着软件开发自动化程度的不断提高,持续集成(CI)和持续部署(CD)成为现代软件开发的重要组成部分。本文以电商公司为例,介绍如何使用 Jenkins 自动发布 Java 代码,包括安装配置、构建脚本编写及自动化部署等步骤,帮助团队实现高效稳定的软件交付。
9 3
|
21天前
|
测试技术
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
本文介绍了如何使用Pytest和Allure生成自动化测试报告。通过安装allure-pytest和配置环境,可以生成包含用例描述、步骤、等级等详细信息的美观报告。文章还提供了代码示例和运行指南,以及重构项目时的注意事项。
100 1
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
|
11天前
|
运维 监控 jenkins
运维自动化实战:利用Jenkins构建高效CI/CD流程
【10月更文挑战第18天】运维自动化实战:利用Jenkins构建高效CI/CD流程
|
18天前
|
缓存 监控 数据可视化
利用GitLab CI/CD自动化您的软件开发流程
【10月更文挑战第10天】GitLab CI/CD 是 GitLab 内置的持续集成和持续部署工具,通过编写 .gitlab-ci.yml 文件,可以自动化构建、测试和部署应用程序的过程。本文介绍 GitLab CI/CD 的核心优势、实施步骤及在现代开发中的应用,帮助您提高开发效率和软件质量。
|
21天前
|
测试技术 Python
自动化测试项目学习笔记(四):Pytest介绍和使用
本文是关于自动化测试框架Pytest的介绍和使用。Pytest是一个功能丰富的Python测试工具,支持参数化、多种测试类型,并拥有众多第三方插件。文章讲解了Pytest的编写规则、命令行参数、执行测试、参数化处理以及如何使用fixture实现测试用例间的调用。此外,还提供了pytest.ini配置文件示例。
19 2
|
21天前
|
测试技术 Python
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
本文主要介绍了自动化测试中setup、teardown、断言方法的使用,以及unittest框架中setUp、tearDown、setUpClass和tearDownClass的区别和应用。
42 0
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
|
7天前
|
运维 安全 Devops
DevOps实践:持续集成与持续部署(CI/CD)的自动化之路
【10月更文挑战第22天】在软件交付的快速迭代中,DevOps文化和实践成为企业加速产品上市、保证质量和提升客户满意度的关键。本文将通过一个实际案例,深入探讨如何利用持续集成(Continuous Integration, CI)和持续部署(Continuous Deployment, CD)实现软件开发流程的高效自动化,包括工具选择、流程设计以及问题解决策略。我们将一起探索代码从编写到部署的全自动化旅程,揭示其对企业运维效率和产品质量所带来的深远影响。
|
11天前
|
运维 监控 jenkins
运维自动化实践:利用Jenkins实现高效CI/CD流程
【10月更文挑战第18天】运维自动化实践:利用Jenkins实现高效CI/CD流程
|
27天前
|
JavaScript 测试技术 持续交付
使用 GitLab CI/CD 管道自动化部署 Web 应用
【10月更文挑战第2天】使用 GitLab CI/CD 管道自动化部署 Web 应用
28 0
|
1月前
|
机器学习/深度学习 人工智能 运维
构建高效运维体系:从自动化到智能化的演进
本文探讨了如何通过自动化和智能化手段,提升IT运维效率与质量。首先介绍了自动化在简化操作、减少错误中的作用;然后阐述了智能化技术如AI在预测故障、优化资源中的应用;最后讨论了如何构建一个既自动化又智能的运维体系,以实现高效、稳定和安全的IT环境。
54 4