你的连续交付能力用得还好吗,比如频繁发布移动或云应用的特性增强?还是恰好相反,快速发布了带漏洞的版本? - Joel Shore


连续交付能让交付流程跑得更快,但连续交付本身并不能为发布质量打包票。国外基于Jenkins持续集成和连续交付平台的某应用交付技术提供商认为,如果发布质量没有得到一定程度上的保障,软件交付的快点慢点都没有太大意义。

随着DevOps兴起以及新时代下的行业竞争日趋白热化,敏捷开发和交付速度渐渐跑到能力新高峰,但大家仍越来越需要更快速交付高质量软件。位于加州的一个软件公司CEO Sacha Labourey在接受我们专访时谈到了应用交付的新发展以及他的担忧。

云和移动应用是怎么样改变着连续软件持续交付的规则?
Sacha Labourey:我们正经历一段有趣的时光。我们认为IT行业应当需要加快开发和交付周期,来顺应这个时代的要求。移动应用开发中,DevOps能让你从故障发现和快速失败中受益匪浅。云应用同理,它们都实现了发现过程和利用资源加速交付的能力。

你认为DevOps扮演着重要角色吗?
Labourey:我们在很多组织中发现,许多公司并非被迫投入去做DevOps或持续集成。大家都认为移动需求大就做了移动应用,云需求大就做了云功能。问题是企业得学会预见技术竞争战场,清楚怎么样才能快速改变和建立最佳实践。也只有产生了类似念头的时候,他们才会意识到当下要做的事已不同往昔那样随波逐流。我们与很多开发团队和DevOps团队讨论过,以便帮助普通企业能寻求到一些突破。讨论结果大致是这样:DevOps已经不单是IT系统在效率上的提升问题,而涉及到了将企业发展目标纳入应用开发和交付的过程。许多企业仍然对这些变化视而不见,但转型已经开始,避无可避,且势不可挡。

DevOps团队软件持续交付方面最常见的错误是什么?
Labourey:不劳而获想解决困难才是最常见的错误。即使是新开的项目,也会面对一些已知或未知的难题。代码自动化构建实现起来很容易,难的是对项目做出恰到好处的测试、配置、部署,而想做到这些,就需要DevOps团队投入。当团队没有决心做好这件事,结局就是得到一个被戏称为“发布bug颇有效率的过程”。

这么说,那岂不是持续交付软件产品,在某种情况下就是为了更快地发布bug?
Labourey:小步快跑的发展节奏没有问题。我们讨论业务节奏加快的可行性需要在速度与稳定安全找到个平衡点。改变迭代速度并不是说你写代码的速度一下子就提高了,这个要适可而止,换个说法:“更接近预期的安全速度”,这种描述可能更适合,对吧?以更短周期做出新版,看看哪些起作用,哪些不起作用,然后再决定具体的迭代方式。

软件持续交付怎样与DevOps在总体上做到互相配合?
Labourey:首先,DevOps是一条好路子。原先那帮支持DevOps和敏捷开发的人都应该自豪,这点让人想起了上世纪90年代的开源思潮。不过,那时候的那群人基本都是不care企业生产概念的理想主义者。
就像Linux甚至今天的Microsoft,这些都彰显着开源世界的胜利。开发方法论也是这样。以前的发布周期都很长——都要好几年。在21世纪初,敏捷开发那帮人根本感受不到关键软件对在生产过程中运行关键应用的意义。当下,如果你没有最起码的敏捷开发或更进一步的团队DevOps规划,你就是迟到了,毕竟每家公司都应该懂得从软件生产中创造商业价值。

你怎么向不了解DevOps持续交付的开发人员安利这些道理?
Labourey:显然,如果你还没有移动化应用的持续交付流程,那这本身就是个bug…如果有针对云平台的软件持续交付过程就更好了。你有弹性资源,有平稳的软件更新能力,甚至还有实现云端软件交付的成熟方式,这些能力如果放着不用,那简直太不明智了。这个有点像很多上云的公司只把云当作自己的数据中心,这就有点大材小用了。

别让持续交付自动化交付bug的更多相关文章

  1. CI Weekly #5 | 微服务架构下的持续部署与交付

    CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试. DevOps 等实践教程.工具与资源,以及一些工程师文化相关的程序员 Ti ...

  2. 容器镜像服务联手 IDE 插件,实现一键部署、持续集成与交付

    容器技术提供了一种标准化的交付方式,将应用的代码以及代码环境依赖都打包在一起,成为一个与环境无关的交付物,可以被用在软件生命周期的任何阶段,彻底改变了传统的软件交付方式. 甚至可以说,是在容器技术之后 ...

  3. 容器镜像服务 联手 IDE 插件,实现一键部署、持续集成与交付

    容器技术提供了一种标准化的交付方式,将应用的代码以及代码环境依赖都打包在一起,成为一个与环境无关的交付物,可以被用在软件生命周期的任何阶段,彻底改变了传统的软件交付方式. 甚至可以说,是在容器技术之后 ...

  4. Jenkins 从小白入门到企业实践打怪放弃之路系列笔记 【持续集成与交付快速入门必备】

    Jenkins 从小白入门到企业实践打怪放弃之路系列笔记 [持续集成与交付快速入门必备]

  5. VMware vCloud与Zend Server实现PHP应用程序自动化交付

    在巴塞罗那2013年VMworld大会上,开发商VMware公司和zend公司在云管理市场上大放异彩.两家公司的产品VMware vCloud和Zend Server组合,实现了PHP程序自动化交付. ...

  6. Linux-GitLab+Jenkins持续集成+自动化部署

    GitLab+Jenkins持续集成+自动化部署 什么是持续集成? (1)Continuous integration (CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个 ...

  7. QNJR-GROUP/EasyTransaction: 依赖于Spring的一个柔性事务实现,包含 TCC事务,补偿事务,基于消息的最终一致性事务,基于消息的最大努力交付事务交付QNJR-GROUP/EasyTransaction: 依赖于Spring的一个柔性事务实现,包含 TCC事务,补偿事务,基于消息的最终一致性事务,基于消息的最大努力交付事务交付

    QNJR-GROUP/EasyTransaction: 依赖于Spring的一个柔性事务实现,包含 TCC事务,补偿事务,基于消息的最终一致性事务,基于消息的最大努力交付事务交付 大规模SOA系统的分 ...

  8. K8S(08)交付实战-交付jenkins到k8s集群

    k8s交付实战-交付jenkins到k8s集群 目录 k8s交付实战-交付jenkins到k8s集群 1 准备jenkins镜像 1.1 下载官方镜像 1.2 修改官方镜像 1.2.1 创建目录 1. ...

  9. 持续(集成-->交付-->部署)

    软件的开发工作的大致流程 编码 -> 构建 -> 集成 -> 测试 -> 交付 -> 部署 由上图可知「持续集成(Continuous Integration)」.「持续 ...

随机推荐

  1. 关于最小生成树(并查集)prime和kruskal

    适合对并查集有一定理解的人.  新手可能看不懂吧.... 并查集简单点说就是将相关的2个数字联系起来 比如 房子                      1   2    3   4  5   6 ...

  2. javascript中获取字符串或数组中元素的索引

    有些时候,我们需要知道一个字符串中字符的位置,或者一个数组中元素的位置,这是就需要对该变量进行迭代操作. 对于数组,有两个方法indexOf和findIndex() , 需要注意的是,findInde ...

  3. UIManager

    创建UIManager,管理所有UI面板 准备工作: 1. 创建Canvas并设置Tag为Main Canvas 2. 在Canvas下新建五个层级节点,因为UGUI显示层级越往下越靠前 using ...

  4. python小程序--one

    #!/usr/bin/env python # _*_ coding:utf8 _*_ import sys user_lock_file="user_lock.txt" # 用户 ...

  5. 将文件转成clob添加到Oracle数据库中

    Controller层: @Controller@RequestMapping(value = {"/Test/TestController"})public class Test ...

  6. 重装@angular/cli reason: write EPROTO 139955972261696:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:../deps/openssl/openssl/ssl/record/ssl3_record.c:252:

    前几天不小心卸载了 angular@cli,然后重装的时候发现,一直报错.如下: ××××××××@××××ln622653:/$ npm install -g @angular/clinpm ERR ...

  7. Flask实战-留言板-使用Faker生成虚拟数据

    使用Faker生成虚拟数据 创建虚拟数据是编写Web程序时的常见需求.在简单的场景下,我们可以手动创建一些虚拟数据,但更方便的选择是使用第三方库实现.流行的python虚拟数据生成工具有Mimesis ...

  8. random模块、time模块、sys模块、os模块

    一.random模块 1.随机取小数     (数学计算) print(random.random()) #取0-1之间的小数 print(random.uniform(3,6)) #uniform( ...

  9. 题解 Luogu P3623 [APIO2008]免费道路

    [APIO2008]免费道路 题目描述 新亚(New Asia)王国有 N 个村庄,由 M 条道路连接.其中一些道路是鹅卵石路,而其它道路是水泥路.保持道路免费运行需要一大笔费用,并且看上去 王国不可 ...

  10. 【题解】Luogu P2347 砝码称重

    正经·DP题解 一道非常好的背包练手题( sto(注:原思路来源 SLYZ_0120 的题解)orz 开始这道题 1.输入六个数,存进数组中 2.初始化 f 数组为0. f [ i ] 表示重量为 i ...