起因
需要将应用从阿里云迁移到微软云,重新部署应用。
一. 前置知识学习
CI/CD 是一组经常在现代软件开发中提到的实践,代表持续集成(Continuous Integration)和持续交付/部署(Continuous Delivery/Deployment)。这些实践旨在缩短软件开发周期、提高软件质量,并使软件的构建、测试和发布更加高效和自动化。
持续集成 (CI)
定义:
- 持续集成 是一种软件开发实践,在这种实践中,开发人员频繁地(通常是每天多次)将代码更改集成到共享存储库中。每次代码提交后,自动执行构建和测试,以确保新更改没有破坏任何东西并且与整个系统兼容。
目的:
- 早发现问题:通过频繁集成,可以尽早发现和解决冲突和错误,减少集成问题。
- 提高软件质量:自动化测试保证了新的更改没有破坏现有功能。
- 减少手动过程:自动化构建和测试减少了重复的手动工作。
持续交付/部署 (CD)
定义:
- 持续交付 是 CI 的扩展,它确保软件可以通过自动化测试后随时发布到生产环境,但需要手动触发最终的生产部署。
- 持续部署 是持续交付的进一步扩展,其中软件的发布过程也是自动化的,代码更改在通过所有测试后会自动部署到生产环境。
目的:
- 加快发布速度:自动化的发布流程可以加快从开发到生产的时间。
- 降低发布风险:通过频繁且小的发布,减少每次部署的风险。
- 提高生产率和可靠性:自动化和标准化的发布流程增加了部署的可靠性,并允许团队更快地响应市场变化。
工具和实现
实现 CI/CD 通常涉及使用各种工具,如 Jenkins、GitLab CI、Travis CI、CircleCI、Azure DevOps 等,这些工具可以帮助自动化构建、测试和部署过程。
总的来说,CI/CD 是现代敏捷软件开发的关键组成部分,帮助团队快速、高效地交付高质量的软件产品。
什么是Jenkins
Jenkins 是一个开源的自动化服务器,广泛用于实现持续集成和持续部署(CI/CD)的自动化流程。它是软件开发中用于自动化各种任务的一个非常强大的工具,包括构建、测试和部署应用程序。
主要特点
- 开源:Jenkins 是一个基于 MIT 许可的开源项目,允许免费使用和修改。
- 插件系统:Jenkins 拥有一个庞大的插件生态系统,提供超过 1500 个插件,支持几乎所有的开发、部署和自动化工具。
- 平台无关性:Jenkins 可以在任何支持 Java 的平台上运行,包括 Windows、MacOS 和各种版本的 UNIX/Linux。
- 易于安装和配置:Jenkins 可以通过 WAR 文件或使用包管理器(如 apt、yum)进行安装。它还提供了一个易于使用的 Web 界面来配置和管理。
- 支持多种版本控制系统:Jenkins 支持多种版本控制工具,如 Git、Subversion、Mercurial 等。
- 构建工具支持:支持多种构建工具,如 Maven、Ant、Gradle 等。
- 自动化构建/测试/部署:可以配置 Jenkins 任务来自动化代码的构建、测试和部署。
- 工作流编排:通过 Jenkins Pipeline,可以编写复杂的工作流程,以实现自动化的持续集成/持续部署流程。
- 分布式构建:Jenkins 支持分布式架构,允许将工作负载分配到多个机器,从而提高构建、测试和部署的效率。
使用场景
- 自动化构建:自动编译代码,生成构建产物。
- 持续集成:自动化合并代码更改,确保集成后的代码仍然可用。
- 自动化测试:运行自动化测试脚本,确保代码更改不会破坏现有功能。
- 持续部署:自动将应用程序部署到生产环境或测试环境。
总结
Jenkins 由于其灵活性、强大的功能和活跃的社区支持,在全球范围内被广泛使用,是实现 CI/CD 实践的关键工具之一。通过 Jenkins,团队可以大大提高软件开发的效率和质量,加快产品上市时间。
二. Jenkins图形化界面使用
如果我们是在中大型公司,一般会有专门的基础部门搭建好Jenkins,我们只需在内网找到地址并且通过自己账号密码登录即可,小石看到的页面是这种。
是不是一看到这些英文名称很迷?没关系,作为一个优秀的程序员,使用谷歌的中文翻译功能是基操,瞬间一目了然了有没有
拿到admin账号后,点击具体的一个项目,会进到如下页面
点击Build Now后,会看到下面正在构建镜像
点击该项目后点击"Console Output"能看到控制台具体报的错
如下可以看到本次报错是钉钉机器人连接超时导致的。因为小石这个Jenkins的网络问题,连接不到其他环境。
如果成功的话会是这样,有个蓝色图标
好了,大家已经掌握Jenkins基本的图形化使用了,快速去构建你的应用吧!