如何使用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
以下是该网络应用的外观:
2.创建一个伙伴项目
如果您还没有Buddy帐户 ,那么现在是创建帐户的好时机。 Buddy提供两个高级层和一个免费层,所有这些层都是基于云的。 目前,免费层可以满足您的需求,该层为您提供1 GB的RAM和2个虚拟CPU。
登录到Buddy帐户后,请按“ 创建新项目”按钮以开始使用。
当提示您选择Git托管提供商时,选择GitHub并授予Buddy访问您的GitHub存储库的权限。
现在,您应该可以在Buddy上查看所有GitHub存储库。 单击hackathon-starter存储库以开始为其创建自动化。
请注意,好友会自动将Node.js应用识别为Express应用。 这是因为我们的入门模板使用Express Web应用程序框架。
3.创建管道
在Buddy上,管道使您能够编排和运行所有任务。 每当您需要使用Buddy自动执行某些操作时,都可以为其创建新管道或将其添加到现有管道。
单击添加新管道按钮,开始创建您的第一个管道。 在接下来显示的表单中,为管道命名,然后选择“推入”作为触发模式。 您可能已经猜到了,选择此模式意味着将提交推送到GitHub后就立即执行管道。
下一步是将操作添加到管道中。 为了帮助您入门,Buddy会智能地生成与您的项目最相关的操作列表。
现在,选择Node.js操作,该操作将加载已安装Node.js的Docker容器。 我们将使用此操作来构建我们的Web应用程序并运行其所有测试。 因此,在下一个屏幕上,继续并键入以下命令:
npm installnpm test
4.附加服务
我们的Web应用程序使用MongoDB作为其数据库。 如果启动时无法建立与MongoDB服务器的连接,它将退出并显示错误。 因此,我们在Buddy上的Docker容器必须有权访问MongoDB服务器。
Buddy允许您轻松地将各种数据库和其他服务附加到其Docker容器。 要附加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选项。
在弹出的表单中,您必须指定虚拟机的IP地址。 此外,要允许Buddy连接到VM,您必须提供用户名并选择身份验证模式。
我认为最简单的身份验证模式是Buddy的SSH密钥 。 选择此模式时,Buddy将显示一个RSA公钥,您可以将其简单地添加到VM的授权密钥列表中。
为了确保您输入的凭据有效,现在可以按“ 测试操作”按钮。 如果没有错误,您应该看到如下所示的测试日志:
接下来,选择GitHub存储库作为文件的源,并使用“ 远程路径”字段在Google Cloud VM上指定目标目录。 浏览按钮可让您浏览VM的文件系统并选择正确的目录。
最后,按添加此操作按钮。
7.使用SSH
将代码复制到生产服务器后,必须再次在此处构建并安装其所有依赖项。 您还必须重新启动Web应用程序,以使代码更改生效。 要执行各种任务,您需要一个外壳。 SSH操作为您提供了一个,因此将其添加为管道的最后一个操作。
在弹出的表单中,您必须再次指定VM的IP地址和登录凭据。 然后,您可以键入要运行的命令。 这是安装依赖项并重新启动Node.js服务器的快速方法:
pkill -HUP node #stop node servercd my_projectnpm install #install dependenciesexport 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
如何使用Buddy构建和部署Web应用相关推荐
- 不使用 Maven 等构建工具,而使用原始方法在 IntelliJ IDEA 中整合 Tomcat 部署 Web 应用
不使用 Maven 等构建工具,而使用原始方法在 IntelliJ IDEA 中整合 Tomcat 部署 Web 应用 我们知道,部署 Web 应用可以直接将 Web 应用的文件夹置于 Tomca ...
- 单网卡部署WEB+Mail+FTP+ISA服务器之四:局域网内部署FTP和winwebmail服务器
一.目的:构建简单FTP和MAIL服务器为下一步发布到互连网做准备.另外如果你觉得Exchange很麻烦,就用winwebmail吧,绝对的简单方便,安全性也不错. 二.网络环境: 三.局域网发布FT ...
- 用Ant实现Java项目的自动构建和部署
Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一. ...
- Python学习笔记:Day15 部署Web App
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- Head First JSP---随笔九(部署Web应用)
Web应用部署 Web应用终于到了最后的重要时刻. Web应用部署 2.1 构建Web应用的文件和目录结构,其中可能包含 1. 静态内容 2. JSP页面 3. servlet类 4. 部署描述文件 ...
- 如何在 IntelliJ IDEA 中整合 Maven、Tomcat 部署 Web 应用
如何在 IntelliJ IDEA 中整合 Maven.Tomcat 部署 Web 应用 笔者的环境: JDK 11.0.12 Maven 3.6.3 Tomcat 9.0.41(Servlet 4. ...
- 如何构建和部署 SAP Commerce Cloud 项目
原文链接 SAP Commerce Cloud 提供了许多自助服务功能来配置.构建和部署商务解决方案. 当您第一次开始使用时,似乎需要了解很多.在本文中,我们将带您逐步了解如何使用自助服务功能来配置您 ...
- dash使用_使用Dash和SHAP构建和部署可解释的AI仪表盘
dash使用 In recent years, we have seen an explosion in the usage of Machine Learning (ML) algorithms f ...
- Jenkins部署Web项目到远程tomcat
原网址:http://blog.sina.com.cn/s/blog_b5fe6b270102v7xi.html 之前讲到的是如何构建一个项目,并且将代码进行编译.打包,那么打包完成最后的结果就需要发 ...
最新文章
- 设计模式 -- 策略模式
- bfs迷宫寻路问题(一看就懂的讲解)
- 【Android 逆向】Android 逆向基本概念 ( 定位内存中的修改点 | 基址寻址法 | 搜索定位法 )
- single-number-ii
- mysql集群会备份数据吗_mysql ndb集群备份数据库和还原数据库的方法
- eureka多了一个莫名其妙的服务_SpringCloud 服务注册与发现组件 Eureka
- html select设置不选中的值,如何定义 select 默认不选中任何值
- 如何在Redhat7.4安装CDH6.2
- Tensorflow2.0实战之GAN
- DELPHI 对象的本质 VMT
- 网络虚拟化中的 offload 技术:LSO/LRO、GSO/GRO、TSO/UFO、VXLAN
- 且行且走 (8月24,25日)
- 手机上日记APP推荐哪个比较好
- php 警告提示框,js弹出对话框(消息框、警告框)
- python定义多项式除法_python如何进行多项式的加减乘除
- SEO工作者面试基本都会被问到的问题
- play-framework的安装配置(OS X和windows版)
- Win11 msconfig修改后无法使用系统解决方法
- 【锐捷无线】AC热备配置
- office各种插件
热门文章
- python爬虫微信e校园签到,用Python爬虫的request方式实现自动签到!
- OS-机械硬盘的磁盘初始化
- linux - 异常:安装包冲突 conflicts with
- 好用的vue瀑布流插件-vue-masonry
- IO流、字节流和字符流
- Python识别身份证号码并检查是否合法(pysseract,dlib,opencv)
- Python 和matlab 关于DMD(动态模态分解)的实现和对比 21/06/08
- IEC60079-11 附录3电气间隙和爬电距离的计算
- python来历_python的由来
- 记canvas画笔笔迹的多次优化过程