写点什么

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:002148

评论

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

创投基金黑钻资本Black3Lab Capital主投互联网3.0

股市老人

技术解析+代码实战,带你入门华为云政务区块链平台

创意时空

这些智能合约漏洞,可能会影响你的账户安全!

创意时空

金融科技创新者的困境

木风

金融科技 数字化转型 科技创新

IDEA配置tomcat

楠羽

#开源

微服务网关Gateway实践总结

Java 架构

阿里云高性能计算负责人何万青:阿里云大计算加速HPC与AI融合

阿里云弹性计算

AI HPC 高性能计算 无影云电脑 计算巢

低代码是什么?国内排名前 5 的低代码开发平台对比

蒋川

低代码 开发工具 开发平台

C/CPP基础练习题多维数组,矩阵转置,杨辉三角详解

CtrlX

c c++ 基础 8月月更

玩转KubeEdge保姆级攻略

乌龟哥哥

8月月更

【算法实践】一天路走到黑--手把手带你实现坚持不懈的线性查找

迷彩

Python 数据结构 算法实践 8月月更 线性查找

[教你做小游戏] 展示斗地主扑克牌,支持按出牌规则排序!支持按大小排序!

HullQin

CSS JavaScript html 前端 9月月更

电商订单全流程可观测性最佳实践

观测云

rocksdb和innodb的一些区别

趁早

构建万物可信的基石:解密区块链跨链技术

创意时空

艺术收藏NFT系统开发:NFT功能搭建

开源直播系统源码

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

【JVM】HotspotJVM精通垃圾回收器原理

小明Java问道之路

8月月更

[Go WebSocket] 为什么我选用Go重构Python版本的WebSocket服务?

HullQin

Go golang 后端 websocket 8月月更

影视动漫制作为什么要选择云渲染农场?

Finovy Cloud

计算器 云渲染 影视渲染

Go 代码城市上云——KusionStack 实践

SOFAStack

开源

区块链交易隐私如何保证?华为零知识证明技术实战解析

创意时空

【JVM】HotspotJVM 分代回收机制

小明Java问道之路

8月月更

基于Vue3常用代码块

青柚1943

typescript Vue3 Element Plus Pinia sortablejs

Network源码接口分析

长安链

【编程实践】认识爬虫并手把手带手实现新闻网站的爬取

迷彩

记录 Python爬虫 8月月更 网络爬虫

一起学习设计模式:责任链模式

宇宙之一粟

设计模式 8月月更

每日一R「21」Unsafe Rust

Samson

学习笔记 8月月更 ​Rust

iofod导入任意前端资产,以 Element UI 为例

iofod jude

小程序 前端 低代码 网页

自然语言处理--神经网络的复习

IT蜗壳-Tango

自然语言处理 nlp 9月月更

Java进阶(一)内存解析

No Silver Bullet

Java 9月月更 内存解析

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