概念
??先看下docker官网给的相关文档 Continuous Integration (CI) and Continuous Delivery (CD) methodologies are key traits of a modern software development practice. Docker Enterprise Edition (Docker EE) can be a catalyst for this DevOps mindset, integrating with your preferred tools and existing practices to improve the quality and speed at which innovation is delivered. In our recent webinar, Integrating CI/CD with […] https://www.docker.com
??CI/CD 其实早在很多年前就已经诞生了,主要是为了将频繁的变更测试、构建、交付和部署等进行自动化,减少手工操作。 ? CI 持续集成主要是在代码更改时自动分支合并、构建并执行一系列的测试(包括单元测试、集成测试、端到端测试等),确保这些变更不会破坏原来的应用。 ? CD 持续交付和部署则是 CI 测试通过之后把构建结果存档、发布到预布环境和生产环境、最后再进行验收测试的过程。
??CI/CD 是 DevOps 的基础,CI/CD 侧重于软件开发过程中的自动化,而 Devops 则是侧重于文化构建,旨在减少开发、运维、QA之间的沟通鸿沟,促进快速可靠发布的同时还保证产品质量。
??CI/CD 一系列流程通常会组成一个流水线,docker和Kubernetes则可以简化这些流水线中的很多流程,比如Docker容器可以很容易把有冲突的环境隔离开来,而Kubernetes则更进一步简化整个流水线的构建、执行和维护工作。
CI/CD 工具的选择
??根据 CNCF 2019 年的调查报告,Jenkins 和 Gitlab 是当之无愧的 CI/CD 工具之首。当然,除此之外,还有很多其他的工具,比如 Spinnaker、Argo、Jenkins X、CircleCI、Github Actions 等等。 ??这些工具可以分为两类: ? 传统的 CI/CD 工具,典型的是 Jenkins 和 Gitlab,功能强大,配置灵活,使用场景没有限制。 ? Kubernetes native 工具,典型的是 Jenkins X 和 Argo,专为 Kubernetes 场景构建,跟 Kubernetes 生态紧密集成,但缺少灵活性。 ??其实,现在很多所谓的云原生实际上会以 Kubernetes 原生的方式落地,把 Kubernetes 变成整个基础设施的基础。从这个角度来说,我觉得使用 Kubernetes native 的工具实际上是更好的选择,不仅省去了跟 Kubernetes 集成的配置,还可以很容易跟社区内其他的工具打通。
??云效DevOps,阿里云提供的,这个不得不说的CIDI国产中比较爽的工具,而且,云效也真的做到的了CICD要做的事,而且,最爽的是,不用个人或者企业部署任何的CICD过程中的任何中间件。个人比较喜欢,中小企业的幸福。 网站:https://devops.aliyun.com/
CICD具体说明
道个图:比较简单的
开发环境:idea eclipse git maven等 代码管理:github gitlab 阿里code 私有代码库 私服管理:自己搭建、阿里云私服库 部署工具:传统的jenkins(用的比较多),阿里云效 ??Jenkins需要git maven jdk环境插件,webhook,jenkins拉取代码、构建、打包、打镜像、上传包/镜像、执行部署 docker镜像管理:docker hub 、私有化镜像库、阿里库 K8s:资源管理,这个包含了太多了,基本的pod,ingress网络,持久化,pods策略,监控等等
嗯。。。总结下,CICD说白话,就是简化部署流程了,代码提交,中间简化后,直接进入测试环节,不必关心中间环节了。就说这么多把
|