当前位置: 首页 > news >正文

太多脚本将会毁掉持续交付

Electric Cloud的产品经理Avantika Mathur在上个月的伦敦Continuous Lifecycle大会上呈现了演讲,谈到了与持续交付管道中越来越多的脚本相关的成本。除了维护成本,在将变更部署到生产环境之前,正在进行的活动缺乏可见性和可审计性也是另一个主要成本,但很多组织都没有意识到这一点。

\\

要解决这个问题,首先需要识别问题,并为管道编配制定指导原则。Mathur推荐了这些原则:

\\
  • 确保部署之间的可重复性和一致性\
  • 将应用程序的定义与环境分开\
  • 专注于环境之间的可移植性\
  • 避免锁定某些工具和技术(换句话说,确保通过实践来指导工作,而不是工具)\

在避免脚本蔓延方面,Mathur建议的方法是首先将脚本重构为参数化的通用函数,然后在可能的情况下用可以完成相同甚至更好工作的工具替换它们。

\\

不过,同时处理大量脚本可能具有一定挑战性(从技术和人员的角度来看),并且效率低下(低投资回报率)。Mathur推荐了一种迭代方法。首先,通过价值流映射来识别那些减缓交付或混淆交付流程的中间瓶颈和依赖。这将有助于优先考虑哪些脚本需要首先重构。Mathur还建议对现有脚本进行分桶(配置、部署、测试自动化等)以便识别出重复任务,根据复杂性对它们进行分类以评估工作量,测算脚本运行的频率以估计潜在收益,最后再看看是否存在更好的替代方案可以降低成本。

\\

Mathur最先注意到这种“脚本噩梦”的影响,80%的团队工程时间用在了维护(而不是用于演进)或低效自动化的脚本以及缓慢的流程上,而不是用于更快更安全地进行交付。工程师忙于维护脚本,害怕更改脆弱的脚本,执行内容缺乏可见性,冗长的审计准备流程,这些都是脚本失去控制或管道编配工作不够细致的典型现象。

\\

总之,Mathur建议“将管道作为一种产品对待”,确保管道上的每一次变更都经过测试,并在进入“生产”环境之前经过全面评审(即可供所有人使用)。这也意味着要让每个人都能看到管道,通过度量和基准来改进性能,并尽可能重用已有的部分。

\\

查看英文原文:Too Many Scripts Can Kill Your Continuous Delivery

相关文章:

  • java中的equals和==
  • Fcoin交易所的危险游戏!韭菜请远离!
  • mavne settings.xml
  • Ambari 2.6(HDP 2.6.5)安装记要
  • IP 地址 与 DNS
  • iOS 开发知识索引
  • 多线程多进程学习threading,锁,线程间数据状态读取。
  • Lombok使用详解(转)
  • 【JS基础】--位置距离小结
  • Java中泛型ClassT、T与Class?
  • 查询优化器
  • malloc(0)的返回值
  • linux安装mysql5.7.19
  • Python(生成执行文件)
  • Dart4Flutter - 不可变性
  • 《深入 React 技术栈》
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • 〔开发系列〕一次关于小程序开发的深度总结
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • 3.7、@ResponseBody 和 @RestController
  • android 一些 utils
  • CSS居中完全指南——构建CSS居中决策树
  • Docker入门(二) - Dockerfile
  • ECMAScript6(0):ES6简明参考手册
  • ES6系列(二)变量的解构赋值
  • FineReport中如何实现自动滚屏效果
  • js
  • Laravel 菜鸟晋级之路
  • Less 日常用法
  • spring + angular 实现导出excel
  • spring security oauth2 password授权模式
  • 回顾2016
  • 简单易用的leetcode开发测试工具(npm)
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • Java数据解析之JSON
  • ​​​​​​​​​​​​​​Γ函数
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (a /b)*c的值
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET 反射 Reflect
  • .NET企业级应用架构设计系列之应用服务器
  • @Autowired多个相同类型bean装配问题
  • @RequestBody的使用
  • @Transient注解
  • [ NOI 2001 ] 食物链
  • [20180312]进程管理其中的SQL Server进程占用内存远远大于SQL server内部统计出来的内存...
  • [Android] Upload package to device fails #2720
  • [Arduino学习] ESP8266读取DHT11数字温湿度传感器数据
  • [C/C++]数据结构 堆的详解