java代码和性能优化

云原生时代下的CICD应该关注什么

2019-05-30  本文已影响39人  DevOps亮哥

随着云计算技术的不断普及,企业上云已经是大势所趋,未来的企业在云端。云计算改变了目前的IT基础设施,改变了企业系统的架构,改变了技术团队的组织结构,也改变了企业内部的研发流程。在DevOps的整体框架中,持续集成(CI)和持续交付(CD)是提升交付效率的关键。在云原生时代,如何构建基于云计算的CICD流水线,实现应用程序的自动构建、自动测试和自动部署,提高发布频率?

随着微服务和云原生架构的广泛采用,对持续交付工具和实践需求日益旺盛,可用的CD工具也在不断增加,但并没有一个统一的工作流程规范,以提高工具之间可移植性。为此,Linux基金会在成立了云原生计算基金会(Cloud Native Computing Foundation,CNCF)后,于2019年3月12日又成立了持续交付基金会(Continuous Delivery Foundation,CDF),该基金会创立是将致力于使企业在多个CICD平台上更轻松的构建和复用DevOps管道,通过建立项目社区,促进围绕CICD的企业最佳实践和创新。

第一、云原生

云原生(Cloud Native)的定义:

云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中构建和运行弹性可扩展的应用。通过构建容错性好、易于管理和便于观察的松耦合系统,结合可靠的自动化手动,云原生技术可以使工程师能够轻松的对系统做出频繁和可预测的重大变更。

----CNCF定义

云原生技术包括:

微服务、容器、Serverless、Service Mesh、不可变基础设置、声明式API等。对于技术人员来说,这些是技术发展的趋势,其他的就不用多说了。

第二、CI/CD

CICD的主要作用就是使企业在提升开发和发布的迭代速度的同时,保证应用程序的质量。

CI(Continuous Integration)持续集成,表示研发人员对代码的每一次变更之后,都能直接编译和构建为可运行的二进制包,这些包可直接用于测试环节。

CD 代表持续交付(Continuous Delivery)和持续部署(Continuous Deployment),持续部署时更复杂。对于云原生的环境本质上来说更容易实现持续部署。

云原生环境下的kubernetes,lstio等工具都能支持持续部署,属于基础设施层面的支撑,能够很好的实现蓝绿部署和金丝雀部署。

蓝绿部署:蓝绿部署是两个相同的生产环境并行工作。一个是当前运行的生产环境,接收所有的用户流量(称为蓝)。另一个是它的副本,是闲置环境(称为绿)。两者使用相同的应用版本、配置和数据库后端。

金丝雀部署:金丝雀部署和蓝绿部署类似,只是分阶段进行。可以在生产环境中小范围部署新的应用代码,一旦应用发布,只有少数用户会被路由到新服务,当出现问题时,能最大限度的降低影响。

Kubernetes和lstio都支持这两种部署方式,因此,云原生环境下的CICD是依赖于Kubernetes和lstio平台里的高级发布功能来保障软件交付的稳定性。

作为DevOps的爱好者和构建者,需要学习和掌握:

云原生技术框架如:微服务、容器、Serverless、Service Mesh等

云原生基础平台如:docker、kubernetes、lstio、Rancher pipeline等

时代在快速发展,采用最高效的技术,实现云时代快速交付用户价值的目标。

参考:

高效开发运维:企业应该如何理解云原生CI/CD?

往期文章:

1、如何解决git版本冲突,才不会酿成大错

2、一篇文章学会使用gitk,排查git问题就靠它了

3、以解决问题为导向,才是成功的关键

上一篇下一篇

猜你喜欢

热点阅读