写点什么

Outbrain 经验分享之持续部署实践

  • 2012-07-11
  • 本文字数:835 字

    阅读完需:约 3 分钟

Outbrain 已经采用了持续部署系统,该公司前资深工程师 Ran Tavory 在他的博客介绍了实践过程,他们是怎么做的,有哪些收获。

首先, Ran Tavory 提到确立敏捷企业文化的重要性:

“到目前为止我们认为,成功实施持续部署的核心一半是文化因素,一半是技术因素。有人问我什么更重要,文化还是工具,当然,我认为文化更重要,但是工具能正确地确立这种文化。”

Ran Tavory 分享了 Outbrain 采取的 3 项促进企业文化转型的技术措施:

首先,不允许创建分支,要求主干代码随时都可以用来部署生产环境,所有人都要把主干作为开发目录,只允许创建标签 (tag),没有分支,所以也不需要合并,不需要两次提交;要在一个最小的原子变更完成编译、自动化测试等工作之后尽快将代码提交到主干上,不要超过一天才提交,最好每小时提交一次;如果代码还不准备发布,可以使用标识位来隐藏代码,可以通过 URL 参数或服务器配置来打开功能,从概念上说,它与分支类似,一旦代码全部发布就取消标识位。

其次,建立完善的自动化测试和基础设施测试,这是持续部署关键支柱。自动化测试必须快,Outbrain 的测试周期是 5 分钟完成一次测试。

最后,监控、自检测试、服务状态要可视化。Outbrain 有一个版本页面列出了所有服务库的版本,以及一个自检页面,可以通过一系列内部接口(如连接数据库、连接其他服务等)调用就可以检测并能够返回成功状态。

Ran Tavory 介绍了一些工具来实现持续部署:

  • 通过 CHEF 实现基础设施的自动化;
  • 通过 GLU 实现部署;

另外他还提到了服务组件化,让破坏和错误的影响最小,让回滚操作更方便。在博文中,Ran Tavory 还列举了实例说明 Outbrain 的持续部署实现。整体来说,整套系统简化了部署过程,节约了大量的开发时间。

作者简介

李新,新浪产品部高级配置管理工程师,有丰富的软件流程方面的经验。


感谢黄玲艳对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2012-07-11 00:002294

评论

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

11 月亚马逊云科技培训与认证课程,精彩不容错过!

亚马逊云科技 (Amazon Web Services)

培训与认证

极客时间运维进阶训练营第二周作业

好吃不贵

分布式系统快速接入pinpoint1.8.3指南

程序员欣宸

Java Pinpoint 10月月更

首次!龙蜥社区生态用户实践精选集发布在即

OpenAnolis小助手

开源 龙蜥社区 生态伙伴 厂商 案例集

极光笔记 | 极光clickhouse千亿级数据分析实践之路

极光JIGUANG

JS事件,你真的懂吗(捕获,冒泡)?

乌龟哥哥

10月月更

Redis浅析(二)

Andy

你用 Excel 做的最酷的事情是什么?

Jackpop

2022-10-28:以下go语言代码输出什么?A:false false;B:true false;C:true true;D:false true。 package main import “f

福大大架构师每日一题

golang 福大大 选择题

用芯弹一首《大加洛普舞曲》:从AI-ISP,透视vivo的双芯之路

脑极体

一文看懂Htmx

天择

JavaScript htmx

企业数据上云,怎能少的了华为云企业交换机ESW?

科技怪授

ESW

千锋沈阳前端怎么样?学员真实案例

千锋IT教育

Java | 内部类

陌上

Java 编程 10月月更

IBM Websphere实践 实验4

w010w

Java jsp 10月月更 企业级应用程序开发 实验报告

【移动应用安全】Android文件系统

w010w

android 10月月更 安卓文件系统

千锋大连“匠心8载 感谢有你”周年庆典隆重举行

千锋IT教育

政务数据安全解决方案

前嗅大数据

政务 基础数据方案 数据方案

Excel做数据分析?是真的很强!

Jackpop

【web 开发基础】PHP 中的特殊流程控制(exit) -PHP 快速入门 (22)

迷彩

调试工具 10月月更 web开发基础 PHP基础 exit

流式计算常见的开源实现

穿过生命散发芬芳

10月月更 流式计算

Spring Boot和Spring Cloud的关系

阿泽🧸

Spring Boot 10月月更

国际移动设备识别码IMEI

Geek_古藤模根

移动设备识别 GSMA IMEI

Java | 接口

陌上

编程 Java、 10月月更

Redis浅析(一)

Andy

SQL 的查询语句

芯动大师

Python SQL语句 10月月更

峰会回顾 | 阿里云与StarRocks合作、开放、共赢

StarRocks

数据库

Python中的协议有什么作用?

Jackpop

Docker网络模式:Bridge和Host的区别,一文带你了解!

wljslmz

Docker 容器 软件 10月月更

想在杭州学前端,千锋IT培训怎么样?学员真实案例

千锋IT教育

“程”风破浪的开发者|【模块-Java布局】十分钟挑战鸿蒙Codelab组件

liuzhen007

OpenHarmony “程”风破浪的开发者

Outbrain经验分享之持续部署实践_研发效能_李新_InfoQ精选文章