我们大多数人在注意到 IT 博客圈或会议中的另一个新术语时,迟早会问一个类似的问题:“这是什么? 只是另一个流行语,一个“流行语”还是真正值得密切关注、研究和承诺新视野的东西?” 同样的事情也发生在我身上 Git 操作 前一段时间。 拥有许多现有文章以及公司同事的知识
顺便说一句,关于这个词的新颖性 Git 操作 我们最近的调查还表明:超过一半的受访者尚未开始遵循其原则。
因此,基础设施管理问题并不新鲜。 许多云提供商已经向公众开放了十几年,而且看起来应该使负责基础设施的团队的工作变得简单明了。 然而,与应用程序开发过程(自动化达到新的水平)相比,基础设施项目仍然经常涉及许多手动任务,并且需要专门的知识和专业知识,特别是考虑到当今对容错、灵活性、可扩展性和弹性的要求。
云服务非常成功地满足了这些要求,并且正是它们极大地推动了该方法的发展 交流电。 这是可以理解的。 毕竟,它们使得配置完全虚拟的数据中心成为可能:没有物理服务器、机架或网络组件;整个基础设施可以使用脚本和配置文件来描述。
那么到底有什么区别呢? Git 操作 从 交流电? 带着这个问题,我开始了我的调查。 经过与同事的交谈,我得出了以下比较:
Git 操作
交流电
所有代码都存储在 git 存储库中
代码版本控制是可选的
声明性代码描述/幂等性
声明性和命令性描述都是可以接受的
使用合并请求/拉取请求机制更改生效
协议、批准和协作是可选的
更新推出过程是自动化的
更新推出过程不标准化(自动、手动、复制文件、使用命令行等)
换句话说 Git 操作 正是通过应用这些原则而诞生的 交流电。 首先,基础设施和配置现在可以以与应用程序相同的方式存储。 代码易于存储、易于共享、比较和使用版本控制功能。 版本、分支、历史。 所有这些都在整个团队可以公开访问的地方。 因此,版本控制系统的使用就成为一种完全自然的发展。 尤其是git,最为流行。
另一方面,基础设施管理流程的自动化成为可能。 现在,这可以更快、更可靠、更便宜地完成。 此外,CI/CD 的原理在软件开发人员中已经众所周知并流行。 只需要将已知的知识和技能转移并应用到新的领域即可。 然而,这些实践超出了基础设施即代码的标准定义,因此出现了这个概念 Git 操作.
好奇心 Git 操作当然,事实上它不是与任何供应商相关的产品、插件或平台。 它更多的是一种范式和一组原则,类似于我们熟悉的另一个术语:DevOps。
该公司
GitOps 是一种采用用于应用程序开发的最佳 DevOps 原则(例如版本控制、协作、编排、CI/CD)的方法,并将其应用于自动化基础设施管理的挑战。
所有流程 Git 操作 我使用现有工具进行工作。 所有基础设施代码都存储在已经熟悉的 git 存储库中,更改与任何其他程序代码都经过相同的审批流程,并且部署过程是自动化的,这使我们能够最大限度地减少人为错误,提高可靠性和可重复性。
我们从实际的角度来描述 Git 操作 如下所示:
我们已经讨论过基础设施即代码是这个公式的关键组成部分之一。 让我们介绍一下其余的参与者。
合并请求(又名拉取请求)。 用流程术语来说,MR 是应用代码更改然后合并分支的请求。 但就我们使用的工具而言,这更多的是一个全面了解所有所做更改的机会:不仅是从一定数量的提交中收集的代码差异,还包括上下文、测试结果和最终预期结果。 如果我们谈论基础设施代码,那么我们感兴趣的是基础设施将如何变化,将添加或删除、更改多少新资源。 最好采用一些更方便且易于阅读的格式。 对于云提供商来说,最好了解这一变化的财务影响。
但混合现实也是一种协作、互动和沟通的方式。 这是制衡制度发挥作用的地方。 从简单的意见到正式的认可和认可。
好吧,最后一个组件:CI/CD,正如我们所知,可以自动化基础架构更改和测试的过程(从简单的语法检查到更复杂的静态代码分析)。 以及随后的漂移检测:系统的真实状态和期望状态之间的差异。 例如,由于未经授权的手动更改或系统故障。
是的,这个词 Git 操作 不会向我们介绍任何全新的东西,也不会重新发明轮子,而只是将已经积累的经验应用到新的领域。 但这正是他的强项所在。
如果您突然对这一切在实践中的表现感兴趣,那么我邀请您看看我们的
-
实施 GitOps 的基本原则
-
创建并更改云基础设施(以 Yandex Cloud 为例)
-
使用主动监控自动检测系统偏离所需状态的情况
https://bit.ly/34tRpwZ
来源: habr.com