红帽白皮书新鲜出炉!点击获取,让你的云战略更胜一筹! 了解详情
写点什么

Q​Club(北京)回顾——DevOps 与持续集成(含资料下载)

  • 2011-07-18
  • 本文字数:2156 字

    阅读完需:约 7 分钟

2011 年 7 月 15 日,InfoQ 线下活动 QClub 北京站活动,于周五晚在北京贝塔咖啡举办,本次活动有幸邀请到 ThoughtWorks 公司CTO Rebecca Parsons 演讲,演讲主题包含 DevOps Continues Delivery 两部分。

Rebecca 首先从软件交付的现状谈起,传统的软件交付周期分为开发、用户接受测试和部署等阶段。但是随着市场竞争的日益激烈,越来越多的公司需要加快部署和上线,从而提升其在市场中的地位和价值。于是,持续交付就应运而生了。

持续交付的目标是:“在任何时间只要点击按钮即可完成发布”。这样做的前提是需要将大部分的工作自动化,比如环境搭建、配置文件、编译、测试和部署等。

Rebecca 提到:

即使具备发布所有功能的能力,也不要一次都将它们发布。

开发环境的建设要尽可能的脚本化,其中包括:操作系统、系统软件、操作系统配置信息以及补丁的版本。配置管理要经常使用,此外要养成将代码及时提交到版本库的习惯,同时还要了解和熟悉不同应用间的版本关系。

在编译阶段,要尽可能采用持续集成,要讲究依赖包的管理,而且还要具备随时都可将代码从版本控制上获得并在本地运转的功能。 从数据库层面来讲,不可能把生产数据放到版本管理中,但是在测试环境中这点就不难做到,所以在测试环境安装时会变得很容易。

在测试阶段,各个级别的测试都应该尽可能的自动化,Rebecca 特别提到了性能测试,她认为性能测试应该在项目初始阶段就应该有,虽然这样做在项目初期并不是很明显,但是随着项目的展开,性能测试的持续执行,很快就能看出是在哪一次代码提交后产生的性能瓶颈。Rebecca 建议冒烟测试主要走功能的主线,这样在自动化后,就如同在系统内部形成一长安全网,这样才有可能做到持续的发布。 此外,虽然能够实现测试的自动化,但这并不意味着就可以忽略手工的探测性测试,自动化测试是最基础的保证,为的是修改关键依赖后,还具备持续发布的能力。因此,QA 或测试人员,手动测试以及探索性测试仍然在整个发布过程中占据相当重要的地位。

在部署阶段,从传统的开发角度上来讲,部署成功是件令人鼓舞的事情,但是持续交付的目标恰恰相反,持续交付的思想认为,部署成功应该变成一件很自然的事情,只有不停的做,才能够保证足够的正确性。再次 Rebecca 提醒大家注意两点:

  • 尽可能的把一切操作都脚本化、自动化,其中包括软件安装,这样才能够在开发、测试、预览环境上不停地去执行脚本。不同的是,配置参数的细微差别,只有做到了这样,最后部署到生产系统上时,脚本才会变得非常成熟和可靠。
  • 开发环境到生产环境的迁移要尽可能的自动化

持续交付的所带来的好处主要有两个层面:

部署层面:

  • 无压力部署
  • 速度快
  • 在工业发布时尽可能避免人为的错误
  • 使部署成为了一件常规的事情,而不是冒险的事情

维护层面:

如果有了这样的一个可将生产环境问题复现的过程,在发布时发现了问题,就会很容易在开发或测试环境中复现,即使这样做并不一定 100% 会有帮助,但这种方法的确是一个快速定位 BUG 的方法。

接下来 Rebecca 分享了 DevOps 上的一些实践经验。

Rebecca 提到,DevOps 不是技术层面的问题而是人和组织的问题,人员间的相互合作,会减少软件缺陷的出现,而且一旦在维护期间发现问题,运维团队还可以很快就能分辨出什么样的日志能够有效的记录问题,从而加快软件上线的时间,减低错误率,缩短问题修复时间,最终达到提高软件质量的目的。

在提到持续交付和 DevOps 的区别时,Rebecca 是这样回复的:

持续交付关注于开发流程和技术要提高的方面,DevOps 则是关于组织中人员架构和人员协作的问题。传统的团队,开发和运维是两个毫无关联的部门,这就导致运维人员非常痛苦。DevOps 就是要打掉组织中的这堵墙,在开发阶段就让运维团队融入进来,使开发和运维人员相互了解和合作,而且,运维人员还可提出意见供开发人员参考。

一些组织已经采取了精益运营(Lean Operation)的实践,运维团队也有了自己的故事墙和迭代计划,从而达到提高运维效率的目的。

此外,运维团队具有保护生产环境的职责,DevOps 的目的是增强沟通,互相理解。

最后,Rebecca 总结了如何使持续交付和 DevOps 变得可能:

  • 工作不是一两周就能做完的,而是一个长期艰苦的过程,每次迭代和尝试都是为了让开发变得简单,这就要求至少第一要有版本管理,第二要有持续集成。
  • 所有的工作尽可能自动化起来,让脚本用起来。
  • 在选择第三方软件包及应用时,应该首先看第三方包是否支持脚本的启动和关闭,因为有些软件和应用不支持脚本,只提供在界面中操作。因此,这类软件的被可自动化程度是非常低的。
  • 应尽可能保证所有环境是相似的。
  • 运维阶段在处理紧急事件时,最快的当属直接在生产环境修改代码,但是这样的方法应当尽量避免。如果万不得已真的做了,也要尽快使代码处于版本控制之下。总之,所有的配置项和代码都应当从版本管理系统中获取。

在开放讨论环节,Rebecca 回答了到场人员的提问:

问:冒烟测试、性能测试、回归测试之间应当是怎样的一个顺序?

答:当有了第一次发布的时候,一旦遇到新的功能或 Bug 要及时上线,第一应当是需求,第二是性能测试,最后是冒烟测试(也可以和回归测试和冒烟测试结合起来)

相关资料下载

  1. 本次活动演讲稿下载: Rebecca 谈 DevOps 和持续交付实践
  2. 本次活动精彩照片请参见:本次活动照片
  3. DevOps: Friction-Free Collaboration for Development & Operations (需注册方可观看)
2011-07-18 05:263246
用户头像

发布了 156 篇内容, 共 49.4 次阅读, 收获喜欢 7 次。

关注

评论

发布
暂无评论
发现更多内容

探索未来的人机交互方式

百度开发者中心

#人工智能 生成式AI 文心大模型‘

【案例教学】华为云API图像搜索ImageSearch的快捷性—AI帮助您快速归类图片

华为云PaaS服务小智

云计算 软件开发 华为云

又一重磅利好来袭!Zebec Payroll 集成至 Nautilus Chain 主网

大瞿科技

飞桨产品经理教你如何应用PaddleX

飞桨PaddlePaddle

极致优化 SSD 并行读调度

百度Geek说

架构 后端 SSD 企业号9月PK榜

黑色间歇泉黑暗的信使 Black Geyser Couriers of Darkness for mac(奇幻角色扮演)v1.2.56永久激活版

mac

windows 角色扮演游戏 Mac游戏下载 Black Geyser Couriers

eosio.system智能合约介绍(四)合约部署介绍

BSN研习社

公开免费的代理ip有哪些不足的地方?

巨量HTTP

代理IP 免费代理ip

使用cpu模型运行时报异常错误

矩视智能

机器视觉

数据赋能健康发展,数造科技为某省妇幼医院搭建医疗数据科研平台

数造万象

在对接自有账户体系时,FinClip 是怎么做的?

FinClip

面对一家营收上千亿的焦化厂,这家数科公司靠什么赋能业务?

用友BIP

数科公司 2023全球商业创新大会 升级数智化底座

云测 | 打造终端智能测试平台,助力企业迈向高效质量管理

TRaaS

小程序 支付宝小程序 测试 支付宝

我也能打造自己的「超级 App」?

FinClip

如何选择美国多IP服务器租用,提升网站排名的秘密武器

一只扑棱蛾子

站群服务器

进阶训练技巧提升模型性能

百度开发者中心

#人工智能 大模型微调 千帆大模型平台

云的灵魂是人工智能

Finovy Cloud

【Y 新闻】YMatrix携手三一集团,荣获“2023爱分析·数据库最佳实践案例”

YMatrix 超融合数据库

超融合数据库 YMatrix 三一集团 数据库最佳实践案例 泵涌云

图片简易压缩工具 Squeezer for Mac激活下载

mac大玩家j

图片压缩软件 图片压缩工具 压缩图片

前沿技术产业应用的未来

百度开发者中心

#人工智能 文心一言 文心大模型 大模型微调

软件测试/测试开发丨探索AI与测试报告的完美结合,提升工作效率

测试人

人工智能 程序员 软件测试 测试报告 ChatGPT

直播预告 | 博睿学院:浅谈可观测性的价值

博睿数据

对话在行人|远东数智采:数智底座创新,让招投标规范高效

用友BIP

2023全球商业创新大会 对话在行人

快速而准确的MongoDB差异数据对比方法

NineData

数据库 mongodb 可视化界面 数据对比 NineData

软件测试/测试开发名企定向培养训练营,升职加薪快人一步!

测试人

软件测试 测试开发

LLM大模型微调:应用、策略与未来发展

百度开发者中心

#人工智能 文心大模型 千帆大模型平台

中文AutoCAD 2024 Mac破解版 支持M1/M2 AutoCAD 2024详细图文安装教程

晴雯哥

Q​Club(北京)回顾——DevOps与持续集成(含资料下载)_Java_贾国清_InfoQ精选文章