GitOps –用于简单设施自动化的DevOps
GitOps提供了一种自动化的管理基础架构的方法。它通过使用许多团队已经使用的DevOps最佳实践来做到这一点,例如版本控制,代码审查和CI/CD管道。 由于DevOps具有提高生产力和软件质量的巨大潜力,因此公司一直在采用它。在此过程中,我们找到了使软件开发生命周期自动化的方法。但是,当涉及到基础架构的设置和部署时,它仍然主要是手动过程。 借助GitOps,团队可以自动化基础架构的配置过程。这是由于可以使用声明文件将基础结构编写为代码(IaC)。我们可以将它们存储在Git存储库中,就像存储应用程序开发代码一样。 GitOps如何工作? GitOps概念最初由Kubernetes管理公司Weave w orks提出。因此,围绕GitOps的讨论主要是在Kubernetes的背景下进行的。向在容器中运行的微服务的转变带来了对业务流程平台的需求。基于容器的应用程序可能很复杂,并且难以进行供应和管理。GitOps通过应用DevOps世界中成熟的技术来帮助简化此过程。 如今,这个想法已成为DevOps爱好者的青睐,代表了IaC概念的升级模型。它围绕三个主要组成部分:
让我们分别看看它们。 基础架构即代码 IaC是作为声明文件(存储为代码)来配置和管理基础结构的一种做法。通过利用IaC和版本控制团队,可以优化所有操作程序。 GitOps围绕IaC的声明式模型。这就是为什么Kubernetes是实现的一个很好的例子。声明式意味着配置更多是对预期状态的声明,而不是一组命令。例如,在Kubernetes中,您可以在清单中定义服务所需的Pod数量。然后,系统将自行处理。无需工程师编写命令脚本即可获得所需的容器编号。 任何符合声明性模型的云原生软件都可以视为代码。我们使用AWS CloudFormation(一种声明性工具)编写AWS基础架构。这意味着我们可以将基础架构本身视为代码。将所需状态声明为代码。系统应用更改以自动实现该状态。 话虽如此,声明性模型并不是必须在GitOps中受益。您也可以在命令式定义的环境中执行操作。 拉取要求 GitOps概念背后的主要思想是版本控制系统是真实的唯一来源 。我们将Git用作应用程序代码的变更管理系统。我们也可以将其用于基础结构代码。因此,整个声明文件集都位于一个可以协作的地方。这使我们能够使用Git的关键概念-对操作更改的Pull 请求。 在应用开发工作流程中,我们使用一个主分支作为发布分支。开发人员从主分支创建功能分支。开发特定功能或故事,完成后创建Pull 请求以将其合并回主分支。相同的方法对于基础结构代码很方便。
创建拉取请求可使代码在集成到代码库的另一个分支之前,先经过代码审查过程。代码审查阻止不良代码进入测试或生产环境。这对于基础结构代码而言甚至更为重要。通过代码审查获得正式批准对审核和故障排除很有帮助。 (编辑:平顶山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |