菜单

什么是开发运营?

侧面放置的灰色放大镜

DevOps 是一种不断演变的理念和框架,倡导更快更优化的应用程序开发,以及更快地向客户发布新的或修订的软件功能或产品。

DevOps 实践有助于应用程序开发团队 (Dev) 与其 IT 运维团队 (Ops) 的同事之间实现更顺畅、持续的通信、协作、集成、可见性和透明度。

“Dev”和“Ops”之间这种密切关系贯穿 DevOps 生命周期的每个阶段:从初始软件规划到编写代码、开发、测试和发布阶段,再到部署、运维和持续监控。这种关系推动了持续的客户反馈循环,包括进一步改进、开发、测试和部署。这些工作的一个成果是更快地持续发布必要的功能变更或新增功能。

有些人将 DevOps 目标分为四类:文化、自动化、衡量和共享 (Culture, Automation, Measurement, and Sharing, CAMS),DevOps 工具可以辅助实现这四个方面的目标。这些工具可以使开发和运维工作流更加简化和协作,自动化执行先前在集成、开发、测试、部署或监控中涉及的耗时的手动或静态任务。

DevOps 为何如此重要

除了努力消除开发团队与 IT 运营团队之间沟通和协作的障碍之外, DevOps 的核心价值还包括客户满意度和更快交付价值。DevOps 还旨在推动业务创新,推动持续改进流程。

DevOps 实践有助于更快、更好、更安全地为企业的最终客户提供业务价值。业务价值可能体现在更频繁的产品版本、功能或更新。这可能涉及到产品版本或新功能能够以多快的速度发布给客户 — 均具有适当的质量水平和安全级别。或者,也可能体现在快速发现问题或错误,然后予以解决并重新发布。

底层基础架构也支持 DevOps,在软件首次开发和测试后投入生产时,可提供无缝的性能、可用性和可靠性。

DevOps 方法

企业可以使用几种常见的 DevOps 方法来加快和改进开发和产品发布。它们采用软件开发方法和实践的形式。最受欢迎的是 Scrum , KANBAN 和 Agile :

  • 擦除。Scrum 定义了团队成员应如何协同工作来加快开发和 QA 项目的进度。Scrum 实践包括关键工作流和特定术语( sprints , time boxes , daily scrum [meeting] )以及指定角色( Scrum Master ,产品所有者)。
  • " 一个 " 。这是从丰田工厂车间获得的效率中获得的。根据此信息,您需要在一个白板上跟踪正在进行的软件项目工作( WIF )的状态。
  • 敏睿、早期的敏捷软件开发方法继续对 DevOps 实践和工具产生巨大影响。包括 Scrum 和 KANBAN 在内的许多 DevOps 方法都融入了灵活编程的要素。一些灵活的实践涉及到更好地响应不断变化的需求和要求,将需求记录为用户案例,执行日常实例以及整合持续的客户反馈。敏捷性还规定了较短的软件开发生命周期,而不是冗长的传统 " 瀑布式 " 开发方法。

开发运营工具链

开发运营实践的遵从者通常会将某些开发运营友好型工具作为其开发运营 " 工具链 " 的一部分。 这些工具的目标是进一步简化,缩短和自动化软件交付工作流(或 " 管道 " )的各个阶段。许多此类工具还宣传开发和运营团队之间自动化,协作和集成的核心 DevOps 原则。下面显示了在开发运营生命周期各个阶段使用的工具示例。

  • 规划。此阶段有助于定义业务价值和要求。示例工具包括 Jira 或 Git ,可帮助您跟踪已知问题并执行项目管理。
  • 代码此阶段涉及软件设计和软件代码创建。示例工具包括 GitHub , GitLab , Bitbucket 或 Stash 。
  • 构建。在此阶段,您可以管理软件构建和版本,并使用自动化工具帮助编译和打包代码,以便将来的版本投入生产。您使用的源代码存储库或软件包存储库也是产品版本所需的 " 打包 " 基础架构。示例工具包括 Docker , Ansible , Puppet , Chef , Gradle , Maven 或 JFrog Artifactory 。
  • 测试、此阶段需要持续测试(手动或自动),以确保最佳代码质量。示例工具包括 JUnit , Codeception , Selenium , Vagrant , Testng 或 BlazeMeter 。
  • 部署、此阶段可以使用一些工具来帮助管理,协调,计划和自动将产品发布到生产环境中。示例工具包括 Puppet , Chef , Ansible , Jenkins , Kubernetes , OpenShift , OpenStack , Docker 或 Jira 。
  • 运营。此阶段用于在生产期间管理软件。示例工具包括 Ansible , Puppet , PowerShell , Chef , Salt 或 Otter 。
  • 监控。此阶段涉及识别和收集生产中特定软件版本中的问题信息。示例工具包括 New Relic , Datadog , Grafana , wiwig , Splunk , Nagios 或 Slack 。

DevOps 实践

DevOps 实践体现了持续改进和自动化的理念。许多实践都侧重于一个或多个开发周期阶段。这些实践包括:

DevOps 的优势

开发运营倡导者介绍了几项业务和技术优势,其中许多优势可以让客户满意。DevOps 的主要优势如下:

  • 更快,更好地交付产品
  • 更快地解决问题并降低复杂性
  • 更高的可扩展性和可用性
  • 运营环境稳定性提高
  • 提高资源利用率
  • 自动化程度更高
  • 系统运行结果可见性提高
  • 更强的创新能力

开发运营历史

许多用于简化软件开发和部署的开发运营方法在敏捷软件开发和精益编程方面具有早期的基础。但是,开发运营最初是从几个基层组织发展而来的,目的是协调开发人员及其运营团队对应人员的活动。

21 世纪初,我们发现需要保持 Google 和 Flickr 等热门网站的可用性,以防止出现大量点击。这种需求导致使用软件可靠性工程师( SRE ),即运营人员与开发人员密切合作,以确保在代码投入生产后站点能够持续运行。

2009 年,在一次会议上, Flickr 工程师 John Allspaw 和 Paul Hammond 介绍了自己的类似于开发运营的方法。他们的演示文稿标题为 " 每天部署 10 多人:在 Flickr 上开展开发和运营合作 " 。 同年, Patrick Debois 在比利时组织了第一个 "DevOps 日 " 。此外,随着在全球举办更多的开发运营日,还加入了 #DevOps 话题标签,并获得了势头。

在未来几年中,我们开发了行业和开源工具和框架,并提出了进一步推进 DevOps 目标的建议。

NetApp 和 DevOps

NetApp 通过 DevOps 帮助促进更好的业务成果:运营团队以更少的工程设计提供自动化基础架构,开发人员在可靠且可预测的环境中创建,而摩擦更少。借助 NetApp ® 技术,您可以信心十足地提供企业所需的服务和功能,以便在内部环境和云环境中最大限度地提高开发人员的工作效率。

借助 NetApp ,开发人员,测试, QA 和运营团队可以轻松地将基础架构资源(例如永久性存储卷)用作代码,所有这些资源都可以通过 DevOps 管道中熟悉的工具来实现。例如, NetApp 存储 API 以及 IAC 与 Puppet , Ansible , Docker , Kubernetes 和 OpenShift 等工具的集成。

但是, NetApp 并不只是让开发人员轻松地将存储用作代码。NetApp 技术还可以让运营部门放心地为开发和测试人员配置和交付资源。然后,开发人员和测试人员可以通过自行配置快照或克隆等快速节省时间的存储功能来加快编码和测试周期。借助这些功能,实时生产数据或代码集的副本只需几秒钟或几分钟即可配置为代码,从而加快开发和 QA 工作流的速度。

NetApp 对社区的承诺扩展到了 thePub。此开发人员社区鼓励合作,分享提示和技巧,并围绕最新的 DevOps 实践和协议展开辩论。

继续阅读有关开发运营的信息

Drift chat loading