BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Coolblue的持续部署

| 作者 Ben Linders 关注 20 他的粉丝 ,译者 夏雪 关注 0 他的粉丝 发布于 2016年9月7日. 估计阅读时间: 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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT