在当今竞争激烈的环境中,你须要在不影响质量的状况下快速交付软件特性。可是对于大多数组织来讲,能跟上当前最新的版本管理实践技术,并能和传统的操做过程和谐共存是很困难的。git
如今,随着开发人员采起端到端“你构建,你拥有”的方法来实现软件的开发过程,他们须要使用他们最熟悉的工具和方法来快速适应变化。数组
在最近的伦敦Continuous Lifecycle会议上,Alexis Richardson发表了题为“GitOps: Git Push All the Things”的主题演讲,他讨论了行业挑战,包涵当前CI/CD发展趋势和如何将这些工具与进程的操做与监控融合起来。此外,Alexis还阐明了如何运用GitOps更好的实践,开发人员可使用其最熟悉的工具来控制开发与操做管道。安全
GitOps能够归纳为如下原则:工具
1.全部能够被描述的内容都必须存储在git中spa
经过使用Git做为开发事实的来源,从业人员能够观察集群并将其与所需的状态进行比较。策略、代码、配置项,甚至监控事件和版本控制均可以实现。将全部内容都置于版本控制系统后,全部咱们提交的变化都被聚合起来,这样那些咱们提交的没有被应用的代码也有可能被再应用起来。.net
2.不能直接使用Kubectl命令行
广泛来讲,使用命令行工具集“kubectl”来直接部署到集群并非个好办法。许多人士使用他们的CI工具驱动部署,然而这样作可能会给产品开发带来众所周知的安全漏洞。版本控制
3.使用符合操做模式的Kubernetes控制器blog
使用遵循操做模式的Kubernetes控制器,你的集群老是经过已核对好的Git的配置文件与“真实之源”保持同步。因为你的集群的指望状态保存在Git中,所以你能够观察到它与运行的集群的差别。进程
Alexis进一步阐述了第三点,他描述了如何经过比较Git中所需的状态和运行中的集群状态,来观察差别,并在两种状态不一样步的时候提醒您的团队。经过在集群中安装Kubernetes操做符,不只从认证的角度来看部署更安全,并且还容许有效的控制和反馈环。你的团队可使用这些数据来迭代和改进产品特性以及集群基础设施的更新。
若是你描述了全部的东西,并将其保持在版本控制中,那么能够被描述的东西既能够被验证也能够被自动化。这为您提供了在版本控制中保持系统的正确描述并使用它来自动化整个系统的机制。” - Alexis Richardson
观看完整演讲打开以下地址: https://youtu.be/uWzgmmCzdF4