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