GitOps肩膀重型多重云

企业组织现在喝从多重云计算资源日益迅猛的鸡尾酒,有一个大小相等,方向相反需要自动化的过程提供基础设施和在这些环境。GitOps可能最后王牌赢得下一个玩这个游戏吗?

  • 在Facebook上分享
  • 在Twitter上分享
  • 分享在LinkedIn
  • 在Reddit分享
  • 通过电子邮件分享
  • 印刷资源
云第一版连接抽象
盖蒂图片社

正如DevOps为开发人员和操作提供了一个更加统一的工作能力更好,GitOps提供基础设施,改变和集成智能现代云操作,使其运行。

GitOps是什么?

GitOps是什么和它如何适用于现代云计算软件工程环境吗?就像DevOps,在其核心,GitOps不是一个产品,一种技术或一个单一的服务。就像DevOps,最好被描述为一个操作框架。

提出Weaveworks GitOps创始人亚历克斯•理查森但现在正在进一步定义为原生云计算基础(CNCF)工作组共同创建了亚马逊,Codefresh, GitHub,微软和Weaveworks本身。的工作组定义GitOps组成的声明式配置、版本控制(例如Git),自动化交付和软件代理在一个封闭的循环。

,DevOps的一起开发(开发人员)和运维(操作)人们工作更共生相互goal-sharing;GitOps聚在一起的核心DevOps元素(包括版本控制、协作、合规+持续集成和持续部署(CI / CD)工具)将这些元素应用到基础设施自动化,在这种情况下是我们的高级运维。

根据GitLab夫人,GitOps = IaC + + CI / CD。在这个等式,IaC表示基础设施代码,夫人合并请求新代码在哪里带进一个主要(或树干)分支…当然,CI / CD上面定义。

GitOps存在因为DevOps开车的自动化基础设施、脚本仍然可以变得笨拙和工程师有时说很难找到当前的基础设施的“国家”。更不用说能够恢复到一个已知状态当事情出错。

与软件工程师GitOps合并拉请求将配置到“4”版本,例如。然后,软件代理的基础设施更新运行配置。而不是版本一堆DevOps脚本和只有有着千丝万缕的联系,是什么运行,配置和运行时环境可以被认为是一起被版本化。如果出现错误,我们可以回滚运行分支的状态版本“3”,让软件代理做他们的工作。

根据GitLab博客,“GitOps用于过程自动化提供基础设施。类似于团队如何使用应用程序源代码,运营团队,采用GitOps使用配置文件存储为代码(基础设施代码)。每次GitOps配置文件生成相同的基础设施环境部署,就像应用程序源代码生成相同的应用程序二进制文件每次建。”

这几乎是一个误称在某种意义上也就是GitOps Git从一开始,包括DevOps的元素,但它适用于云基础设施…因此,或许它应该被称为GitCloudOps,或只是GitCloud。我们不要去那里,继续前进,对吧?

在实践中GitOps &生产

组织在现实世界中使用多重云服务架构-这是一个部署的事实和多重云需要编排和智能基础设施发展。

企业部署多重云由于地理原因涉及速度和合规,他们将其部署到打破单一供应商锁定的枷锁…,多重云原因包括可靠性、价格、优化选项,甚至老式的个人服务。

这一事实意味着,没有两个私人,公共或混合云是一样的。尽管该行业标准化Kubernetes云集装箱编配,配置是不同的每一个云。亚马逊的弹性Kubernetes服务(的)需要不同的配置比微软Azure Kubernetes服务(部)或谷歌Kubernetes引擎(GKE)。

在实践中,这意味着系统工程师必须为每个实现维护不同的配置。但这只是它的一半,他们也必须保持不同的登录脚本和应用更改。如果一个脚本失败在一个环境,获得一个一致的状态通常是一个手动过程。

但是你这个,这是一个沉重的升力

即使一个软件团队采用基础设施代码方法,管理基础设施脚本在Git中,管理脚本跨一组Git存储库和树枝……然后确保正确的配置应用于正确的运行时环境是一个大量的工作。

考虑一个环境,一个云网络不仅跨越了亚马逊网络服务(AWS)和谷歌云平台(GCP),但多个区域、国家和可能包括一个网络边缘。由此产生的DevOps脚本和工作流是极为复杂的。熵和混乱的机会是深刻的,但这是许多系统工程师工作的环境。

进一步自动化显然是呼吁。

这里的技术建议GitOps使多重云和混合云的部署拓扑时变得更加复杂。云,Kubernetes声明方式和应用程序配置存储在Git中,允许为提交变更请求,批准的维护者和自动应用软件代理。

GitOps显然包括一些技术比如阿尔戈号或通量,但也是一组最佳实践和整体思维。而不是对一个环境运行脚本,软件工程团队声明配置,让它不断协调与实际运行。

今天你想去什么国家?

重构的奶酪从微软的广告“你今天想去哪里?云的一代”的口号;GitOps而言我们会说:你想要什么状态你的系统是在今天吗?我们声明系统的期望状态(定义为其基础设施),这样一个软件代理可以利用正确的配置制定国家…所以自动部署操作。

想法是GitOps对系统管理的方式对待一个代码回归即如果休息,你回滚该事务,让GitOps过程照顾校正系统。

有简单的教程开始使用GitOps使用一个开源工具像通量而且可能有价值的审计和回滚更改的能力,即使你不是管理大规模、复杂的系统。从Weaveworks商业供应商的解决方案类似,GitLab或Cloudbees还承诺进一步简化流程和做整合与现有CI / CD管道。

像任何技术,GitOps不能包治百病,会有两个小团队有自己的调整方法和更大的方面有自己的定制技术运行复杂的基础设施在多个云。但灵丹妙药,如果多重云部署变得越来越复杂和分散(提示:他们可能会),那么这个技术可以在原生云时代越来越普遍的作用。

相关: