科技食谱

Slack的速度和软件开发稳定性的秘诀

在围绕IT服务的环境不断变化的同时,平衡软件开发的速度和稳定性正成为开发站点中的重要点之一。 Slack工程师(一种团队沟通工具)在博客上解释了他们的软件开发执行流程。他们如何实现兼顾速度和稳定性的软件开发?

在Slack中,开发是使用Git完成的,并且如果代码审查和测试在内部通过,则开发人员可以将拉取请求合并到master分支中。主分支开发环境的部署在北美总部的工作时间内进行,以应对意外问题。每天分发12次,每批次分配职责。分割分布是为了最大程度地减少错误的影响。

当Slack作为新版本发布软件时,它首先在Git中创建了一个发布分支。 release分支是标记发布历史记录所需要的,它是对发布到生产期间发现的问题进行故障排除的一个点。在完成发行分支后,您将一个新版本部署到封闭的测试环境中并进行测试。通过测试的内部版本将由内部人员进行评估,如果没有问题,则所有Slack用户中的10%,25%,50%,75%和100%将分阶段发布新版本。

如果分发过程中出现问题,则负责每个批次的人员将指导响应。可以尽早发现导致问题的拉取请求,并可以通过修复有问题的部件来创建新的构建,但是如果在部署到生产环境后发生问题,请回滚到先前的构建。

据说在建立这种开发流程之前已经经历了许多试验和错误。在Slack本身比今天小得多的时代,它在Amazon AWS 10实例上运行了一项服务,并且是一个通过rsync同步所有服务器的系统。如果测试在测试环境中通过,则开发流程是在生产环境中的简单部署,并且据说开发人员能够将其代码自由地分发到服务器。

但是,随着Slack服务规模的扩大,开发速度加快,通过在每个服务器上执行操作来分配代码来使整个服务器与Arsync同步的方法已达到极限。因此,我们更改了监视每个服务器的控制台密钥的方式,并且接收到密钥更改通知的服务器请求将其部署到Amazon S3。据说由于服务规模的扩大,这些变化能够应对发展的加速。

支持当前分发系统的另一个项目是Atomic Deploy。在采用此功能之前,它已直接部署到正在运行的操作环境中,因此在应用新功能之前先调用该功能的技术会导致错误或损坏网页。据说可以通过准备一个热目录(一个原子延迟运行的版本)和一个不运行的冷目录,然后将一个新版本应用于初始目录来替换,从而部署新版本而不会引起错误,冷热目录。

Slack表示将通过更好的工具和自动化来继续改善其开发系统。相关信息可以在这里找到。

lswcap

lswcap

通过每月的AHC PC和HowPC杂志时代,他在网络IT媒体上观看了“技术时代”,如ZDNet,电子报互联网经理,Consumer Journal Ivers的编辑,TechHolic出版商和Venture Square的编辑。 我很好奇这个仍然充满活力的市场。

Add comment

Follow us

Don't be shy, get in touch. We love meeting interesting people and making new friends.

Most discussed

%d 블로거가 이것을 좋아합니다: