写点什么

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:263461
用户头像

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

关注

评论

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

【行云流水线】满足你对工作流编排的一切幻想~skr

京东科技开发者

万界星空科技MES中的仓库管理功能

万界星空科技

mes 云mes 万界星空科技 出入库管理 仓库管理

柳州等保测评机构有哪些?在哪里?

行云管家

等保 等保测评 柳州

用 AI 解锁技术调研的新姿势

京东科技开发者

Network Performance Comparison for Industrial Automation Systems: IPQ9574 vs. IPQ6018

wallyslilly

祝贺!亚马逊云科技与伊克罗德信息签署为期4年市场拓展战略合作计划

伊克罗德信息科技

高并发系统的艺术:如何在流量洪峰中游刃有余

京东科技开发者

记一次JSF异步调用引起的接口可用率降低

京东科技开发者

写在万粉千文的黎明前

FunTester

云MES:数字化转型的引擎,企业上云的强力推手

万界星空科技

企业上云 mes 5G 企业上云 云mes 万界星空科技

JetBrains GoLand v2023.3.2中文密钥版 及详细安装教程

Rose

高并发系统的艺术:如何在流量洪峰中游刃有余

京东科技开发者

​ 精选一款/开源MES生产制造执行系统

万界星空科技

mes #开源 开源mes 万界星空科技 mes源码

Swish for Mac(MacBook触控板窗口管理) v1.10.3免激活版

Mac相关知识分享

轻松搞定工作汇报ppt!这3款AI软件值得拥有

彭宏豪95

效率工具 职场 办公软件 AIGC AI生成PPT

华为云全域Serverless技术创新:全球首创通用Serverless平台被ACM SIGCOMM录用

华为云PaaS服务小智

云计算 Serverless 华为云

[Mac/win永久激活版] Studio One 6中文版下载 Studio One 6许可证分享

Rose

第七在线联手深服协:以科技之力,绘就时尚 AI 智能商品管理新篇章

第七在线

【YashanDB知识库】ycm托管数据库时报错OM host ip:127.0.0.1 is not support join to YCM

YashanDB

yashandb 崖山数据库 崖山DB

JeecgBoot 如何集成 Spring AI

JEECG低代码

360联合国内15个最强大模型推出“AI助手”碾压GPT4o!全球首部《人工智能法案》正式生效!|AI日报

可信AI进展

人工智能

JetBrains IntelliJ IDEA 2020 中文无限试用版 Mac版 IDEA 2020下载安装

Rose

堡垒机应用发布功能是什么意思?有什么用?

行云管家

堡垒机 应用发布 堡垒机软件

Project Office for mac(任务项目管理软件) 11.0激活版

Mac相关知识分享

如何确保 API 接口的稳定性和可靠性

Noah

免费领取云主机,在华为开发者空间玩转YOLOV3

华为云开发者联盟

人工智能 云主机 目标检测 YoloV3 企业号 8 月 PK 榜

系统整容纪:用知识来"武装"自己~认识MySQL的锁与事务

京东科技开发者

文献解读-遗传病-第二十六期|《癫痫的临床特征、诊疗和KCNH5突变》

INSVAST

基因测序 基因数据分析 遗传病 文献解读

Transmit 5 for Mac(FTP客户端) 5.10.4中文版

Mac相关知识分享

Cisdem PDFMaster for mac(专业PDF编辑转换器)v6.5.0激活版

Mac相关知识分享

基于人工智能的代码分析与 Bug 检测实战

测试人

软件测试

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