写点什么

Coolblue 的持续部署

  • 2016-09-06
  • 本文字数:1956 字

    阅读完需:约 6 分钟

Coolblue 的技术开拓者 Paul de Raaij 提出,持续部署会得到更强的责任感和更好的部署质量。代码规范预防代码库混乱,自动化检查很合适完成冗长而无聊的检查,人工检查很合适去检查代码的逻辑和用法实际上是否成立。

De Raaij 写了一篇博文《我们软件的持续部署》,在文章中他解释了 Coolblue 是如何完成持续部署的。

仅仅开发软件是不够的。你还需要让它投入使用,并确保部署了高质量的软件且未对其造成破坏。

Paul de Raaij 将在敏捷和软件架构专题研讨会 2016 上讨论 Coolblue 的持续部署。InfoQ 有幸采访了他,请他谈了谈 Coolblue 的部署、持续部署的优势和缺点、质量保证的技术和实践、代码规范、应用监控,以及 Coolblue 面临的挑战和他们将如何应对。

InfoQ:什么使 Coolblue 决定要创造条件让开发人员自己完成部署的?

Paul de Raaij:我们希望软件尽快投入使用。这能帮我们快速得到我们开发的功能的反馈意见,并使用这些反馈去了解是否需要改变方向。我们也喜欢让开发团队对他们的产品有完全的所有权。举例来说,比如发布工程师正在转移责任,其关键就在于拥有完全的所有权。如果你破坏了它,就必须由你来修复它。没有人为你擦屁股。它会使大家拥有更高的责任感,使部署有更高的质量。

InfoQ:目前部署是如何来做的?

De Raaij:很难就此给出一个简单而又全面的答案,简短概括一下:我们使用 gitflow 工作流并将 GIT 作为分布式版本系统工具。当一名开发人员想要把他的新代码提交上线时,会创建一个 pull 请求。这个 pull 请求将会得到自动化和人工的审核。全都亮绿灯了?那么就会自动地把它打包并放到部署和验收测试服务器上。人工按一下按钮就会把它部署到生产环境。当然,这里面还有很多的内容,我将在 ASAS 会议上详细探讨。

InfoQ:持续交付的优势是什么?

De Raaij:它有很多的优势。对于初学者而言,如果做法正确,你就有能力把自己的软件部署到一台服务器上。通过各种检查工具的自动化检查,它将显示明确的质量水平。如果适当地设立了回归测试,你就能保障原有功能在你部署之后仍可正常工作。

InfoQ:有什么缺点吗?

De Raaij:在最后他仍然是个人工过程,是由人来配置的。它能轻松确保愉快路径,但有些东西仍有可能出错。所以在你的持续集成过程配置中有许多值得思考的地方。例如,如果你使用的在线服务(比如 GitHub)出故障了,那么会对你的流程造成什么影响?

另外还要想想你的开发团队的规模。500 个开发人员在同一流程中工作和只有两个人去做更新肯定会让你的持续集成流水线有完全不同的工作方式。所以,提前思考你的解决方案有怎样的可伸缩性。能否轻松地为代码检查增加额外的代理?在一个 pull 请求接受检查之前等待半个小时是否可行?

InfoQ:哪些技术和实践被 Coolblue 拿来用于质量保证?为什么?

De Raaij:我们使用了多种方法,它们也使人工和自动化检查更加多样化了。自动化检查能很好地完成冗长乏味的检查(比如 linting)、代码规范的检查、回归测试的执行。人工检查很合适去检查代码的逻辑和用法实际上是否成立,实际编码的内容是否实际解决了全部的使用案例。

InfoQ:如何应用编码规范?这么做会带来什么好处?

De Raaij:编码规范非常重要,能避免你的代码库变得混乱。如果每位开发人员都按自己的缩进、间距和命名规则的话,很快就会变得一团糟。这将极大影响软件和可交付物的质量,也会令开发人员的工作难以开展,迅速产生挫败感而恼怒不已。

在我们的案例中,代码规范大多数是遵循行业规范来定义的。比如我们的 PHP 规范就主要遵循了 PSR 的规范,同时又进行了少量的微调。

InfoQ:你们是如何监控应用的?

De Raaij:很多工具都在我们的监控中发挥着作用。针对机器的技术监控,我们严重依赖 Nagios 作为我们的监控应用。这实际关注的是机器的状态以及应用和守护进程是否在运行。在我们的软件生态中监控极其重要,所有应用都有自己的指标,我们将它们用于健康检查、洞察力和分析。这些指标通过一个 StatsD 像聚合器一样发送到数据日志。除了指标,我们还会利用 ELK 栈深入分析日志。

InfoQ:Coolblue 正在面临着什么挑战,你们将如何去应对它们?

De Raaij:完全的持续交付对于我们来说可是个大事。我们已经取得了相当的进展,但我们前方还有许多障碍,横在我们走向真正的自动化部署的路上。其中一个大的障碍是如何处理系统中的数据迁移,在我们应用的生态中它可是个大难题。如果我们解决了它,事实上就非常接近真正的持续部署了。

敏捷和软件架构专题研讨会 2016 将于 2016 年 9 月 28 日在荷兰阿纳姆的 GelreDome 球场召开:

ASAS 是一个具体解决方案驱动的会议,在这里技术带头人、软件架构师、业务分析师和工程主管能够了解和讨论交付软件解决方案的更好的方式,使其更适合于他们的用户。

InfoQ 将使用问答、总结和文章全程报导本次大会。

查看英文原文 Continuous Deployment at Coolblue

2016-09-06 19:001387

评论

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

hive on spark 还是 spark on hive?

一生要强的查数姑

大数据 hive spark SQL 大数据仓库

最新版!955、不加班、双休的公司名单

千锋IT教育

设计模式的艺术 第十五章代理设计模式练习(设计一款基于C/S的网络图片查看器,用户只需在图片查看器中输入网页URL,程序将自动将网页所有图片下载到本地。)

代廉洁

设计模式的艺术

GaussDB(for Redis)即将亮相华为云快成长直播间,让成本直降75%!

IT资讯搬运工

人工智能’

iOS 自动化测试踩坑(一): 技术方案、环境配置与落地实践

霍格沃兹测试开发学社

UI 自动化测试应不应该投入?有没有前途?怎样做最明智?

霍格沃兹测试开发学社

app自动化测试(iOS)元素定位(新手篇)

霍格沃兹测试开发学社

《穿越时空的git》之创建版本库和常用命令操作

霍格沃兹测试开发学社

华为云WeLink助力平房区打造智慧政务办公系统

IT资讯搬运工

人工智能’

iOS自动化真机测试验证环境过程中常见问题解析

霍格沃兹测试开发学社

RPC接口测试技术-Tcp 协议的接口测试

霍格沃兹测试开发学社

新书上市 | 十分易上手的图解教程,全系列累计销量20万册!

图灵教育

程序员 计算机 图论

NFT数字藏品系统开发:怎么开发自己的数字藏品平台?

开源直播系统源码

数字藏品 数字藏品系统软件开发 数字藏品开发 数字藏品系统 数字藏品软件

Z世代的开学季:华为技能加持,你就是焦点!

最新动态

不信谣不传谣,亲自动手验证ModelBox推理是否真的“高性能”

华为云开发者联盟

人工智能 企业号九月金秋榜

OPPO的航船:小布生命体将驶向怎样的科技彼岸?

脑极体

UI 自动化测试实战(二)| 测试数据的数据驱动

霍格沃兹测试开发学社

iOS如何实现验证码登录丨MobTech

MobTech袤博科技

ios xcode

基于深度学习下的航空领域真空羽流解决方案

蓝海大脑GPU

云南林职院 x WeLink一站式智慧迎新, 打造西南数字化职校新标杆

IT资讯搬运工

人工智能’

Python 自动化测试(四)

霍格沃兹测试开发学社

Android如何实现自定义短信登录丨MobTech

MobTech袤博科技

android

小程序可以在智能设备上运行?

Speedoooo

小程序 物联网 IoT 智能设备 小程序容器

一文带你了解K8S 容器编排(上)

霍格沃兹测试开发学社

我们做了一个云原生成本优化产品

TRaaS

宿舍全屋智能开发指南

OpenHarmony开发者

OpenHarmony

技术分享| 调度平台的好助手-快对讲

anyRTC开发者

音视频 调度 实时消息 快对讲 视频对讲

云速ERP(WeLink认证版)上线,加速中小微企业数字化经营创新

IT资讯搬运工

人工智能’

RPC接口测试技术-websocket 自动化测试实践

霍格沃兹测试开发学社

技术门槛高?来看 Intel 机密计算技术在龙蜥社区的实践 | 龙蜥技术

OpenAnolis小助手

云原生 intel sig 龙蜥技术 机密计算

精彩演讲实录|在确定性和不确定性中探索AIOps的适用性

TRaaS

技术文章

Coolblue的持续部署_Git_Ben Linders_InfoQ精选文章