没有开源,就不会有 DevOps

还没有读者喜欢这篇文章。
Core purpose

Opensource.com

如果我们要做 DevOps,我们就必须放弃开源。对吗?等等,我们是一个敏捷团队,所以我们也要放弃它。对吗?

在过去的五年左右,我与很多人交谈过,他们对“做 DevOps”意味着什么感到困惑,并且显然担心为了采用 DevOps 而不得不放弃其他已经证明其价值的东西。坏消息是,在 DevOps 社区,我们没有在早期阶段就明确定义 DevOps 是什么,不是什么。

这种模糊性助长了持续的困惑,并为一些投机分子滥用“DevOps”一词以谋取不正当利益创造了机会。这主要是因为一些opportunists只想用“DevOps”这个词来向你推销你本来不会关注的工具或服务。

事实上,没有开源,就不会有 DevOps。 有一连串的事件,我敢说是一个技术和理念的“完美风暴”,它们的崛起不可避免地导致了 DevOps 或类似事物的出现。

开源项目崛起,为我们提供了免费的操作系统,使现代动态网络在经济上成为可行。 Linux 和 GNU 并非最不重要的。 当然,中间件、关系型(和非关系型)数据库以及无数编程语言都通过开源社区崛起,为 DevOps 的成功提供了必要的技术支撑。

但更重要的是,开源是技术发展的同时,文化发展的孵化器。 Eric S. Raymond 的颠覆性文章大教堂与集市一夜之间向世界揭示了一个在全球范围内扩展软件项目的框架。 许多构成 DevOps 运动基础的价值观都存在,即使在开源运动的早期阶段也是如此。

随着开源的成熟,工具催生了更多的工具,从而产生了快速开发框架、持续集成工具和工作流程、单元测试框架等等,我们开始看到非常复杂的软件应用程序以惊人的速度被建立起来并交付给客户。 开源解决方案崛起,用虚拟机代替物理机器,用云实例代替虚拟机,用容器代替云实例。 IaaS、SaaS 和 PaaS 需要 DevOps 才能获得成功。

不容忽视的是 Linus Torvalds 对开源社区的最大贡献。 我不是在谈论 Linux,我指的是 Git。 Git 从高度协作的开发团队的角度重新构想了源代码管理 (SCM),这些团队的固有信任度较低、延迟较高,并且提交的补丁确实有效的举证责任较高。 分支曾经是一项计算成本高昂的操作,现在变得非常便宜,以至于成为现代软件开发的普遍方面。 同样,pull request 的出现促进了全新的开源协作浪潮。

如果您进入任何成功的 DevOps 组织并四处看看,不应该感到惊讶的是,工具的选择有利于跨团队或个人进行高度协作的开发,否则这些团队或个人可能会非常松散地耦合(因此,与在一个业务部门内工作的协作者相比,信任关系较弱)。 可以肯定的是,Git 将以某种方式被使用,因为其他 SCM 解决方案(如 cvs 和 subversion)不支持 DevOps 组织中普遍存在的这种全组织协作。

许多 DevOps 从业者非常重视共享。 我们分享我们的成功,我们分享我们的价值观以及我们从失败中吸取的教训,我们分享我们的指标,并且我们分享我们的代码。 并且我们以一种其他人可以有意义地贡献的方式分享我们的代码。 在没有开源的世界中,这不切实际。 该领域中最好的专有工具都基于开源工具,以及从它们支持的全球协作工作流程中涌现出来的文化。

我们曾经拥有没有 DevOps 的开源。 但是如果没有开源,我认为就不会有 DevOps。 成功采用 DevOps 需要强大的文化来支持它,并且我相信最好的 DevOps 文化都扎根于开源社区。

 

简单
DevOps

本文是 Greg Dekoenigsberg 协调的 Easy DevOps 专栏的一部分。 分享您的故事和建议,以帮助使 DevOps 实用——以及来自您的经验的工具、流程、文化、成功和光荣/不光荣的失败,请通过 open@opensource.com 联系我们.

标签
User profile image.
Magnus 从事 IT 行业已有 20 多年,并且一生都是技术爱好者。 他目前是 Groktopus LLC 的创始人兼负责人。 https://groktop.us

6 条评论

当涉及到商业管理理念时,模糊性通常是常态。

方法的改变是由必要性驱动的,而不是任何一套文化价值观。 更强大的机器总是会改变现有的关系。

一个与全球网络相连的通用个人通信和计算设备的可用性怎么可能不对一代人产生影响,就像没有电视和容易获得的乐器就不可能出现流行音乐的爆炸式增长一样?

开发方法更多的是对已经发生的事情的描述,而不是处方。 它们提供了一种交流实际情况的语言。

我仍然不知道 DevOps 是什么...

回复 作者 Eli Cummings (未验证)

DevOps 不是一个职位描述,它不是可以买卖的产品,它不是个人或团队的角色。 最好将其描述为一种理念,用于告知企业组织如何协同工作,以快速高效地向客户交付高质量、经过良好测试的软件。 DevOps 强调组织内所有业务部门之间的有效协作和沟通。 这些价值观和行为最好深深植根于企业文化中,并通过频繁分享经验教训(好的和坏的)来加强。 DevOps 商店的技术方面包括重复性任务的普遍自动化(如配置和部署),以及通过使用有效的测量和报告对产品基础设施和业务本身的深入理解。 DevOps 是一种解决技术驱动型业务中业务和技术挑战之间关系的手段。

回复 作者 dgrb (未验证)

我仍然不知道 devops 是什么.. (除了是一堆精心设计的营销术语,对任何不在管理层的人来说意义不大)。 作为一名系统管理员,我不知道 devops 是什么,我为什么要关心,或者应该如何实施。 它正在毁掉我 20 多年的职业生涯,而且我热爱并大力支持开源。 所以你告诉我我喜欢的东西是我讨厌的东西存在的原因……太好了…… 可悲的是,Rehat 似乎更像是“兜售该术语并从中获利的”公司之一,而不是帮助任何人实现实际可行的“devops”商店/我知道的技术领导者。 我们已经要求提供帮助数十次,我们得到的只是更多的营销 BS,告诉我们 Redhat 也完全不知道它(在实施方面)意味着什么。 因此,每个企业都必须知道它想要什么,而不知道它是什么。 这让 IT 部门很高兴,不是吗…… 我正在考虑去做一门手艺,真希望 20 年前就做了……

回复 作者 magnus919

我不相信这是真的,或者说这是一个“全有或全无”的论点。

开发和运营流程之间的集成达到集成团队 - 或方法 - 的程度与技术的性质(开放或不开放)无关。 这是责任的界限变得模糊,并演变成整体的东西。

开源几乎肯定地促进/加速/催化了DevOps…… 虽然要声称没有开源就不会有DevOps,或者声称一个的功劳归功于另一个,是我不能接受的。

抱歉,但在名为“开源”的东西变得时髦之前,伟大的团队就已经在执行与现在所谓的DevOps基本没有区别的开发流程了。 唯一的明显区别是:严格的纪律,关于什么内容会进入产品发布以及它对计划的影响,然后是什么内容会进入生产以及何时进入生产。 当停机以每分钟数百万美元计算时,人们会非常非常小心地避免破坏任何东西。

© . All rights reserved.