快来技术中台吧 带你轻松玩转Node.js


前言
  用友云技术中台——开发者中心提供对开发态以及运行态的全面支持,它可以看成是开发者的云、运维人员的云、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类型应用提供了原生方式部署,以满足用户各式各样的需求。
  开发者中心,因你而更加精彩!

你可能感兴趣的:(快来技术中台吧 带你轻松玩转Node.js)