问题描述
在一个回答的评论部分,解释了提问者是一个“实践DevOps的(系统)工程师”,而不是一个DevOps工程师,这是一个“重要的区别”,通常不被理解。那么,什么使得DevOps工程师不是DevOps工程师?系统工程师和DevOps工程师之间的区别是什么,这通常不被理解?
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
这个评论的意思是,DevOps是一种工作方式,一种文化,而不是一个职位头衔。关于这个问题有很多博客文章可以参考。
虽然他们有一定的观点,但也可以说,立体派是一种绘画方式,但“立体派画家”仍然是完全有效的。
这是一个潜在的长期而主观的讨论,超出了这个论坛的范围。
关键是,DevOps的定义对于实际工作中从事DevOps的人具体做什么以及他们使用什么样的工具来做什么的具体细节太缺乏了,以至于作为一个职位头衔没有任何实际用途。这就是为什么它经常被误解和滥用的原因。而且几乎总是有更好的头衔来描述这份工作。
例如,如果你的工作只是在Jenkins中设置流水线,那么你可能会被称为“DevOps工程师”。然而:
– 专门化的工作与DevOps的理念相悖。
– “Jenkins专家”是一个更合适的头衔。这只是一个例子,还有更好的名称。
这个头衔在现在的大多数公司中都被避免使用,通常被“自动化工程师”取代。虽然这个头衔仍然含糊不清,但比DevOps工程师更明确。
回到评论的具体内容,很多时候在公司中安装Jenkins(等等)的人是系统工程师。他们可能还向公司其他人解释了它的工作原理,甚至使用了DevOps这个术语来解释其背后的理念。这就是为什么这两个术语经常混淆的原因。“负责Jenkins的那个人?哦,你是说DevOps的那个人?是的,DevOps工程师”。不,他是一个实践DevOps的系统工程师。如果没有其他的,他应该比只会Jenkins的人知道更多。
方案2
大多数采用DevOps实践的公司通常会创建由软件工程师和运维工程师组成的团队,从而创建DevOps团队。虽然我不完全同意这种方法,但我听说在大型组织中采用DevOps确实有所帮助。这两个不同(但在许多方面相似)的人的责任是拥抱DevOps文化,并在最大程度上弥补对方缺失的技能。
对于系统工程师来说,这意味着您将应用您目前的系统管理技能来管理基础架构,以便对软件工程师有所帮助,从而创建自动化程序,以有效地构建和发布软件。
话虽如此,两个人的努力应该是共享彼此的技能,成为组织中采用稳定的DevOps文化的灯塔。
在理想的情况下,产品开发和运营中的每个人都应该实践DevOps。
希望这在一定程度上解答了您的疑问。