如何使用Buddy构建和部署Web应用

从开发到生产的代码不必像通常那样容易出错和费时。 通过使用Buddy (一种持续集成和交付工具,可以兼用作强大的自动化平台),您可以自动化开发工作流程的重要部分,包括所有构建,测试和部署。

与许多其他CI / CD工具不同,Buddy具有令人愉悦和直观的用户界面,并具有柔和的学习曲线。 它还提供了大量经过良好测试的操作,可以帮助您执行常见任务,例如编译源代码和传输文件。

在本教程中,我将向您展示如何使用Buddy来构建,测试和部署Node.js应用程序。

先决条件

为了能够继续进行,您必须在开发服务器上安装以下组件:

  • Node.js 10.16.3或更高版本
  • MongoDB 4.0.10或更高版本
  • Git 2.7.4或更高版本

1.设置一个Node.js应用

当然,在进入Buddy之前,您需要一个可以构建和部署的Web应用程序。 如果已经有一个,请随时跳到下一步。

如果您没有可以试用的Node.js应用,则可以使用入门模板快速创建一个。 使用流行的Hackathon入门模板是一个好主意,因为它具有典型Node.js应用程序的所有特征。

在GitHub上分叉模板,并使用git将分叉下载到您的开发环境。

git clone https://github.com/hathi11/hackathon-starter.git

值得注意的是,Buddy与Git存储库一起使用。 它支持托管在GitHub,BitBucket和其他此类流行Git主机上的存储库。 Buddy还具有内置的Git托管解决方案,或者您可以将Buddy与您自己的私有Git服务器一起轻松使用。

克隆完成后,使用npm安装Web应用程序的所有依赖项。

cd hackathon-starter/

npm install

此时,您可以在本地运行该应用程序,并使用浏览器进行浏览。

node app.js

以下是该网络应用的外观:

Hackathon入门模板

2.创建一个伙伴项目

如果您还没有Buddy帐户 ,那么现在是创建帐户的好时机。 Buddy提供两个高级层和一个免费层,所有这些层都是基于云的。 目前,免费层可以满足您的需求,该层为您提供1 GB的RAM和2个虚拟CPU。

登录到Buddy帐户后,请按“ 创建新项目”按钮以开始使用。

好友首页

当提示您选择Git托管提供商时,选择GitHub并授予Buddy访问您的GitHub存储库的权限。

允许Buddy访问GitHub

现在,您应该可以在Buddy上查看所有GitHub存储库。 单击hackathon-starter存储库以开始为其创建自动化。

自动化hackathon-starter模板

请注意,好友会自动将Node.js应用识别为Express应用。 这是因为我们的入门模板使用Express Web应用程序框架。

3.创建管道

在Buddy上,管道使您能够编排和运行所有任务。 每当您需要使用Buddy自动执行某些操作时,都可以为其创建新管道或将其添加到现有管道。

单击添加新管道按钮,开始创建您的第一个管道。 在接下来显示的表单中,为管道命名,然后选择“推入”作为触发模式。 您可能已经猜到了,选择此模式意味着将提交推送到GitHub后就立即执行管道。

创建管道

下一步是将操作添加到管道中。 为了帮助您入门,Buddy会智能地生成与您的项目最相关的操作列表。

相关行动

现在,选择Node.js操作,该操作将加载已安装Node.js的Docker容器。 我们将使用此操作来构建我们的Web应用程序并运行其所有测试。 因此,在下一个屏幕上,继续并键入以下命令:

npm install

npm test

4.附加服务

我们的Web应用程序使用MongoDB作为其数据库。 如果启动时无法建立与MongoDB服务器的连接,它将退出并显示错误。 因此,我们在Buddy上的Docker容器必须有权访问MongoDB服务器。

Buddy允许您轻松地将各种数据库和其他服务附加到其Docker容器。 要附加MongoDB服务器,请切换到“ 服务”选项卡,然后选择“ MongoDB” 。 在接下来显示的表单中,您将能够指定详细信息,例如您喜欢的主机名,端口和MongoDB版本。

配置MongoDB服务

记下您输入的详细信息,然后按“ 保存此操作”按钮。

接下来,您必须配置Web应用程序以使用Buddy的MongoDB服务器的URI。 为此,您可以更改.env.example文件中MONGODB_URI字段的值,也可以在Buddy上使用环境变量。 现在,让我们继续后一种选择。

因此,切换到“ 变量”选项卡,然后按“ 添加新变量”按钮。 在弹出的对话框中,将“ 密钥”字段设置为MONGODB_URI ,将“ 值”字段设置为基于先前选择的主机名的有效MongoDB连接字符串。 然后按创建变量按钮。

创建环境变量

官方文档提供了有关在Buddy管道中使用环境变量的更多信息。

5.运行管道

即使只有一个动作,我们的管道也已可运行。 要运行它,请按运行管道按钮。

现在将带您到一个屏幕,您可以在其中实时监视管道的进度。 此外,您可以按任意   记录按钮(管道中的每个动作都有一个),以仔细查看正在执行的命令的实际输出。

正在执行的管道

当然,您也可以通过将提交推送到GitHub存储库来运行管道。 我建议您对Web应用程序进行一些更改,例如通过修改views / partials / header.pug文件来更改其标题,然后运行以下命令:

git add .

git commit -m "changed the header"

git push origin master

当最后一个命令完成时,您应该能够看到新执行的管道自动启动。

6.移动文件

构建成功并且所有测试都通过后,通常需要将代码移至生产环境。 Buddy具有预定义的操作,可以帮助您安全地将文件传输到几种流行的托管解决方案,例如Google Cloud Platform,DigitalOcean和Amazon Web Services。 此外,如果您更喜欢使用自己的运行SFTP或FTP的专用服务器,那么Buddy也可以直接使用这些协议。

在本教程中,我们将使用Google Compute Engine实例作为生产服务器,该实例不过是托管在Google云上的虚拟机。 因此,切换到管道的“ 动作”选项卡,然后按“ 构建和测试”动作下方所示的+按钮添加一个新动作。

在下一个屏幕上,向下滚动到Google Cloud Platform部分,然后选择Compute Engine选项。

Google Cloud Platform操作

在弹出的表单中,您必须指定虚拟机的IP地址。 此外,要允许Buddy连接到VM,您必须提供用户名并选择身份验证模式。

我认为最简单的身份验证模式是Buddy的SSH密钥 。 选择此模式时,Buddy将显示一个RSA公钥,您可以将其简单地添加到VM的授权密钥列表中。

输入Cloud VM凭证的表格

为了确保您输入的凭据有效,现在可以按“ 测试操作”按钮。 如果没有错误,您应该看到如下所示的测试日志:

测试连接

接下来,选择GitHub存储库作为文件的源,并使用“ 远程路径”字段在Google Cloud VM上指定目标目录。 浏览按钮可让您浏览VM的文件系统并选择正确的目录。

选择目标目录

最后,按添加此操作按钮。

7.使用SSH

将代码复制到生产服务器后,必须再次在此处构建并安装其所有依赖项。 您还必须重新启动Web应用程序,以使代码更改生效。 要执行各种任务,您需要一个外壳。 SSH操作为您提供了一个,因此将其添加为管道的最后一个操作。

在弹出的表单中,您必须再次指定VM的IP地址和登录凭据。 然后,您可以键入要运行的命令。 这是安装依赖项并重新启动Node.js服务器的快速方法:

pkill -HUP node #stop node server



cd my_project

npm install  #install dependencies



export MONGODB_URI=

nohup node app.js > /dev/null 2>&1 &  #start node server

如上面的Bash代码所示,您必须重置MONGODB_URI环境变量。 这是为了确保您的生产服务器连接到其自己的MongoDB实例,而不是Buddy的MongoDB服务。

再次按“ 添加此操作”按钮以更新管道。

此时,管道具有依次运行的三个动作。 它看起来应该像这样:

完成的管道

运行管道按钮以启动它。 如果没有错误,则Buddy只需一两分钟即可将Node.js Web应用构建,测试和部署到Google Cloud VM。

结论

能够立即发布Web应用程序的新功能,错误修复和增强功能,可以使您在竞争中占据绝对优势。 在本教程中,您学习了如何使用Buddy的管道,预定义的操作和可附加的服务来自动化和加速诸如构建,测试和部署Node.js应用程序之类的常见任务。

Buddy平台可以做的事情还很多。 要了解更多信息,请参阅其广泛的文档

翻译自: https://code.tutsplus.com/tutorials/how-to-build-and-deploy-a-web-app-with-buddy--cms-34009

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值