Close

什么是 DevOps 文化?

DevOps 文化如何帮助调整人员、流程和工具,以实现更加统一的客户导向服务。

Headshot of Tom Hall
Tom Hall

DevOps 推广人员和从业人员


协作

DevOps 是实现组织变革的一种敏捷开发方法,旨在弥合孤立团队之间的传统分歧,并建立促进协作的新流程。虽然新工具和敏捷开发工程实践使 DevOps 成为可能,但并不足以实现 DevOps 的优势。没有正确的思维方式、方法和文化,很难实现 DevOps 的全部优势。

人员和文化是成功实施 DevOps 的首要因素。
- Atlassian 2020 年 DevOps 趋势调查

什么是 DevOps 文化?


从本质上讲,DevOps 文化要求开发和运营团队在创建和维护产品期间进行更密切的协作和责任共享。这有助于公司调整人员、流程和工具,以实现更加统一的客户导向服务。

它涉及培养对产品整个生命周期负责的多学科团队。DevOps 团队可以自主工作,并采用软件工程文化、工作流程和工具集,将运营要求提升至与架构、设计和开发同等重要性的水平。开发人员对“谁构建,谁运行”的理解使其能够更接近用户,并更好地了解用户要求和需求。随着运营团队更多地参与到开发过程中,他们可以为获得更好的产品来增加维护要求和客户需求。

DevOps 文化的核心就是提高过去孤立工作的团队之间的透明度、沟通和协作。但要使这些团队更加紧密地结合在一起,还需要完成至关重要的文化转型。DevOps 是一种强调持续学习和持续改进的组织文化转型,尤其是通过团队自主性、快速反馈、高度同理心和信任以及跨团队协作来实现。

Mindful thinking logo
相关资料

接受客户至上的理念

Trophy logo
相关资料

了解 DevOps 优势

DevOps entails shared responsibilities. Development and operations staff should both be responsible for the success or failure of a product. Developers are expected to do more than just build and hand off to operations — they are expected to share the responsibility of overseeing a product through the entire course of its lifetime, adopting a "you build it, you run it" mentality. They test and operate software and collaborate more with QA and IT Ops. When they understand the challenges faced by operations, they are more likely to simplify deployment and maintenance. Likewise, when operations understand the system’s business goals, they can work with developers to help define the operational needs of a system and adopt automation tools.

自主团队是 DevOps 的另一个重要方面。为了让开发和运营团队进行有效的协作,他们需要在没有繁琐冗长的批准流程的情况下做出决策并执行变更。这涉及团队之间的信任,并要求创造一个不惧失败的环境。这些团队应该拥有适当的流程和工具,以根据客户面临的各种风险等级更快速、更轻松地做出决策。

例如,典型的开发工作流程可能需要来自不同团队的多名贡献者参与才能部署代码变更。开发人员进行代码更改并将其推送到源代码控制存储库,构建工程师则负责构建代码并将其部署到测试环境中,而产品负责人在事务跟踪工具中更新工作状态等。自主团队将利用可自动执行这些流程的工具,这样推送新代码就会触发在测试环境中构建和部署新功能,且事务跟踪工具会进行自动更新。

例如,团队会受到一些要求的限制,如必须和单独的运营团队创建工作单才能完成极小的基础架构变更(如添加新的 DNS 条目)。一项原本只需几秒钟就能完成的任务,结果却要几天或几周的时间才能完成。无论是让团队中拥有适当技能和经验的个人,还是通过访问自助服务工具,自主团队都能够自行实现此类变更。

DevOps 团队文化重视快速反馈,这有助于持续改进统一的开发和运营团队。在开发和运营团队孤立工作的环境中,将应用软件在生产中的性能和稳定性反馈信息反馈给开发团队通常很慢(如果有反馈的话)。DevOps 运营人员在设计和实施应用监控和报告策略时进行协作,以确保开发人员能够获得快速反馈,从而快速迭代和改进应用代码。例如,任何功能足够强大的持续集成工具都可以自动构建和测试新的代码推送,并为开发人员提供有关其代码质量的即时反馈。

自动化对 DevOps 文化至关重要,因为它可以实现良好的协作并释放资源。实现软件开发团队和 IT 团队之间的流程自动化和集成可帮助他们更快速、更可靠地构建、测试和发布软件。

What are the benefits of DevOps culture?


The most obvious and impactful benefit of embracing a DevOps culture is streamlined, frequent, and high-quality software releases. This not only increases company performance, but also employee satisfaction.

A DevOps culture fosters high levels of trust and collaboration, results in higher quality decision making, and even higher levels of job satisfaction, according to the book “Accelerate: Building and Scaling High Performing Technology Organizations.”

Embracing a DevOps culture is key to building a high-performing engineering organization without sacrificing employee contentment. It’s a win-win. For an engineer there is nothing like the feeling of frequently and easily deploying and running stable, high-performing software that makes its users happy, and for executives the improved business outcomes are a hit.

What are the challenges?


Fully embracing a DevOps culture usually requires individuals and teams to make significant changes to how they work, and therefore requires buy-in at the highest levels of the organization.

A grassroots effort can be, and often is, an important starting point for getting management and executive-level buy-in for a DevOps transformation. Often the most compelling argument in favor of broader DevOps adoption is when a few individuals or small teams adopt a DevOps approach and begin demonstrating success.

The high levels of autonomy and trust that are typical in a DevOps culture can be difficult to cultivate if there is a history of conflict between any of the individuals or teams involved. The more siloed the teams were before attempting to adopt a DevOps approach, the harder it will be to build connections.

Change is hard. Even in environments where there is a high level of harmony between the existing individuals and teams, if the benefits of change aren't clearly articulated and understood, it can be difficult to drive acceptance and willingness to put in the work.

Understandably, organizations with a strong engineering mindset often jump immediately to tools and technologies to solve business challenges. Yes, there are tools and technologies that can help your organization transition to a DevOps approach. But changing tools and technologies without changing the culture is often called “cargo-cult DevOps” since it changes the facade without addressing the weakness in the foundation.

向 DevOps 文化过渡的注意事项


开放式沟通

DevOps 力求应对的其中一项最基本的挑战就是不同组织单位中的知识、经验和工作的孤立。当编写代码的编程人员与部署和维护代码的系统管理员不进行沟通时,就可能会出现效率低下的问题。

犯错的能力

很多组织、团队和个人都会对自己和对方施加巨大的压力,以求永不犯错。如果失败不是一种选择,那么个人或团队都不太可能会尝试一种新方法来解决问题或开发创新功能。

这种思维方式反映在过去就是沉迷于测量“平均故障间隔时间”(MTTR) 而非“平均恢复时间”(MTTR)。MTBF 使用诸如“根本原因分析”一类的工具来确定故障来源并尝试防止其再次发生。MTTR 反映了将软件应用视为复杂系统(这些系统容易以不可预测的方式出现故障)的观点,并专注于在出现故障时快速恢复。

“无指责的回顾”是 DevOps 文化的共同特征。当冲刺或项目结束时,如果团队在一个开放且安全的环境中开会讨论哪些方面做得好以及哪些方面有待改进,结果就会得到改善。

不指责失败的这一方法之所以行之有效,部分原因在于它采用了一种成长型思维模式,同时承认错误会发生,但在运营时假设个人和组织都能够学习、成长和改进。
- “有效的 DevOps”,作者:Jennifer Davis 和 Katherine Daniels

一组新的流程

培养 DevOps 文化需要使用新方法解决老问题。DevOps 需要改变编程人员编写应用代码并将其“扔”给部署和运营应用的运营团队的孤立流程。DevOps 方法要求开发和运营团队在项目的整个生命周期中协同工作。

持续集成和持续交付 (CI/CD) 通常被认为是 DevOps 文化的所必需的。第三个流程(即持续部署)为 Netflix 等大型组织所采用和推广,但大多数小型公司并未普遍采用(或要求采用)。这是因为在生产环境中持续部署新功能需要高度的自信,确信新代码已经过全面测试并且可以安全地部署(例如:在功能切换后)。因此,除非您的组织每天进行多次部署,否则对支持这种方法的流程进行投资可能并不值得。

多数情况下,进行一些“主干开发”将大大简化您的 CI/CD 工作。在此模型中,团队取消了长期存在的功能分支,并对代码的“主干”分支进行频繁提交。

主干开发的一个重要组成部分就是全面的自动化测试:单元测试、集成测试和回归测试。这有助于确保所有至主干分支的新提交在推送到存储库时都已经过彻底审查。

持续集成是将多个贡献者的代码变更自动集成到软件项目中的流程。这不局限于开发团队,还包括组织的其他部门。例如,产品团队可协调何时按顺序发布功能和修复,以及将由哪些团队成员负责。

持续交付是一种组织方法,它将设计、产品和营销等工程团队和非工程团队结合在一起,以便交付产品。没有 CD 的环境鼓励“各管一摊”的行为,即开发人员将 QA 团队视为主要的用户体验对象。这意味着存储库的“主干”分支始终处于“可部署”状态。

持续部署允许在进行代码变更时将其自动部署到生产环节,此类变更既可隐藏在功能标记后面,部署到一小部分客户中,也可/或是轻松回滚。如此一来,团队便可更灵活地响应不断变化的市场和客户需求,因为团队可以对客户反馈做出反应,并快速部署和验证新功能。他们还可以轻松回滚功能,使团队不会因为构建中断而受阻。

功能标记、功能切换或模糊部署是确保新应用功能在部署到生产环境中时无法呈现或不起作用的常见方法,且能非常轻松地开启。此战略支持持续部署,因为它几乎不会对用户造成不利影响。通常情况下,通过按地理位置对功能进行细分或运行单独的服务器实例,然后将功能只发布给一台用户可访问的服务器,可将功能限制在用户群的某一子集内。

更新的工具链

大多数软件开发团队都至少使用某种类型的版本控制、事务跟踪和应用监控工具。所有这些都是支持 DevOps 文化的重要工具,但对于传统工具集来说,最重要的补充是支持 CI/CD 的软件。拥有可以进行提交、测试和部署的自动化工作流程实际上是获得 DevOps 文化所需的快速反馈的唯一方法。

DevOps - a cultural shift that yields results


Developers have been chasing the dream of delivering software more frequently, with less effort, and fewer bugs for decades. Now, the tools and practices to make this a reality are finally here.

Atlassian found that organizations practicing DevOps say they ship higher quality deliverables (61%), with increased deployment frequency and faster time to market (49%). And it’s not just organizations who reap the benefits, practitioners say they’ve learned new skills (78%) and received a raise (48%).

Cultivating a DevOps culture can be challenging, but the rewards in increased satisfaction for developers, managers, and customers alike are worth it.

Are you looking to improve your DevOps culture? Start with the Service Team Health Monitor. Also, practice communicating, collaborating, and brainstorming with colleagues with the Top 4 Plays for Building a DevOps Culture.

Tom Hall
Tom Hall

Tom Hall 是 DevOps 流程的倡导者和实践者,他热爱阅读,还是一名业余钢琴家。
过去 20 年,他获得了 Novell、EMC、VMware 和 AWS 的认证。2016 年,他在亚特兰大协助主办了 DevOpsDays,之后数年又在德克萨斯州奥斯汀协助主办了 DevOPSDays。


分享这篇文章
下一个主题

推荐阅读

将这些资源加入书签,以了解 DevOps 团队的类型,或获取 Atlassian 关于 DevOps 的持续更新。

Devops 示意图

DevOps 社区

Devops 示意图

模拟研讨会

地图插图

免费试用

注册以获取我们的 DevOps 新闻资讯

Thank you for signing up