#1 楼
DevOps的很大一部分使得可以非常频繁地发布。它带有自动化构建,自动化测试等。您可以说,要实现其目标,DevOps需要使用自动化以提高效率。 DevOps不仅是自动化,还有更多。相反,“ DevOps人员”并没有专门使用自动化。在DevOps出现之前,IT部门已经实现了很多自动化。自动化。这是为了帮助读者了解这两个概念之间的关系。评论
我刚才在这个问题上说的是:)
–滕西拜
17 Mar 2 '17 at 20:01
为什么DevOps中没有“票务工作流程”?
– Nakilon
18年5月5日在1:50
#2 楼
自动化是DevOps的关键属性,但还不是全部。这个问题有点像“时间装箱和Scrum有什么区别?”。您会听到DevOps被称为“文化”,“运动”,“方法论”和即使这些描述是准确的,所有各种各样的东西都无法很好地将其装箱。简而言之,DevOps涉及敏捷方法论,自动化和虚拟化的融合,从而在软件项目的管理/控制/指导中实现新的反馈循环。现在要花很长时间并且容易遭受人为错误,而且不会发生任何意外。结果,我们倾向于更频繁地执行它们。一个主要的例子是“生产部署”。我们过去经常保存大量工作,并在下班时间进行部署,以防万一“出事了”。但是现在,我们每天可以部署几次更改,从而可以大大减少“出问题”的机会,并且可以确保发生问题时产生的影响要小得多。
一旦有了这个可重复的过程,我们就会开始将其视为“管道”。需求进入,部署到生产中的代码就出来了。我们使该流程中的所有操作实现自动化-测试,文档,合并,部署和更多测试,等等...因为人们专注于自动化,所以他们看不到推动它的“流程思路”。这是管理方法-管道上的关注-使DevOps超过自动化。
一旦我们实现了自动化,反馈循环就开始了。我们开始测量诸如周期时间之类的东西,以便我们可以找出先前尝试用估计来猜测的事物。关于使自动化/连续交付难以实现的体系结构的事情,倾向于被使自动化/连续交付更容易的替代体系结构模式取代(在“ Evolutionary Databases”一书中记录了许多很好的例子。“ Green / Blue Deployments”是另一本。 )。
注意,我能够提供此描述而无需谈论Jenkins,Check,Puppet,Ansible,Vagrant,AWS或任何其他支持它的工具。这就是我们所说的更大的流行词,例如“方法论”。最后,任何一组工具都可以替换...我们剩下的是自动化实现的核心管理原则以及对管道的关注。
评论
抱歉,这听起来像是一份敏捷宣言,而不是我所能接受的关于文化的信息。敏捷/迭代/短周期方法即使不是经常使用的,对于devops组织也不是必需的。您可以在瀑布项目中有开发团队,并且可以使基于筒仓的交付实现自动化,因此我认为此答案部分解决了这个问题。
–滕西拜
17 Mar 2 '17 at 19:09
@Tensibai我有些不同意-您不会自动化不经常执行的流程。没有敏捷的DevOps就像自动化建造价值数百万美元的超级跑车一样。
–戴夫·斯沃斯基(Dave Swersky)
17 Mar 2 '17 at 21:16
这个答案非常冗长,很难提取与OP Q有关的差异或优缺点。
– Evgeny Zislis
17 Mar 2 '17 at 21:54
@Dave您遗漏了一点,我必须一直不清楚,我的意思是说,发展文化与打破筒仓团队,自动化或短周期无关,即使通常如此,我也没有在您的答案中看到这一点
–滕西拜
17 Mar 2 '17 at 22:17
#3 楼
DevOps确实是一种文化上的转变-旨在打破运营与开发之间的传统障碍(以及质量保证和其他业务!)。这个想法是,与其让部门“孤军奋战”,不如直接与其他团队合作,更快,更高效地完成工作。这一切都是为了消除约束并简化流程。自动化之所以如此重要,是因为拥有可重复的过程有助于消除约束。例如:如果来自ops的某人必须执行手动发布过程才能将代码发布到环境中,则可能会遇到很多问题-其中之一是ops中必须有某人可以自由进行部署,第二,由于手动操作容易出错,因此对发布过程的信心较小。
#4 楼
DevOps包括自动化,但这只是其中的一部分。 DevOps是一种文化变革,旨在打破组织不同部门之间的孤岛,以提供完整的价值流。提供一种文化,使业务,开发,质量保证,基础结构,安全性,操作等共同协作,为最终用户提供价值。 DevOps不是工具,您无法购买,必须改变自己的文化。自动化是DevOps的关键部分,因为它可以确保高质量的交付速度。部署过程的自动化是许多人首先关注的领域之一,因为它是快速获得价值的最佳方法之一,并且不仅可以减少部署时间,而且可以使过程标准化和删除,从而获得高投资回报错误。
#5 楼
DevOps运动包含四个主要区域,缩写为CAMS:从2010年开始的原始定义。自动化本身是一个较宽泛的主题,但是在DevOps的上下文中,它只是所涵盖内容的一部分。请注意,尽管许多新入行的DevOps从业人员常常忽视了这一点,但直接进入了自动化,因此我们以文化为先导。
#6 楼
我想补充一下我的2美分:1)自动化:我们今天必须朝着这个方向发展。越来越有必要,其中,如果不是整个过程,则首选方法将是使零件自动化。这种方法使用户(开发人员)可以灵活地使用固定步骤以及根据需要进行自定义的方法。由开发人员共同完成。自动化步骤越精细,它们所具有的控制效果就越好。 DevOps:
考虑到当前预期的交付质量和及时性状况,有必要扩展软件交付过程的自动化。为了实现这一目标并以最快的方式为客户提供价值,DevOps广泛依赖自动化工具。
这种方法的优势在于,可以自动化各个步骤以实现整个企业的一致性,而整体可以修改业务流程以适应该项目所需的过程。
可能可以通过Jenkins将各个自动化工具(以某种方式)(例如Chef用于部署,通过Dockerfile的Docker,用于构建的Maven等)捆绑在一起,以提供所需的解决方案,同时减少了实施或使用所需的时间。
希望这有助于为您可能已经拥有的思维过程增加任何价值。编辑:忘记添加我刚才谈到的过程和工具-DevOps 3个方面中的两个。正如其他人所提到的,第三个同样重要的方面是人。我认为这与自动化之间的主要差异之一是,与抵抗DevOps相比,人们更倾向于吸收自动化。我认为这是由于DevOps本身的性质所致,因为自动化通常与使他们变得更轻松有关,而他们认为DevOps正在改变他们的使用方式。
#7 楼
自动化和DevOps无关。 DevOps更像是组合工程,其中站点或服务的开发人员都是该站点或服务的运营商。为什么这本小说?以我的经验,当发生比网络故障更令人兴奋的事情时,Ops团队要做的第一件事就是打电话给开发团队。他们为什么这样做?因为Ops团队所做的只是监视并保留要拨打的开发电话号码列表。注意,我对自动化一无所知。
自动化是指重复成功。如果我执行步骤a,b和c,并且过程X始终有效,则步骤a,b和c是自动化的理想选择。然后,我可以把时间花在过去通常是手工操作的事情上,以使自己赚到更多钱。简单就能实现自动化。部署新版本,运行集成测试,拧紧螺栓上的螺母,备份数据,平衡贷方与借方之间的平衡等都是自动化的不错选择,因为无论是由人还是由机器人来重复这些步骤。
注意:新功能是开发人员也是操作员。没有其他群组。就我而言,合作很少。如果《故障排除指南》(又名TSG)中没有任何内容,那么可以保证您可以拨打电话。以我的经验,Ops是发生反铲事故的第一个机会。服务之间的问题超出了他们的视线范围。
评论
但是有一点,合作始终存在吗?开发人员和运营人员之间的交流,这是新事物吗? devops带来了什么新东西?
–pinkpanther
17 Mar 7 '17 at 6:11
新的是开发人员也是操作员。没有其他群组。就我而言,合作很少。如果《故障排除指南》(又名TSG)中没有任何内容,那么可以保证您可以拨打电话。以我的经验,Ops是发生反铲事故的第一个机会。服务之间的问题超出了他们的操盘手。
–不退款不退货
17 Mar 7 '17 at 12:43
自动化和DevOps是否“无关”?顺便说一句,我完全不同意。持续集成,持续部署,自动化测试等是DevOps技术组件的组成部分。没有自动化,DevOps只是文化。当然,文化很重要,但这只是三腿DevOps凳(文化,过程,技术)中的一条腿
–戴夫·斯沃斯基(Dave Swersky)
17 Mar 8 '17 at 16:49
@NoRefundsNoReturns开发人员是运算符。从某种意义上说,没有必要发展团队?
–粉红豹
17 Mar 8 '17 at 18:33
随时不同意。当我们既有“开发人员”团队又有“运营”团队时,我们拥有大量的自动化功能。这就是为什么我说它们不相关。自动化可以减少对组织结构的关注。如果您的开发人员也是操作员,则很有可能会实现自动化,因为大多数开发人员都很懒惰,并且倾向于自动执行重复性任务。我对您的回复@pinkpanther感到困惑
–不退款不退货
17 Mar 27 '20:17
评论
嗨,@ punkpanther,如果这个或任何答案都解决了您的问题,请考虑通过单击对勾接受它。这向更广泛的社区表明您已经找到了解决方案,并为答题者和您自己赢得了一定声誉。没有义务这样做。如果您不满意,请随时与作者联系。也许更好的问题是DevOps在哪里结束并开始自动化? DevOps所做的并非所有事情都与自动化有关。它的很大一部分,是的,但不是全部...可以说DevOps就是自动化之外的一切-它是特定技术领域的sysadmin cultrue,通用架构标准,通用发布标准(例如GitHub)...我认为特定领域的自动化启动本身是一个很好的问题...