在向某人解释DevOps时,碰巧会出现一个问题,例如:


使用敏捷方法的发布管理与Waterfall有何不同?


那么您可以使用什么样的标准来向这些受众解释这些差异?

#1 楼

IMO DevOps是一种文化,就像敏捷一样(无需选择敏捷方法。)因此,您不必“做” DevOps。 (完全披露,我以前从未将CD称为发行方法,但是在我处于滞后状态时,我认为它是可行的)
如果您愿意购买,那么这就是持续交付的定义

连续交付是指将所有类型的更改(包括新功能,配置更改,错误修复和实验)转化为能力的方法。
我们的目标是进行部署,无论是大型分布式系统,复杂的生产环境,嵌入式系统还是应用程序,可以按需执行的可预测的例行事务。
即使面对成千上万的开发人员团队每天进行更改,我们也要确保代码始终处于可部署状态,以实现所有这些目标。因此,我们完全消除了传统上“开发完成”之后的集成,测试和强化阶段以及代码冻结。

因此,您可以采用敏捷方法,使用可以演示的软件进行演示。业务,请确保您正在执行正确的自动化测试,并对更改以及所有使其比瀑布更好的事情做出良好的反应。很多时候,这并不意味着您实际上可以将其部署到生产环境中。如果您没有某种迭代方法,那么就可以这样做,但是您真的不知道,因为实际用户从未见过。
您真正想要的是看起来更像这样的东西:

每次迭代,都会有一些东西部署到生产中。因此,已部署了软件。如果您决定创建下载文件,请打开Web服务器,或者将软件交给已发布的用户。
这到底是什么!?我问了DevOps!没有人问到持续交付!
那么DevOps与这有什么关系呢?
要使软件真正处于一种可以随时随地进行部署的状态,这非常非常非常困难(无法进行处理)。除非该团队在DevOps文化中工作。一种文化,其中系统管理员,DBA,SRE,安全人员,开发人员,质量保证等均属于单个团队,而不是具有交接关系的组织中孤立的一部分。关于发布到此答案的评论的一部分,就像这样:

关于您的“……软件处于可以随时部署……的状态”:这让我想起“自动驾驶”软件(在飞机上)……对此我最喜欢的问题是:“想象对这样的软件进行更新……在机上进行飞行时,您会有什么感觉?” 。

我喜欢这个问题(在上面的引用中,用粗体显示)! “真的准备好了吗?”的想法我一直都在抱怨-博客。 IMO至关重要的是,您必须对安全性,性能和其他经常进行的“辅助”测试充满信心,才能练习CD。功能完成后就完成了,但黑客总是在那儿。

评论


感谢您提出的有趣观点/答案(以及闪亮的图像...)。我必须承认,我从未听说过“发行方法论”一词,尽管“发行管理”是我相当熟悉的(超过20年……)。关于您的“ ...软件,它处于随时可以部署它的状态……”(与“ jetlagged”结合使用):让我想起(飞机上的)“自动驾驶”软件……我的最爱关于这个问题的问题:“想象一下对这样的软件进行了更新……在机上飞行时的感觉如何……当您在机上时?”。

– Pierre.Vriens♦
17 Mar 4 '17 at 17:27

我喜欢这个问题! “真的准备好了吗?”的想法我一直都在抱怨-博客。 IMO至关重要的是,您必须对安全性,性能和其他经常进行的“辅助”测试充满信心才能练习CD。功能完成后就完成了,但是黑客总是在那儿。

–肯·莫格勒(Ken Mugrage)
17 Mar 4 '17 at 17:40

我指的是“想像一下对这样的软件进行了更新……在机上飞行时,您会感觉如何?”

–肯·莫格勒(Ken Mugrage)
17 Mar 4 '17 at 17:45

而且请编辑,我在这里是n00b :)

–肯·莫格勒(Ken Mugrage)
17年4月4日在17:46

请查看我建议的编辑内容,以整合您的有趣评论。如果您不喜欢它,只需执行回滚到以前的版本(链接在“修订”中),和/或根据需要进一步改进/扩展它。猜猜是什么,似乎“机上”我的某些“权限”已更改……看来我已经在这里有很多代表,因此仍然需要这些建议的编辑的“批准”……幸运的是,这只是一些SE-软件(未经空中交通管制部门事先批准,不建议对某个飞行路线进行更新...)。 Oeps 2(更正):以轻快的速度获得批准...

– Pierre.Vriens♦
17 Mar 4 '17 at 17:57



#2 楼

不知道是否没有其他人,但是我使用的是这些标准:

+-------------------+-----------+-----------+
! Criteria          ! Agile     ! Waterfall !
+-------------------+-----------+-----------+
! Release Events    ! Frequent  ! Rare      !
! Risk              ! Less      ! High      !
! Required Effort   ! Smoother  ! Peaks     !
! Volume of changes ! Small     ! Huge      !
+-------------------+-----------+-----------+


如果您真的想体验一些用户的不同之处,软件,然后考虑使用某些软件(例如Linux发行版),您可以在使用以下两个版本之一之间进行选择:


Rolling”版本(==> Agile) 。
释放“ Long Term Support”(==>瀑布)。


评论


Linux示例可能不是很受启发:)我个人不喜欢滚动版本,原因是:1.质量水平和2.相当分散的变化(我宁愿专注于我的工作,而不是我正在使用的Linux工作)。因此,我使用长期(最长期)(通常超过其EOL),并且每2-3年只关注一次重大更新。除非这仅仅是由于衰老而增加对变化的迷恋? :)

–丹·科尼莱斯库(Dan Cornilescu)
17 Mar 5 '17 at 7:39

@DanCornilescu我使用了这个Linux示例,因为我认为这是两种方法论的“一个”发行版mgnt方面(即发行频率)的极端示例。尽管出于个人原因,但出于您提到的相同原因,我完全同意您不喜欢滚动发布。

– Pierre.Vriens♦
17 Mar 5 '17 at 7:48