非死book 怎样实施部署
fmms 12年前
<p> 最近一周 非死book 内部放出了一些关于 非死book 的部署流程的消息。如果你不想了解整个内部信息的话,这里我把这些信息做了一个整合概括。这些信息直接来自查克·罗西,而查克·罗西就是 非死book 发布工程组的负责人,这里有瑞恩·保罗对他的采访:</p> <p> 非死book 发展文化的一个重要方面是开发人员对他们的代码在产品中的表现完全负责。这一理念反应了 DevOps,这样可以减小开发人员与运维人员之间的隔阂。</p> <p> 如果在 非死book 更新中任何代码在产品中出现问题,这些代码的开发者与修复这些问题挂钩,必须确保问题尽快被解决。</p> <p> 对于部署来讲,非死book 使用:</p> <ul> <li>使用自定义的 BitTorrent 的 P2P 系统</li> <li>站点更新耗时 15-30分钟</li> <li>JS、CSS、图像使用分布式的 CDN</li> </ul> <p> 部署步骤</p> <ol> <li>在进行全面的更新之前,新代码首先被推送到“A2”层——非死book 的少量公共服务器。这个阶段的测试把更新特性随机暴露给 非死book 的部分正式用户,但只是所有用户的一小部分而已。</li> <li>在 IRC 上初始化了一个 checkin 过程。此时所有的开发者,不管是提交更新或者没有提交更新,都会被通知,并要求回应,是否做好了系统全面更新的准备。</li> <li>当准备开始实施更新的时候,在一个终端里输入了一行命令,然后整个过程就开始了。</li> <li>通过 非死book 的基于 Web 的监控工具观察整个更新过程。</li> </ol> <p> 有一小部分的服务器在部署过程中会失败,不过这通常不会造成任何问题。这是因为任何 非死book 服务器能处理任何页面请求,所以他们不必担心关于序列化和移植用户 session 状态。服务器在升级的过程中能保持收到的页面请求,就想我们知道的一样,不会因此而使用户下线。</p> <p> 部署的频度</p> <ul> <li>在绝大多数时间里,每个工作日都有一个小规模的更新</li> <li>每周通常是周二有一个大型更新。</li> </ul> <p> 在我们看起来比较好的公司例如 Google、非死book,下面这句话听起来非常真实可靠:“Release early and often.”</p> <p> via <a href="/misc/goto?guid=4958337630873504896" target="_blank">dzone</a></p>