方案概述
DevOps是一组过程、方法与系统的统称,通过一系列手段来促进开发(应用程序/软件工程)部门与技术运营和质量保障(QA)部门之间的密切沟通、高效协作与整合。通过自动化的软件交付和架构变更流程,让规划、开发、构建、测试、发布、部署、维护都能更快、更频繁、更可靠,保障开发结果的稳定可靠。随着微服务、中台架构的兴起,DevOps重要性日益显著。
方案架构
该方案使用Gitlab和Jenkins来实现容器应用的自动化构建和持续部署,其中Gitlab提供了源码管理和版本控制的功能,而Jenkins则负责进行容器应用的构建和部署。并且为了保证生产环境和测试环境互不影响,该方案使用了两个独立的Kubernetes集群进行高度隔离,分别用于测试环境和生产环境。
以下是从源码编译、镜像构建、应用测试到生产上线的全流程示例:
- 首先在Gitlab中创建一个新的Git仓库,并将其与Jenkins进行关联。
- 在Jenkins中创建一个新的构建作业,并配置其使用Gitlab的Git仓库。
- 在构建作业中,配置编译器和构建参数,以便从Git仓库中获取源代码并进行编译。
- 在构建成功后,将编译生成的镜像推送到SWR镜像仓库中。
- 在测试环境中,使用Kubernetes集群来部署这个镜像。
- 测试通过并经过审批后,将此镜像部署到另一个Kubernetes集群的生产环境中。
方案优势
- 从代码提交到部署上线,实现全流程自动化,极大提高交付效率。
- 使用容器化构建应用程序,做到即开即用,可实现低成本复用。
- 多Kubernetes集群隔离,保证测试、生产环境独立运行、互不影响。