博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
devops定义_在层中定义DevOps
阅读量:2525 次
发布时间:2019-05-11

本文共 3200 字,大约阅读时间需要 10 分钟。

devops定义

DevOps是什么? 我认为这是每个DevOps初学者都会问的一个问题。

如果您问10个人这个问题,您很可能会得到10个不同的答案。 这肯定说明了DevOps的普遍性,开放性,但也说明缺乏明确的定义或实现。 这并不一定是一件坏事,但是对于DevOps的行家和职业女性来说,这可能会很困难。

有人会回答您的问题,“这是一种文化,因为它打破了壁垒”或“是Jenkins管道,因为它们可以帮助您更快地交付软件。” 这些不是可怕的答案,但我的意思是最好的方式

可能的话,
它们离完整的答案还很遥远 。 因此,它们完全是错误的。

DevOps不是一种文化,一套工具,流程和程序,也不是有关运营和开发的学术理论。 通过尝试用这些术语定义DevOps,我相信我们会错过DevOps的大图,因为实际上,DevOps就是所有这些,甚至更多。

您的DevOps定义可能取决于您在组织中的级别。 这是因为不同级别对公司的总体目标有不同的看法。 高层管理者的视野为50,000英尺,团队负责人的视野为20,000英尺,工程师在杂草中处于不同的位置。 这些是这些人操作的抽象级别。 因此,DevOps对他们每个人来说意味着不同的事情。

抽象级别

我最近读了Niklas Modig写的一本很棒的书,叫做《 。 他详细介绍了“精益”定义的详尽列表如何使“精益”是什么令人困惑。 Modig将这些定义分解为他所谓的“抽象级别”。 在这里,我将对DevOps做同样的事情,并且我将使用Modig的水果示例来解释这个概念。

一块水果

假设您在咖啡厅,然后向咖啡师索要一块水果。 您期望得到什么? 切片还是整个? 特定颜色? 一片梨和整个梨有很大的不同,红色和绿色的苹果也是如此。 这是我们的最低抽象级别,因为我们正在处理影响个人,团队,组织或公司的细节,但没有比这更广泛的了。

就DevOps而言,它将类似于:“我们是否在Jenkins中编写脚本或声明性管道?” 流程和程序,个人和团队的决定仅影响他们的团队甚至组织。 例如,我不能指望为团队A编写的管道会在它们被拾取并放入团队B的存储库中的情况下起作用。这些团队的工作情况大不相同,所以我编写的管道非常不同每个都不同。 我可能会从一个方面学到知识和想法,但在另一个方面则有所不同。

一种水果

在中间的抽象层次上有不同的成果。 当您问咖啡师一块水果时,您会得到哪种水果? 梨或苹果,但是水果的颜色和分段并不重要。

我们也可以在DevOps中做到这一点:“我们使用Jenkins还是GitLab CI?” 或“我们使用GitHub还是Bitbucket?” 或“我们使用云解决方案还是在内部托管?” 这些决定会影响公司中的整个组织,甚至可能影响整个公司(如果它们决定整体企业工具的业务)。 尽管我为团队A编写的管道无法为团队B开箱即用,但我仍在编写Jenkins声明性管道,因为至少从现在开始,我的组织使Jenkins成为我们的工具。

一篮水果

最后一个抽象层是一篮水果,或“水果就是水果”的概念。 在我们的示例中,当您问咖啡师一块水果时,她伸手拿到一个黑色的袋子里,拿出她的手先碰到的任何水果。 梨和苹果没有区别。 他们只是水果。

在DevOps中,“这是一种文化”的定义非常适合。 组织可能会决定要在软件交付方面实现更多自动化,或者打破开发人员和运营团队之间可能存在的障碍。 这是一组在纸上看起来很棒的概念,但是没有人定义实现细节。

申请黄金圈

我们仍然需要为DevOps定义,我认为没有比将模型应用于我们的水果层更好的方法了。 在Sinek的模式,组织做某种方式的东西(“ 什么 ‘)(’ 如何 ‘)为了某种目的(’ 为什么 ”)。 Sinek提出“为什么”是公司最重要的决定性因素。 黄金圈可以为当前和潜在客户确定差异化因素。 同样,要定义DevOps,我们首先需要了解“为什么”是有意义的。

为什么会这样呢?

Sinek写道,阐明“为什么”之所以如此有力,是因为它可以帮助其他人与公司建立情感联系,并提高忠诚度和灵感。 在DevOps中,这是文化定义所起的关键作用,但我们还需要更多。 如果我们对“为什么”的回答是我们实施了DevOps以便更快地向客户交付软件,那么我们就无法建立情感联系。

相反,如果“为什么”是“在整个公司垂直领域联系客户的需求,以便在对客户最重要的情况下优先处理对客户最有价值的工作”? 这将建立与客户共鸣的联系。 他们可以相信我们重视他们的成功,因为这意味着我们的成功。 对于员工而言,他们现在看到了他们的创新和创造力如何为我们最看重的价值,客户,而不只是我们的底线贡献价值。

我们如何交付原因?

当我们定义不解释“为什么”和“什么”的“原因”时,我们非常精确,因为这样做的目的是激发我们的员工和同事确定我们的交付方式和交付方式。 在DevOps中,这完全符合文化的概念,但是“如何”定义了文化。 在Sinek的著作中可以清楚地看到这一点,他将“为什么”的问题与公司的价值和实力联系起来。 我相信这些是刻画公司文化特征的驱动因素。

我们如何将客户需求与公司垂直行业联系起来?

在开发运维之前,公司中的不同组织/团队/小组普遍拥有不同的工作,而对于大多数人来说,这是他们所知道的全部工作。 他们有标准的操作程序(SOP),定义了操作方式和操作方式,但是个人很难知道他们如何为整体做出贡献。 DevOps打破了各自为政的局面,而不是由像ops和dev这样的垂直行业组成的团队,而是由水平行业组成的团队。 也许这些团队专门针对特定客户或特定软件功能。 关键是团队由满足客户需求所需的所有专业知识组成,而不仅仅是待办事项中的凭单。

我们如何在正确的时间交付客户需求?

在当今市场上,拥有最大的功能集,最佳的用户体验和最出色的客户服务是远远不够的。 这些都是简单的增值。 这意味着它们可以增加价值,但不会促使客户选择我们而不是竞争对手。 他们不再定义我们的行业。 客户可以通过我们发布的时间和适用性来确定价值。 我们如何满足他们的需求,是将重点放在客户身上,而不是别人认为会增加利润的下一个项目。 我们在正确的时间交付的方式是前者与自动化相结合的组合,可以简化我们的交付,使其可重复,稳定,安全和更快。

在正确的时间,我们用什么来满足需求?

如果正确完成,领导层将定义“为什么”和“如何”,但将“什么”留给组织和团队。 “什么”由在给定情况下有意义的工具和定义的过程组成,但可能对整个组织乃至不同公司都不有意义。 例如,我的团队写了声明性的Jenkins管道,因为我们喜欢它进入门槛较低,而不是必须学习Groovy才能管理管道。 公司中的其他组织仅依靠脚本化管道,因为他们的团队更适合于为Java虚拟机(JVM)开发。 无论如何,“什么”是细节团队用来推动公司满足“为什么”的要求。

什么是DevOps?

答案是,这取决于。

这取决于您的角色,要应用的抽象级别,最重要的是,要为其定义DevOps的公司,组织或团队是什么。 我认为,C级领导层应该了解所有抽象层次和黄金圈的各个层面,至少是顺带一提。 但是要小心,仅定义“为什么”,并可能在“如何”中起作用。 激发公司的其他成员提出“如何”和“内容”的详细信息。 对于个人贡献者,在开发团队/组织/公司将用来使自己在竞争中脱颖而出的“内容”时,要大胆,有创造力,突破障碍并在框外思考。

我相信DevOps是打破障碍,打破规范,提供质量,公司与客户的共生关系,不断改进和学习的动力—仅仅是一种职业生活方式。 我希望您在本文中发现了价值,并能激发您继续DevOps的旅程。 它是漫长而永无止境的,就像人生中许多宝贵的旅程一样。 我希望有一天能在路上见到你。


接下来要读什么

翻译自:

devops定义

转载地址:http://gmczd.baihongyu.com/

你可能感兴趣的文章
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_5_Stream流中的常用方法_map...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_6_Stream流中的常用方法_count...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_7_Stream流中的常用方法_limit...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_8_Stream流中的常用方法_skip...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_3_Stream流中的常用方法_filter...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_10_练习:集合元素处理(传统方式)...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_9_Stream流中的常用方法_concat...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_11_练习:集合元素处理(Stream方式)...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第4节 方法引用_1_方法引用基本介绍...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第4节 方法引用_2_方法引用_通过对象名引用成员方法...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第4节 方法引用_5_方法引用_通过this引用本类的成员...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第4节 方法引用_7方法引用_数组的构造器引用...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第4节 方法引用_3_方法引用_通过类名引用静态成员...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第1节 基础加强_3_Junit_使用步骤...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第4节 方法引用_6_方法引用_类的构造器(构造方法)引用...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第2节 反射_5_反射_概述
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第1节 基础加强_2_Junit_测试概述...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第2节 反射_7_反射_Class对象功能概述...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第1节 基础加强_4_Junit_@Before&@After...
查看>>
阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第2节 反射_9_反射_Class对象功能_获取Constructor...
查看>>