![快来技术中台吧 带你轻松玩转Node.js 快来技术中台吧 带你轻松玩转Node.js](http://img.voidcn.com/vcimg/static/loading.png)
前言
用友云技术中台——开发者中心提供对开发态以及运行态的全面
支持,它可以看成是开发者的云、运维人员的云、DevOps的云、行业领域的云、
支持创新的云。它是
一个应用全生命周期的管理平台,底层基于容器技术(Docker),正在
快速改变着公司和
用户创建、发布和运行分布式应用的方式。
DevOps的理念使得软件行业日益清晰地认识到,为了按时交付软件产品和服务,开发、运维和运营工作必须紧密合作。用友云开发者中心将DevOps理念融入其中,致力于打造企业应用开发运维一站式服务。
本文以github上
一个开源
博客系统的前后端为例,介绍基于Node.js开发的前后端应用如何在开发者中心
快速部署。
1、Node.js前端应用部署流程
创建流水线
1)点击创建流水线按钮后,填写些基本信息
![快来技术中台吧 带你轻松玩转Node.js 快来技术中台吧 带你轻松玩转Node.js](http://img.voidcn.com/vcimg/static/loading.png)
2)填写配置参数信息
![快来技术中台吧 带你轻松玩转Node.js 快来技术中台吧 带你轻松玩转Node.js](http://img.voidcn.com/vcimg/static/loading.png)
填写配置信息时,
需要注意这几个地方:
·选择应用类型时,基于Node.js开发的应用都要选择“Node应用”;
·选择Git仓库构建方式后,点击“源码构建”按钮填写Git信息;
·部署前端项目时要选择“
Nginx-node”基础镜像;
·Node编译打包命令和构建目录要和
项目中设置的保持一致;
·Node前端项目不用填写启动命令,否则可能导致容器启动失败。
3)配置部署信息
![快来技术中台吧 带你轻松玩转Node.js 快来技术中台吧 带你轻松玩转Node.js](http://img.voidcn.com/vcimg/static/loading.png)
开发者中心的每条流水线包含多套环境,创建流水线时需选择要部署的环境。环境信息除了平台提供的环境之外,还可以
自定义环境。选择部署的环境后,需要选择
相应的资源池。
接下来设置应用运行的基础信息,
包括内存、
cpu、端口、环境变量、
用户自定义日志路径等。
执行流水线
首次创建流水线后,系统会根据配置在指定环境下
自动执行流水线。执行流水线时,流水线的各节点会依次执行。
![快来技术中台吧 带你轻松玩转Node.js 快来技术中台吧 带你轻松玩转Node.js](http://img.voidcn.com/vcimg/static/loading.png)
开发者中心
默认使用ynpm下载项目所依赖的npm包。ynpm是一款基于用友
内部的镜像库,能根据
用户网络进行
自动匹配、
自动切换、内网
快速下载,下载即缓存,实现一次下载,全员共享等
功能。在用友内网使用ynpm不仅
解决了npm官网中一些依赖包不能正常下载的问题,还加快了下载的速度,大大提高了镜像构建的效率。
开发者中心提供了查看流水线执行日志
功能。在流水线执行的过程中,
用户可以实时查看当前执行进度、明细、安装日志、编译日志以及执行异常的信息。
![快来技术中台吧 带你轻松玩转Node.js 快来技术中台吧 带你轻松玩转Node.js](http://img.voidcn.com/vcimg/static/loading.png)
跳转到应用详情
页面查看应用
当该环境的流水线执行完成后,平台会
自动部署
相应的应用。点击
页面右上角的“应用管理”可以查看应用的运行详情。
![快来技术中台吧 带你轻松玩转Node.js 快来技术中台吧 带你轻松玩转Node.js](http://img.voidcn.com/vcimg/static/loading.png)
![快来技术中台吧 带你轻松玩转Node.js 快来技术中台吧 带你轻松玩转Node.js](http://img.voidcn.com/vcimg/static/loading.png)
跳转到应用详情
页面后,此时可查看应用是否已健康运行。如果已经处于健康状态,则点击域名就可以访问我们部署的前端项目的
页面了。
在本示例中,前端项目打开后的
页面如下。
![快来技术中台吧 带你轻松玩转Node.js 快来技术中台吧 带你轻松玩转Node.js](http://img.voidcn.com/vcimg/static/loading.png)
这样,前端的项目已经部署起来了。
另外,当我们访问域名的时候,
默认打开的是项目的index.html
文件。如果项目有多个访问入口的话,平台也是
支持访问的。如当前部署的
项目中还有main.html
文件,那么在域名后拼接路径,即可访问,如
http://
**/main.html.
应用部署成功后,项目可能继续处于不断迭代的状态。开发者中心对应用迭代提供了丰富的
功能,
包括升级、回滚、日志、监控、
自动扩缩等。
![快来技术中台吧 带你轻松玩转Node.js 快来技术中台吧 带你轻松玩转Node.js](http://img.voidcn.com/vcimg/static/loading.png)
2、Node.js后端应用的部署流程
新建流水线
1)填写基本信息
和之前的例子一样,填写应用名称等基本信息。
![快来技术中台吧 带你轻松玩转Node.js 快来技术中台吧 带你轻松玩转Node.js](http://img.voidcn.com/vcimg/static/loading.png)
2)配置参数信息
![快来技术中台吧 带你轻松玩转Node.js 快来技术中台吧 带你轻松玩转Node.js](http://img.voidcn.com/vcimg/static/loading.png)
配置信息时,
需要注意以下几个地方:
·启动命令和端口和
项目中的保持一致;
·部署服务端项目时要选择node:version基础镜像;
·
项目中的启动端口可以从环境变量中读取,但是不要使用开发者中心的预置环境变量,如PORT、HOST等,因为这些环境变量不能
自定义,即使
自定义也不能生效。
3)配置部署信息
选择要部署的环境、资源池、内存、
cpu、环境变量等,
设置完成后,点击
“创建应用”按钮完成创建流水线。
执行流水线
用户在迭代
升级的过程中,可以随时编辑
各个节点的参数,保存参数后再次执行流水线时生效。
![快来技术中台吧 带你轻松玩转Node.js 快来技术中台吧 带你轻松玩转Node.js](http://img.voidcn.com/vcimg/static/loading.png)
其中“拉取
代码”节点提供了设置多git的
功能,可以同时设置多个Git仓库。
![快来技术中台吧 带你轻松玩转Node.js 快来技术中台吧 带你轻松玩转Node.js](http://img.voidcn.com/vcimg/static/loading.png)
另外,“
生成镜像”节点提供了
自定义Dockerfile的
功能,当
用户要实现一些复杂的构建部署逻辑或者个性化的逻辑时,就可以使用Dockerfile神器构建应用。比如我们可以在Dockerfile中设置其他npm源。
![快来技术中台吧 带你轻松玩转Node.js 快来技术中台吧 带你轻松玩转Node.js](http://img.voidcn.com/vcimg/static/loading.png)
本实例中,给出的
一个Dockerfile
内容如下图。
![快来技术中台吧 带你轻松玩转Node.js 快来技术中台吧 带你轻松玩转Node.js](http://img.voidcn.com/vcimg/static/loading.png)
查看流水线的执行日志,等待流水线的所有节点执行成功之后,
跳转到应用详情
页面查看应用。
@H_197_154@
跳转到应用详情
页面查看应用
![快来技术中台吧 带你轻松玩转Node.js 快来技术中台吧 带你轻松玩转Node.js](http://img.voidcn.com/vcimg/static/loading.png)
跳转到应用详情
页面后,检查应用是否健康。若
显示健康可以直接验证该项目的运行情况。如本示例中,点击域名后,在域名中拼接“/currentUser”这个地址并访问,接口返回的状态值为200,说明我们的这个应用已经部署成功了,如下图。
![快来技术中台吧 带你轻松玩转Node.js 快来技术中台吧 带你轻松玩转Node.js](http://img.voidcn.com/vcimg/static/loading.png)
3、结语 一般情况下,前端开发人员对运维知识了解程度相对不多,在日常的开发迭代、上线等过程中,都需要专业的运维人员来帮助解决环境问题,这也在很大程度上束缚了前端开发的工作。 开发者中心提供的流水线功能完美解决了这一痛点问题。基于流水线,前端人员可以自力更生的hold住开发、上线所有的环节,而且省时省力。编译、打包、发布等所有环节都在云上进行,不需要占用开发者本地任何资源,真正实现一键完成上线操作。 本文只是简单介绍了基于Node.js的前后端应用在开发者中心的应用部署流程。开发者中心还支持很多其他类型应用的部署,如Java Web、Java、静态网站、Python、Dubbo、Go、PHP、微服务编排等。除使用容器方式部署外,它还针对Java和Java Web类型应用提供了原生方式部署,以满足用户各式各样的需求。 开发者中心,因你而更加精彩!