为了帮助解决这一问题,Buffer 开发人员编写了一个部署机器人,该机器人包装了 Kubernetes 部署过程,并且每个团队都可以使用。”“以前,我们的数据分析师会更新
Python 分析脚本,并且必须等待该团队的主管单击该按钮并部署它,”Farrelly 解释道。“现在,我们的数据分析师可以进行更改,输入
Slack 命令,‘/deploy’,它会立即进行部署。他们不需要等待这些缓慢的周转时间,他们甚至不知道它在哪里运行。这些都不重要了。
团队使用 Kubernetes 从头开始构建的第一个应用程序是一种新的图像大小调整服务。作为一种社交媒体管理工具,它允许营销团队通过发帖进行协作,并通过多个社交媒体配置文件和网络发送更新,Buffer 必须能够根据需要调整照片的大小,以满足不同的社交网络。Farrelly 说:“我们一直有这些拼凑在一起的解决方案。”
为了创建这项新服务,一位高级产品工程师被指派学习 Docker 和 Kubernetes,然后构建服务、测试、部署和监视服务,他能够相对快速地完成该服务。Farrelly说:“在我们以往的工作方式中,反馈循环流程要长得多,而且很微妙,因为如果你部署了某些东西,就存在破坏其他东西的风险。”“我们通过围绕 Kubernetes 构建的部署类型,能够及时检测 Bug 并修复它们,并使其部署得超快。这一秒正在修复漏洞,不一会就上线运行了。”
此外,与旧系统不同,他们只需一个命令就可以水平缩放内容。“当我们推出它,”Farrelly说,“我们可以预测,只需点击一个按钮。这使我们能够处理用户对系统的需求,并轻松扩展以处理它。”
他们以前不能做的另外一件事是金丝雀部署。Farrelly说,这种新功能“使我们在部署重大变革方面更加自信。”“以前,虽然进行很多测试但仍表现不错,但它也存在很多‘手指交叉’。这是每天运行 800000 次的东西,这是我们业务的核心。如果它不工作,我们的业务也无法运行。在 Kubernetes 世界中,我可以执行金丝雀部署以测试 1%,如果它不工作,我可以很快将其关闭。这使我们在快速部署和推出新更改的同时降低风险的能力得到了提高。”