架构设计
本文的架构制图主要基于
C4模型
,通过自顶向下对系统的静态结构进行逐级拆分,依次描述各层次对象的职责、关系和外部依赖
#
Level1: System Context diagramWhat is CI/CD 首先,既然我们要做的自动化CI/CD工具,那先看下它是什么,它要做什么;
CI 持续集成;强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起
CD 持续交付/持续部署;在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中
从两张网络图片可以看出,CI/CD是一个流程
- 开发人员开发完某个功能
- 触发了构建触发器(提交代码webhook或者手动触发等)
- 构建服务器接收到请求,开始通知调度器开始构建任务(打包、测试、反馈)
- 然后如果是CD,还会继续将构建结果部署到服务器
- 持续把任务结果反馈给开发
#
Level2: Container diagram所以可以看出我们要做工作分成三大容器:
- 触发器:
CLI
、UI
、webhook - Web Application:接收触发请求、连接调度器、反馈构建结果、团队/应用/日志管理、权限控制
- 调度器:任务处理器,支持插件扩展
#
Level3: Component diagram继续将容器功能细化,就可以得出功能模块图