快速部署或如何在15分钟内部署前端

很长一段时间以来,我们有一个问题:部署前端项目有多容易和快速?

我们考虑过像詹金斯这样的工具。 许多已经配置了它的人都知道,它需要花费大量的时间进行配置,更重要的是,它还需要大量的系统资源。 在服务器上提高它意味着分配一个半GB的内存。 例如,当您拥有500兆字节的存储空间时,这是一种荣幸。

另一种是Mina。 这是一个很好的解决方案,我们在Ruby项目中使用了它。 但是,如果您只有一个前端怎么办? 把Ruby和捆绑? 不,太复杂了。 Mina当然具有强大的功能,但是我们希望在NodeJS上做到这一点而无需多余的手势。

最后,我们编写了Bash脚本,但它困扰了我们。 我们想到了编写自己的小型服务来部署前端应用程序的想法,该服务将是:

  • npm包
  • 有一个简单的配置
  • 花费10分钟进行配置,花费5分钟进行部署
  • 有一个发布系统(如果毕竟出了问题,有人说“
损坏,则可以安全,快速地返回到以前的版本)

而且我们使Runy-部署前端的便捷实用工具。

您只需要配置它,安装软件包后的第一个部署就是三个命令:
init-创建一个配置并在其中输入数据
设置 -创建项目结构
部署 -部署您的项目

仅此而已!

该模块简化了我们的生活! 现在,部署在一个团队中进行。 快速简便。 当新的开发人员来找我们时,您可以授予他们访问开发/阶段服务器的权限,以便他们可以自行部署。 初级开发人员也会发现它有用,他们不需要使用入门门槛,将来他们可以弄清楚该模块并获得新知识。

关于技术部分的一些知识(更详细的手册在github上 )。 Runy当前具有以下命令:初始化,设置,部署,解锁,回滚。

初始化


在命令调用位置创建一个配置文件。 您应该在其中输入数据。 如您所见,我们正在使用ssh-agent连接,因此配置中将没有密码。

// runy.js module.exports = { host: '0.0.0.0', //   username: 'username', //       port: 22, //   remotePath: '/your/project/path', //      git: 'link-to-your-git-repository', //  ( ssh)    agent: process.env.SSH_AUTH_SOCK, //   commands: [ //      'npm install', 'npm run build', ], }; 

设定


在配置中的指定路径上,它创建releases文件夹(它以数字1、2、3等存储发布)和.current.release文件(当前的发布号存储在其中)。

部署


该团队具有一定的保护能力,同时只有一个人可以进行部署。

该团队执行以下操作。 创建一个临时文件夹,安装一个项目,执行配置文件中的命令列表(命令)以拉出依赖关系并构建应用程序,创建一个新的发布文件夹,将刚刚构建的项目转移到此处,检查发布的数量并删除旧版本(现在已存储3个版本),创建一个指向当前版本的符号链接(当前版本在您的远程路径/当前路径上始终可用),用版本号更新文件,清理文件夹。

解锁


删除执行deploy命令时创建的保护文件。 通常,即使在处理错误时也会自动删除该文件,但是在所有情况下都存在此命令。

回滚


返回到先前版本的符号链接,并删除当前版本。

PS:我们仍然有开发此工具的想法,您也可以通过在此处创建/执行任务参与项目的开发。

让每个开发人员的部署变得更加方便和快捷。

Source: https://habr.com/ru/post/zh-CN413495/


All Articles