面向开发人员的 DevOps — 简介和版本控制( 二 )

  • 容器化: Docker 等容器化技术允许您以一致且可移植的方式打包和部署应用程序,从而更轻松地在开发、测试和生产环境之间移动应用程序 。
  • 编排:编排是指多个任务和流程的自动协调和管理,通常跨多个系统和技术 。在 DevOps 中,编排用于自动部署和管理复杂的多层应用程序和基础架构 。
    流行的编排工具包括 Kube.NETes、Docker Swarm 和 Apache Mesos 。这些工具允许团队管理和部署容器,自动扩展应用程序,并管理系统的整体健康状况和可用性 。
  • 监控和日志记录工具:监控和日志记录工具允许您跟踪系统和应用程序的性能和行为 。流行的监控工具包括 NagIOS、Zabbix 和 New Relic 。Prometheus 和 Grafana 大概是近几年这个领域最火的 。流行的日志记录工具包括 ELK Stack(Elasticsearch、Logstash 和 Kibana)、Graylog 和 Fluentd 。
  • 配置管理工具:配置管理工具,例如 Puppet、Chef 和 Ansible,可让您自动配置和管理您的服务器和应用程序 。
  • 云计算平台:云计算平台,例如 Amazon Web Services (AWS)、Microsoft Azure 和 google Cloud Platform (GCP) 。它们提供 DevOps 实践所需的基础设施和服务 。
  • 除了这些工具之外,了解 DevOps 实践和方法(例如敏捷)也很重要 。
    请记住,您需要学习的具体工具和技术取决于您的组织和您正在从事的项目的需求 。但是,通过深入了解 DevOps 中最常用的工具和技术,您将为应对各种项目和挑战做好充分准备 。
    大多数特性和功能都是可转移的 。如果您在一种工具中学习了 CI 原则,那么转移到另一种工具将不会是无缝的 。但这会相对容易 。
    版本控制我们都使用 Git,至少我希望如此 。Git 在版本控制方面的主导地位使得构建深度集成的解决方案变得更加容易 。作为开发人员,Git 主要被视为一个版本控制系统,可帮助我们管理和跟踪代码库的更改 。我们使用 Git 与其他开发人员协作、创建和管理分支、合并代码更改以及跟踪问题和错误 。Git 是开发人员必不可少的工具,因为它使他们能够高效且有效地处理代码项目 。
    DevOps 有不同的优势 。Git 被视为 CI/CD 管道的重要组成部分 。在此上下文中,Git 用作存储代码和其他工件(如配置文件、脚本和构建文件)的存储库 。DevOps 专业人员使用 Git 来管理发布管道、自动化构建和管理部署配置 。Git 是 DevOps 工具链的重要组成部分,因为它允许将代码更改无缝集成到 CI/CD 管道中,确保及时将软件交付到生产环境 。
    分支保护默认情况下,GitHub 项目允许任何人向主(master)分支提交更改 。这在大多数项目中都是有问题的 。我们通常希望阻止对该分支的提交,以便我们可以控制主线的质量 。在使用 CI 时尤其如此,因为 master 的中断可能会停止其他开发人员的工作 。
    我们可以通过强制每个人在分支上工作并向 master 提交拉取请求来最小化这种风险 。这可以通过需要一名或多名审阅者的代码审阅规则进一步采取 。GitHub 具有高度可配置的规则,可以在项目设置中启用 。正如你在这里看到的 。
    面向开发人员的 DevOps — 简介和版本控制

    文章插图
    在 GitHub 的 master 分支上启用分支保护有几个好处,包括:
    • 防止对 master 分支的意外更改:通过在 master 分支上启用分支保护,可以防止贡献者意外地将更改推送到分支 。这有助于确保主分支始终包含稳定且经过测试的代码 。
    • 强制代码审查:您可以要求对 master 分支的所有更改在合并之前由一个或多个人审查 。这有助于确保对 master 分支的更改是高质量的并符合您团队的标准 。
    • 防止强制推送:在 master 分支上启用分支保护可以防止贡献者将更改强制推送到分支,这可能会覆盖其他人所做的更改 。这有助于确保对 master 分支的更改是有意且经过仔细考虑的 。
    • 强制执行状态检查:您可以要求在合并对 master 分支的更改之前满足某些条件,例如通过测试或成功构建 。这有助于确保对 master 分支的更改是高质量的,并且不会引入新的错误或问题 。
    总的来说,在 GitHub 的 master 分支上启用分支保护有助于确保对代码库的更改得到仔细审查、测试和高质量 。这有助于提高软件的稳定性和可靠性 。
    处理拉取请求作为开发人员,我们发现使用分支和拉取请求允许我们收集多个单独的提交和对单个功能的更改 。这是我们作为开发人员的角色与 DevOps 的角色之间最先重叠的领域之一 。拉取请求让我们在将代码合并到主分支之前协作并审查彼此的代码 。这有助于识别问题并确保代码库保持稳定和一致 。通过拉取请求,团队可以讨论和审查代码更改,提出改进建议,并在错误投入生产之前发现错误 。这对于保持代码质量、减少技术债务和确保代码库的可维护性至关重要 。DevOps 的作用是调整质量与流失 。


    推荐阅读