基于Jenkins的微服务工程CI/CD流水线开发设计

掌握微服务模式下CI/CD流水线的设计与实现

Ratings: 4.50 / 5.00




Description

你将会学到:

  • 从零开始实践基于Jenkins的微服务CI/CD流水线实践

适合人群:

运维工程师、DevOps工程师

课程目标:

掌握微服务模式下CI/CD流水线的设计与实现

课程简介:

近几年DevOps的发展迅速,持续集成(CI)持续部署(CD)作为DevOps的核心相信大家都很熟悉了。更多公司开始使用CI/CD服务来解决频繁集成与发布问题。

随着服务架构由单体到微服务架构, 传统的VM虚机到容器化技术飞速发展。对持续交付工具的需求越来越多。微服务带来了许多优点,例如:将复杂的单体服务根据功能拆分成若干个微服务,每个服务可以独立部署互不影响。微服务的不断增多,在进行集成和部署的工作时通常需要花费大量的协调时间,这使微服务模式下的持续交付变得越来越复杂。

微服务划分的影响,如下:

  • 需求管理:哪个任务/故事需要关联到哪个服务?手动关联?

  • 代码管理:代码库如何划分?一个代码库?多个代码库?分支策略?

  • 持续集成:CI流水线该如何设计?一条?两条?多条?....

  • 持续部署:CD流水线该如何设计?一条?两条?多条?....

在微服务持续集成的过程中,微服务测试是非常重要的。没有充分的单元测试就无法确定服务是否可靠的。当然不能仅仅是单元测试,考虑到复杂性,本课程主要是想分享给大家一个基础的CI/CD交付框架,提供核心的实现,但部分细节问题还需在实际环境中补充完善。



课程内容

  • 理论篇:单体应用到微服务架构所面临的挑战与问题。

  • 实践篇:基于DevOps工具链落地CI/CD。自动化一切可自动化操作。

模块一:微服务简介

了解微服务的基本特点和CI/CD遇到的一些挑战。掌握微服务的基础知识即可。

模块二:微服务模式下的需求管理

需求如何管理?采用SCRUM项目,创建任务和故事关联对应的服务模块。

模块三:微服务模式下的代码管理

代码库如何拆分?多个仓库模式和单个仓库。版本控制系统的分支开发策略如何选择?(这部分会与需求管理做集成实践:多服务模式下 避免手动创建分支,自动化创建分支,需求与代码关联,自动合并代码。)

模块四:微服务模式下的持续集成

持续集成流水线设计与实现,提交流水线实现(单个git仓库如何根据不同的子目录触发对应的流水线构建?)多模块如何进行代码扫描?代码扫描结果关联Commit信息控制代码合并。(例如代码质量阈失败,不允许合并代码。)

模块五:微服务模式下的持续部署

持续部署是在持续集成的基础上,可以使用sed替换yaml使用kubectl部署,或者使用Helm部署,超大型规模可以使用专业的CD工具完成交付(包含部署策略)。

模块六:总结

总结课程所有理论内容,完成整个CI/CD框架流程的实现。


What You Will Learn!

  • 掌握微服务的基本概念
  • 掌握JenkinsCI/CD流水线的实践
  • 基于微服务的CI/CD流水线设计
  • 基于Jira的端到端流水线实践

Who Should Attend!

  • 对CI/CD以及DevOps感兴趣的同学