这个新体系大年夜 2016 年 4 月开端,经由一年的时光慢慢地完美。起初的模式是大年夜骨干分支的提交中选择特定的变革放到宣布分支上。宣布分支天天将这些变革推送到临盆情况。这种“ cherry-picking ”的特点是,天天选择变革的数量为 500 ~ 1000。剩下的变革就推入到每周宣布分支中。跟着时光的推移,提交的数量和介入个中的工程师都有所增长,宣布工程师的手工劳动变得过多,以至于无法持续。
摘要:Facebook 高速成长的 2007 年到 2016 年,他们一天安排 3 次代码,cherry-pick 集齐成千上万个 commit;如今应用类似持续交付的办法,每个 commit 能主动安排到 production。公司里有很多员工、很多用户的好处:新代码让公司所有员工先用上,因为员工数足够多,能很快发明问题;然后让 2% 的拜访量用上新代码,最后慢慢增长到 100% 的拜访量。
不久前有篇关于缩短 Facebook 宣布流程的文┞仿,阐述了将代码投入临盆的灵活办法。这篇文┞仿侧重讲述了他们在一年之内若何大年夜“ cherry-picking ”进级到“ push-from-master ”策略。早些时刻, Facebook 也分享了他们安排过程的细节。作者 Chuck Rossi 是 Facebook 的首位宣布工程师,今朝是 Facebook 宣布工程的工程总监。
Facebook 的宣布周期是“ quasi-continuous ” (准持续)——这只是一种委婉的说法,注解并非每次提交都邑安排到临盆情况,实际上它采取的是对几十到几百个提交进行批处理,每隔几个小时就进行推送。这种分层宣布的方法使任何变革的回滚很轻易。
这个 CD 体系的关键组件是一种控制办法,即谁将接收变革,以及用于安排和测量的主动化对象。在第一步中,经由一系列主动化测试后,变革就大年夜内部推送到 Facebook 员工。在这一阶段发明的任何回归,都邑被认为这一过程受阻或者停止。下一步涉及到“ canary deployment ”(金丝雀安排),只推送至临盆情况的 2% 。依附持续的监测来检测问题。如不雅一切顺利,这些变革将 100% 安排到临盆情况中。名为 Flytrap 的对象收集用户申报,并发送任何异常情况的告警。

Facebook 中的 Web 和移动产品遵守两条不合的路径,原生移动变革的安排频率低于 Web 。这两个都由名为 Gatekeeper 的体系控制。除此之外,Gatekeeper 还分别出了安排和宣布。这种分别带来了挑衅,包含保护向下兼容性。
因为对象和安排选项的性质,移动持续安排面对着一些特定的挑衅。Web 安排则更为轻易,因为 Facebook 拥有完全的技巧栈和对象。为懂得决这些挑衅,Facebook 已经构建了一些专注于更快的移动开辟的对象和库,包含 Buck 、Phabricator、 Infer、 React 以及 Nuclide 。Facebook 的移动安排是以三层来并发运行。
-
构建:归并到移动主分支上的所有代码都邑进行构建,这会针对受影响的所有产品(Instagram、Messenger)并且会跨各类芯片架构。
-
静态代码分析:Linters 和静态分析对象的组合,称为 Infer ,用于检查各类问题,包含资本泄漏、未应用的变量、有风险的体系调用和编码准则违规。
-
主动测试:包含单位、集成和端到端测试,会应用到 Roboelectric、XCTest、JUnit 和 WebDriver 等对象。
在代码变革的生命周期内,每次提交都邑履行移动构建并运行测试栈,如许就会运行很多次。单单 Android 一天就有 5 万到 6 万个构建版本。移动安排体系遵守较早的基于 Web 的模式,每周宣布一次,按 cherry-picking 策略随机选择变革。尽管代码传输速度和宣布频率有所增长,但工程师的临盆率保持不变。然而,本文提到的标准(代码行和推送次数),可能并非衡量临盆率的最佳标准。
据 2016 年 IEEE 的论文和相干评论辩论,Facebook 早在 2005 年就应用了某种情势的 CD。该论文中的一些结论列出了 CD 成功的先决前提:可不雅的持续投资、高度闇练的开辟人员、强大年夜的技巧治理,开放和平等的文化,风险回报衡量治理、客不雅回想掉败以及有专注力的小团队。
Facebook 的准持续安排体系具备这几个长处:没有推送热补丁的手工开销,对分布式工程师团队有更好的支撑,为工程师供给了更快的反馈轮回。
译者:sambodhi
查看竽暌耿文原文:How Facebook Achieves Rapid Release at Massive Scale
【编辑推荐】
- 苹不雅与Facebook参加AR大年夜战 智妙手机或被代替
- Facebook机密研发“最终沟通技巧”
- Facebook 正在研发代号为 Aloha 的视频聊天设备
- 跨越10亿人应用的Facebook改版了,新版的设计细节都在这儿!
- Facebook开源VoiceLoop,根据开放场景语音文字合成新语音
推荐阅读
近日,Stack Overflow 推出了一个法度榜样员薪水寂?骥。它可以经由过程你所拥有的技能、工作地区、教导程度、工作经验等,估算出你在编程界值若干钱。该对象将根据各类身分给出直不雅图形>>>详细阅读
地址:http://www.17bianji.com/lsqh/37682.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示