【完结13章】云时代必修课-云原生CI/CD(持续集成与交付)全流程实战
CI/CD 包含了一个 CI 和两个 CD,CI全称 Continuous Integration,表示持续集成,CD包含 Continuous Delivery和 Continuous Deployment,分别是持续交付和持续部署,三者具有前后依赖关系。
CI/CD 包含几个整体流程:
持续集成:
开发人员频繁地将代码合并到主分支,所有的构建和测试都会每天自动执行,以确保主分支代码每天都是可以就绪发布的。
CI 需要具备这些:
全面的自动化测试
这是实践持续集成&持续部署的基础,同时,选择合适的 自动化测试工具也极其重要;
灵活的基础设施
容器,虚拟机的存在让开发人员和 QA 人员不必再大费周折;
版本控制工具
如 Git,CVS,SVN 等;
自动化的构建和软件发布流程的工具,如 Jenkins,flow.ci;
反馈机制。如构建/测试的失败,可以快速地反馈到相关负责人,以尽快解决达到一个更稳定的版本。
持续交付/部署:
所有通过集成和交付的最新代码可以自动部署到(类)生产环境。持续部署主要好处是,可以相对独立地部署新的功能,并能快速地收集真实用户的反馈。持续交付和持续集成的优点非常相似:
快速发布。能够应对业务需求,并更快地实现软件价值。
编码->测试->上线->交付的频繁迭代周期缩短,同时获得迅速反馈;
高质量的软件发布标准。整个交付过程标准化、可重复、可靠,
整个交付过程进度可视化,方便团队人员了解项目成熟度;更先进的团队协作方式。从需求分析、产品的用户体验到交互 设计、开发、测试、运维等角色密切协作,相比于传统的瀑布式软件团队,更少浪费。
单体应用的常规流水线
从历史上看,单体应用的 CI/CD 流程有一个相同的特征,每个项目都有一个单一的,相当复杂的流水线,不同的项目之间的流水线又截然不同,每个单体应用的流水线几乎总是连接到一个单独的 Git 仓库。
云原生持续交付产品的特点包括:
1. 自动化构建和测试:自动执行代码的构建、测试和打包过程,以确保代码质量和功能完整性。
2. 容器化和编排:使用容器技术(如Docker)和容器编排工具(如Kubernetes)来标准化应用部署和运行时环境。
3. 基础设施即代码(IaC):通过代码来定义和管理基础设施,提高基础设施的可重复性和一致性。
4. 声明式部署:使用声明式配置文件来描述应用的部署状态,而不是命令式脚本,这使得部署过程更加可靠和可重复。
5. 环境管理:支持创建和管理多个隔离的环境,如开发、测试和生产环境,以便在不同的阶段使用。
6. 监控和日志:集成监控和日志工具,以实时跟踪应用性能和问题诊断。
7. 安全性和合规性:内置安全最佳实践,如自动化的安全扫描和合规性检查。
8. 可观测性:提供对系统内部状态的洞察,帮助团队快速识别和解决问题。
9. 协作和沟通:支持团队协作,包括通知和警报,确保团队成员之间的沟通和协作。
10. 多云和混合云支持:能够在多种云平台和混合云环境中运行,提供灵活的部署选项。
云原生持续交付产品的目标是简化CI/CD流程,提高软件交付的速度和质量,同时降低运维成本和风险。通过利用云原生技术,这些产品可以帮助组织更快地响应市场变化,实现更高效的软件开发和交付。![QQ截图20240824144245.png](http://static.itsharecircle.com/240825/e403940ca4a5eaf84f1318c3b254b6d7.png)
0 回复
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码`
- 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传