devops和敏捷
上一次 ,我们研究了“常规”开发实践如何确保在开发团队级别上一切正常。 现在该继续前进了。
因为,据我们所知,除非经过测试,否则它不是工作软件。
桑尼,让我告诉你一个故事。 在我小的时候,我们在我的机器上构建了软件。 编译,测试和打包。 事实证明,这些天并不是那么容易。
测试'我们会去
为了将其提升到一个新的水平,我们需要更多的开发实践。 让我们通过原理眼镜来看看它们:
- 最小化风险–交付方法,环境管理
- 减少浪费–自动包装,自动部署
- 早期反馈–自动系统测试,非功能测试
“交付方法”与我们上次讨论的分支方法相对。 它通常是作为其相对对象临时开发的,这太糟糕了。
除非您的产品不是第一次部署,否则您将需要做两件事:从头开始重建它并升级它。 这样做的方式与公司一样多,但是有人需要说一下我们如何发布升级,补丁,甚至添加操作功能(指标等),这会影响我们如何设计和编码。
想法不是立即发明(或重新发明)这种方法。 如果我们有适当的方法来构建环境和软件包,则可以降低测试与部署的软件包不同的软件包的风险。
这是我们进入环境管理领域的地方,因为我们定义了要测试的环境。其中有很多,有时甚至是地狱,在大多数情况下,它们与我们所拥有的不同生产。 因此,我们还需要了解差异及其影响。
借助Docker和Puppet等出色的工具,我们可以轻松定义和旋转测试环境(以及稍后将讨论的其他目的)。 DevOps技能包括了解工具,环境经济学,映射和维护“地图”,以了解可用的环境,包含的内容以及哪些版本以及它们之间的区别。
通过了解方法并具有环境管理功能,我们可以讨论打包和部署过程。
包裹已经到了
在查看技能时,我将包装与部署分开。 软件的包装不只是创建可部署的软件包,服务和组件。
包装技能不仅包括自动化。 由于软件是如此复杂,因此需要进行依赖性管理,以了解环境中的先决条件以及哪个版本。
在我的古老故事中,部署是手动的。 我们制作了一个安装程序包,测试人员可以在其环境中进行安装。 但是,对于当前的分布式软件,我们谈论的是在不同环境中部署的自动化软件包。
最后,我们通过更多测试来扩展反馈周期。
MOAR反馈!
单元和集成测试非常快速。 它们具有较低的先决条件才能运行。 在我们进行系统测试和端到端测试时,我们需要完全就绪的环境来运行它们。我们可能需要模拟器(例如服务虚拟化)来运行它们,因为可能没有真正的第三方。 除了功能测试之外,我们还可以添加自动化性能测试(例如负载,可用性,恢复),以获取有关产品的更多反馈。
不仅如此。 我们需要将结果报告回来。 通常,此时红色和绿色还不够,因此我们需要允许更好的数据收集和报告。
仅用于测试。
还是认为这些只是“开发人员”实践? 我们甚至还没有达到运营级别。 下次我们将继续交付生产。
翻译自: https://www.javacodegeeks.com/2016/11/agile-introduction-devops-environmentalists.html
devops和敏捷
本文探讨了DevOps与敏捷开发的关系,强调了环境管理、自动化部署、打包及测试在持续集成与持续交付中的核心作用。文章指出,通过采用如Docker和Puppet等工具,可以有效定义和管理测试环境,降低软件包测试与部署的风险。

140

被折叠的 条评论
为什么被折叠?



