没有开源,就不会有 DevOps

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

Opensource.com

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

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

这种模糊性助长了持续的困惑,并为可疑地盗用“DevOps”一词以获取不正当利益提供了机会。这主要来自那些只想使用“DevOps”这个词来向你推销他们的工具或服务,否则你根本不会注意的投机分子和无赖。

事实上,如果没有开源,就不会有 DevOps。有一连串的事件,我敢说是一场技术和理念的“完美风暴”兴起,这使得 DevOps 或类似的东西的兴起成为必然。

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

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

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

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

如果你进入任何成功的 DevOps 组织并环顾四周,那么工具倾向于促进跨团队或个人的高度协作开发,而这些团队或个人可能以其他方式非常松散地耦合(因此,与在一个业务部门内工作的合作者相比,信任关系较弱),这应该不足为奇。可以相当肯定地假设 Git 将以某种方式被使用,因为其他 SCM 解决方案(如 cvs 和 subversion)无法促进 DevOps 组织中普遍存在的跨组织协作。

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

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

 

简单
DevOps

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

标签
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”商店的技术领导者。我知道。我们已经要求帮助数十次,我们得到的所有帮助都是更多的营销废话,告诉我们 Redhat 也不知道它意味着什么(在实施方面)。因此,每个企业都应该在不知道它是什么的情况下知道它想要它。这会让 IT 部门感到高兴,不是吗……我正在考虑去做一份手艺,希望我 20 年前就做了……

回复 ,作者:magnus919

我不相信这是真的,或者这是一个“非此即彼”的论点。

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

开源几乎肯定地帮助/加速/催化了 DevOps……尽管声称你不可能在没有另一个的情况下拥有一个,或者声称一个的存在归功于另一个,这不是我接受的。

对不起,但是在任何名为“开源”的东西变得非常时髦之前,伟大的团队就已经在进行开发流程,这些流程与现在所谓的 DevOps 本质上没有区别。有一个明显的区别:关于产品发布及其对计划的影响,以及然后什么进入生产以及何时进入生产的严格纪律。当停机时间以每分钟数百万美元来衡量时,人们会对破坏事物变得非常非常小心。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.