我们有一个典型的 Dockerized Node/Express 应用程序,部署到 Digital Ocean 上的大约 100 台机器上。目前,整个部署(不包括测试)大约需要一个小时。
我习惯于仅需要 10 到 15 分钟即可完成部署,即使部署数千台机器也是如此。
我有点搞不清楚到底发生了什么(他们的部署系统相当定制),并开始收集数据。图像是在云端构建的,因此它不像某人的笔记本电脑上传时间那样显而易见。
然而,这不是我的主要问题。主要问题是公司里没有人认为一小时对于这次部署来说是有问题的时间。(以前是五个小时。)
你能指出我关于什么的数据吗是合理的时间?
更新:正如许多评论者猜测的那样,它最初并没有并行化。这是它用过的需要五个小时。但是,现在它已经并行化了(使用在 Ansible 上运行的自研系统,它应该已经并行化了?我不明白)。但它仍然需要一个小时。
我的直觉是,我们不需要投入大量的工程时间来优化任何东西,但我们只需要使用更多的标准工具。
注意:羞辱我的同事是题外话。这里的许多人都是初级员工或缺乏经验,而我的资历要高得多。
答案1
据我所知,没有适合所有人的“将应用程序部署到云端的典型时间”。
这取决于多个项目:
- 应用程序堆栈复杂性
- 自动化级别
- 团队技能
- 基础设施组件性能
- ...
您已经将工作时间从 5 小时缩短至 1 小时,这是一个很大的进步。经理们对 5 小时的工作时间很满意,现在他们对 1 小时的工作时间更满意了(我想)。
您多久完全重新部署一次应用程序?节省 30 或 45 分钟的成本是多少?再节省 30 或 45 分钟能给他们带来什么好处?您能向管理层展示节省这 30 或 45 分钟的投资回报率吗?
如果这意味着需要投入大量的工程工时、增加自动化的复杂性、需要雇用和培训越来越多的技术人员,以及增加解决问题的时间,那么有些人就不愿意再节省这 30 分钟。
答案2
除非部署进行重大的数据库重组,否则只需几分钟。
您的时间框架看起来像是每台机器循环运行的脚本。这毫无意义 - 如果您有 100 台机器,您应该开始并行化您的部署。