Sonar代码扫描

4530 未经授权,禁止转载了解课程
课程介绍
讨论{{interaction.discussNum ? '(' + interaction.discussNum + ')' : ''}}
适合人群
运维工程师、DevOps工程师
你将会学到
掌握微服务模式下CI/CD流水线的设计与实现
  • 从零开始实践基于Jenkins的微服务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框架流程的实现。


展开更多
发布
头像

{{ item.user.nick_name }} {{ EROLE_NAME[item.user.identity] }}

置顶笔记
讨论图
{{ item.create_time }}回复
  • 删除

    是否确认删除?

    确认
    取消
  • {{ item.is_top == 1 ? '取消置顶' : '置顶'}}

    已有置顶的讨论,是否替换已有的置顶?

    确认
    取消
{{ tag.text}}
头像
{{ subitem.user.nick_name }}{{ EROLE_NAME[subitem.user.identity] }}
{{ subitem.create_time }}回复
删除

是否确认删除?

确认
取消
发布
{{pageType === 'video' ? '讨论区抢占沙发,可获得双倍学分' :'讨论区空空如也,你来讲两句~'}}
发布
{{tips.text}}
{{ noteHeaderTitle }} 笔记{{ hasMyNote ? '我的笔记' : '记笔记' }}
{{ hasMyNote ? '我的笔记' : '记笔记' }}
优质笔记
更新于:{{ $dayjs.formate('YYYY-MM-DD HH:mm:ss', item.last_uptime*1000) }}
头像
{{ detail.username }}

公开笔记对他人可见,有机会被管理员评为“优质笔记”

{{ noteEditor.content.length }}/2000

公开笔记
保存
提问

讲师收到你的提问会尽快为你解答。若选择公开提问,可以获得更多学员的帮助。

记录时间点
记录提问时视频播放的时间点,便于后续查看
公开提问
提交