什么是 DevOps?

DevOps的定义

DevOps也称为开发运维。作为开发 (Dev) 和运营 (Ops) 的复合体,DevOps 是人员、流程和技术的结合,可不断为客户提供价值。

DevOps 对团队意味着什么?DevOps 使以前孤立的角色(开发、IT 运营、质量工程和安全)能够协调和协作,以生产更好、更可靠的产品。通过采用 DevOps 文化以及 DevOps 实践和工具,团队能够更好地响应客户需求,增强对他们构建的应用程序的信心,并更快地实现业务目标。
开发运维

DevOps 通过结合和自动化软件开发和 IT 运营团队的工作来加速交付更高质量的软件。

另外DevOps 更应是文化理念、实践和工具的结合,可提高组织高速交付应用程序和服务的能力:与使用传统软件开发和基础设施管理流程的组织相比,产品的发展和改进速度更快。这种速度使组织能够更好地为客户服务并在市场上更有效地竞争。

DevOps

如何进入 DevOps

直到 2000 年之前,大多数软件都是使用瀑布方法开发和更新的,这是一种大型开发项目的线性方法。软件开发团队将花费数月时间开发影响大部分或全部应用程序的大量新代码。由于更改如此广泛,他们又花了几个月的时间将新代码集成到代码库中。

接下来,质量保证 (QA)、安全和运营团队将花费更多的时间来测试代码。结果是软件版本之间存在数月甚至数年的时间,而且版本之间通常还会出现几个重要的补丁或错误修复。这种功能交付的“大爆炸”方法的特点通常是复杂且有风险的部署计划,难以安排与上游和下游系统的联锁,以及 IT 部门“寄希望于”业务需求在几个月内不会发生巨大变化制作“上线”。

为了加速开发和提高质量,开发团队开始采用敏捷软件开发方法,这些方法是迭代的而不是线性的,并且专注于对应用程序代码库进行更小、更频繁的更新。这些方法中最主要的是持续集成持续交付,或 CI/CD。在 CI/CD 中,每隔一两周就会将较小的新代码块合并到代码库中,然后自动集成、测试并准备部署到生产环境。敏捷将“大爆炸”方法演变成一系列“更小的快照”,这些方法也划分了风险。

这些敏捷开发实践越能有效地加速软件开发和交付,就越能将仍然孤立的 IT 运营——系统供应、配置、验收测试、管理、监控——暴露为软件交付生命周期中的下一个瓶颈。

所以 DevOps 源于敏捷。它添加了新的流程和工具,将 CI/CD 的持续迭代和自动化扩展到软件交付生命周期的其余部分。它在流程的每一步都实现了开发和运营之间的密切协作。

DevOps的一些演化

DevSecOps

DevSecOps 是“开发、安全和运营”的缩写,是安全软件开发与运营生命周期的一种概念实践。它可在软件开发生命周期的各个阶段自动集成安全性 - 从最初的设计到集成、测试、部署,一直到软件交付。

DevSecOps 可将应用和基础架构安全性无缝集成到敏捷和 DevOps 流程和工具中。 它可以在安全问题一出现就解决这些问题,处理起来更加得心应手、速度更快,且成本更低,并且不会将这些问题带入生产环境。此外,DevSecOps 使应用和基础架构安全性成为开发、安全和 IT 运营团队的共同责任,而不仅仅是安全团队一方的责任。 它支持“更安全、更迅速地交付软件”- 这是 DevSecOps 的座右铭,可在不减慢软件开发周期的情况下自动交付安全的软件。

BizDevOps

BizDevOps,也称为DevOps 2.0,是一种软件开发方法,它鼓励开发人员、运营人员和业务团队一起工作,这样组织就可以更快地开发软件,更好地响应用户需求,最终实现收益最大化。

推动BizDevOps运动的技术之一是实时分析。使用应用程序性能监视工具和分析工具,公司现在能够立即获得有关应用程序性能和最终用户行为的数据,并量化它对业务KPI的支持程度。在此之前,追踪这种级别的精细信息是不可能的;现在,业务目标可以驱动和指导应用程序开发和部署,直至最小的功能。

GitOps

DevOps的另一个变体,或者说是同一运动的不同派别,是GitOps。GitOps以其对同名存储库(repository)和版本控制(version control)技术的关注而命名,支持对应用程序和基础架构代码进行声明式源代码控制。关于软件的一切——从功能需求到部署环境——都来自一个单一的事实来源(single source of truth)。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容