要了解DevOps的含义,需要对其进行分解。
DevOps是什么?我认为这是每个DevOps初学者都会问的问题。
如果问10个人这个问题,很可能会得到10个不同的答案。这肯定说明了DevOps的普遍性,开放性,但也说明缺乏明确的定义或实现。这并不一定是一件坏事,但是对于DevOps的职业者和职业女性来说,这可能会很困难。
有人会回答您的问题,“这是一种文化,因为它打破了壁垒”或“是Jenkins管道,因为可以帮助更快地交付软件。”这些不是可怕的答案,但我的意思是最好的方式。
可能的是,远没有完整的答案。因此,它们完全是错误的。
DevOps不是一种文化,一套工具,流程和程序,也不是有关运营和开发的学术理论。通过尝试用这些术语定义DevOps,我相信会错过DevOps的大图,因为实际上,DevOps就是所有这些,甚至更多。
DevOps定义可能取决于在组织中的级别。这是因为不同级别对公司的总体目标有不同的看法。高层管理者的视野为50,000英尺,团队负责人的视野为20,000英尺,工程师在杂草中处于不同的位置。这些是这些人操作的抽象级别。因此,DevOps对他们每个人来说意味着不同的事情。
抽象级别
最近,我读了Niklas Modig写的一本很棒的书《 This is Lean》。他详细介绍了“精益”定义的详尽列表如何使“精益”是什么令人困惑。 Modig将这些定义分解为所谓的“抽象级别”。在这里,我将对DevOps做同样的事情,并且将使用Modig的水果示例来解释这个概念。
一块水果
假设在一家咖啡馆,然后向咖啡师索要一块水果。期望得到什么?切片还是整个?特定颜色?一片梨和整个梨有很大的不同,红色和绿色的苹果也是如此。这是最低抽象级别,因为正在处理影响个人,团队,组织或公司的细节,但没有比这更广泛的了。
对于DevOps,这将类似于:“我们是否在Jenkins中编写脚本或声明性管道?”流程和程序,个人和团队的决定仅影响他们的团队甚至组织。例如,我不能指望为团队A编写的管道会在它们被拾取并放入团队B的存储库中的情况下起作用。这些团队工作的内容非常不同,所以我编写的管道非常不同。每个都不同。可能会从一个方面获得知识和想法,但在另一个方面却会有所不同。
一种水果
在中间的抽象层次上有不同的成果。当问咖啡师一块水果时,会得到哪种水果?梨或苹果,但是水果的颜色和分段并不重要。
也可以在DevOps中做到这一点:“我们使用Jenkins还是GitLab CI?”或“我们使用GitHub还是Bitbucket?”或“我们使用云解决方案还是在内部托管?”这些决策会影响公司中的整个组织,甚至可能影响整个公司(如果它们决定整体企业工具的业务)。尽管我为团队A编写的管道无法为团队B开箱即用,但我仍在编写Jenkins声明性管道,因为至少从现在开始,我的组织使Jenkins成为首选CI / CD工具。
一篮水果
最后一个抽象层次是一篮子水果,或“水果就是水果”的概念。在示例中,当问咖啡师一块水果时,她伸手拿到一个黑色的袋子里,拿出她的手先碰到的任何水果。梨和苹果没有区别。只是水果。
在DevOps中,“这是一种文化”定义非常适合。组织可能会决定要在软件交付方面实现更多自动化,或者打破开发人员和运营团队之间可能存在的障碍。在纸上看起来,这是一组概念,但没有人定义实现细节。
申请黄金圈
仍需要为DevOps定义,我认为没有比将Simon Sinek的Golden Circle模型应用于水果层更好的方法了。在Sinek的模型中,组织出于某种目的(“为什么”)以某种方式(“如何”)做某事(“什么”)。 Sinek提出“为什么”是公司最重要的决定性因素。黄金圈可以为当前和潜在客户确定差异化因素。同样,要定义DevOps,首先需要了解“为什么”是有意义的。
为什么会这样呢?
Sinek写道,阐明“为什么”之所以如此有力,是因为它可以帮助其他人与公司建立情感联系,并提高忠诚度和灵感。在DevOps中,这是文化定义所起的关键作用,但还需要更多。如果对“为什么”的回答是,我们实施了DevOps来更快地向客户交付软件,那么就无法建立情感联系。
相反,如果“为什么”是“在整个公司垂直领域联系客户的需求,以便在对客户最重要的时候优先考虑为客户带来最大价值的工作”?这将建立与客户共鸣的联系。他们可以相信我们重视他们的成功,因为这意味着我们的成功。对于员工而言,他们现在看到了他们的创新和创造力如何为我们最看重的价值,客户,而不只是我们的底线贡献价值。
如何交付原因?
当定义不解释“为什么”和“什么”的“原因”时,我们非常精确,因为这样做的目的是激发员工和同事确定交付方式和交付方式。在DevOps中,这完全符合文化的概念,但是“如何”定义了文化。在Sinek的著作中可以清楚地看到这一点,他将“为什么”的问题与公司的价值和实力联系起来。我相信这些是刻画公司文化特征的驱动因素。
如何将客户需求与公司垂直行业联系起来?
在开发运维之前,公司中的不同组织/团队/小组普遍拥有不同的工作,而对于大多数人来说,这是他们所知道的全部工作。他们有标准的操作程序(SOP),定义了操作方式和操作方式,但是个人很难知道他们如何为整体做出贡献。 DevOps打破了各自为政的局面,而不是由像ops和dev这样的垂直行业组成的团队,而是由水平行业组成的团队。也许这些团队专门针对特定客户或特定软件功能。关键是团队由满足客户需求所需的所有专业知识组成,而不仅仅是待办事项中的凭单。
如何在正确的时间交付客户需求?
在当今市场上,拥有最大的功能集,最佳的用户体验和最出色的客户服务是远远不够的。这些都是简单的增值。这意味着它们可以增加价值,但不会促使客户选择我们而不是竞争对手。他们不再定义我们的行业。通过发布的时间和适用性,客户可以确定价值。如何满足他们的需求,是将重点放在客户身上,而不是别人认为会增加利润的下一个项目。在正确的时间交付方式是前者与自动化相结合的结合,可以简化交付过程,使其可重复,稳定,安全和更快。
在正确的时间,用什么来满足需求?
如果正确完成,领导层将定义“为什么”和“如何”,但将“什么”留给组织和团队。 “什么”由在给定情况下有意义的工具和定义的过程组成,但可能不适用于整个组织甚至不同的公司。例如,我的团队写了声明性的Jenkins管道,因为我们喜欢它进入门槛较低,而不是必须学习Groovy才能管理管道。公司中的其他组织仅依靠脚本化管道,因为他们的团队更适合于为Java虚拟机(JVM)开发。无论如何,“什么”是细节团队用来促使公司满足“为什么”的要求。
什么是DevOps?
答案是,这取决于。
这取决于角色,要应用的抽象级别,最重要的是,要为其定义DevOps的公司,组织或团队是什么。我认为,C级领导层应该了解所有抽象层次和黄金圈的各个层面,至少是顺带一提。但是要小心,仅定义“为什么”,并可能在“如何”中起作用。激发公司其他成员提出“如何”和“内容”的细节。对于个人贡献者,在开发团队/组织/公司将用来使自己在竞争中脱颖而出的“内容”时,要大胆,有创造力,突破障碍并在框外思考。
我相信DevOps是打破障碍,打破规范,提供质量,公司与客户的共生联系,不断改进和学习的动力—仅仅是一种职业生活方式。我希望您在本文中发现了价值,并能激发您继续DevOps的旅程。它是漫长而永无止境的,就像人生中许多宝贵的旅程一样。我希望有一天能在路上见到你。
本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系外文翻译,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。