【云原生】持续集成&持续部署

本文主要总结CI/CD的流程,不会详细介绍每个知识点。

啥是集成?啥是部署?

集成,就是把应用程序、相关环境、配置全局打包放在一个容器中的操作。部署就不解释了。

CI/CD

如果是自己手动部署的话,流程应该是这样的:

  • 在本地打包成jar包
  • 将jar包上传至服务器
  • 在服务器上其他环境,比如jdk环境
  • 在服务器上启动该服务
  • 如果有代码更新,就先更新代码,然后重复上述步骤

现在有了CI/CD(持续集成/持续部署)之后,这个操作流程就变成自动化的了。下图是一个k8s+jenkins实现CI/CD的示意图:

Docker&K8S

一文带你认识「Docker」与「k8s」 - 掘金
在K8S中,有很多个pod,每个pod对应一个namespace(命名空间)。
每个pod中,有很多个container容器,每个container对应一个应用程序。
如果写成树结构,就是这样的:

K8S
    pod1(namespace1)
        container11(应用程序)
        container12(应用程序)
        ...
    pod2(namespace2)
        container21(应用程序)
        container22(应用程序)
        ...
    ...

Nginx-ingress

现在应用程序在每个容器中运行起来了。那用户如何通过k8s访问到内部的应用呢?用Nginx-ingress。
Kubernetes(k8s)Ingress原理 - 大数据老司机 - 博客园


实现上来说,就是加一个.yaml配置文件,用于将请求映射到k8s中某个运行的容器。然后应用 yaml 到 k8s kubectl apply -f <yaml文件名>,至此,就可以通过配置的域名进行访问了。

总结

如果自己要进行CI/CD,步骤应该是这样的:

  • 写好代码,push到代码托管平台
  • 代码托管平台封装Docker镜像(CI)
  • K8S拉取Docker镜像,并运行(CD)
  • 用户访问服务,Nginx根据用户的请求将请求转发到K8S中对应的运行的应用(Nginx-Ingress)
  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
持续集成(Continuous Integration,CI)和持续交付(Continuous Delivery,CD)是 DevOps 实践中的两个核心概念。它们的现状如下: 1. 持续集成CI)的现状: - CI 已成为现代软件开发的标准实践之一。越来越多的团队采用 CI 来确保代码的高质量和稳定性。 - CI 工具(如 Jenkins、GitLab CI/CD、Travis CI 等)变得更加普及和强大,提供了丰富的功能和灵活的配置选项。 - CI 环境越来越容易管理和扩展,可以根据项目需求进行灵活的配置和调整。 - CI 流程越来越自动化,包括代码检查、单元测试、集成测试等环节,通过自动化流水线实现快速反馈和持续集成。 2. 持续交付(CD)的现状: - 持续交付是在持续集成的基础上进一步推进的概念,旨在实现软件的快速、可靠交付到生产环境。 - CD 工具和平台的发展迅速,如 GitLab CI/CD、Jenkins X、Spinnaker 等,它们提供了集成的功能,包括构建、测试、部署、监控等。 - 容器化和云原生技术的兴起促进了持续交付的实践,使得应用程序可以更加便捷地部署和管理。 - CD 流程中的自动化测试和验证变得更加重要,包括功能测试、性能测试、安全测试等,以确保软件交付的质量和稳定性。 - DevOps 团队越来越注重持续交付的策略和文化,通过持续改进和反馈循环,不断提高交付的速度和质量。 总体而言,持续集成持续交付作为 DevOps 实践的关键要素,目前已经得到广泛采用和应用。CICD 工具的发展和成熟,以及容器化和云原生技术的推动,为实现快速、高质量的软件交付提供了强大的支持。不断改进和演进的 DevOps 实践将继续推动持续集成持续交付的发展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值