构建流程

  1. 构建服务器: 拉取指定分支代码
  2. 构建服务器: 安装依赖
  3. 构建服务器: 执行构建
  4. 构建服务器: 如果上线流程,则在 git 上创建 tag,供回滚使用
  5. 构建服务器:打包 node 服务代码,和静态资源代码

测试环境上线

  1. 构建服务器:执行构建
  2. jenkins:拉取打包好的静态资源和 node 服务代码
  3. jenkins: 静态资源部署到测试服务器
  4. jenkins: node 服务代码上传到测试服务器
  5. 测试服务器:启动服务(需要 root 权限来设置 host)

沙箱环境上线

同测试环境上线流程

线上环境上线

  1. 构建服务器: 执行构建
  2. jenkins:拉取打包好的静态资源和 node 服务代码
  3. jenkins:静态资源代码上传到线上
  4. jenkins:CDN 刷新
  5. jenkins:node 服务代码上传到线上
  6. 线上机器:启动服务

项目约定与构建参数

发布流程的使用方式

传入代码分支与目标机器,服务即可部署到指定机器

项目约定

为了自动化程序能够顺利对项目进行构建,需要项目提供以下接口,接口命令可以为空,但是入口必须存在。

npm install

安装项目依赖,安装后的目录在项目根目录下的 node_modules 目录中,如果有其他依赖需要安装,需要在 postinstall 或 preinstall 中写明。安装阶段构建工具只调用 npm install 一条命令。

npm run build

对项目进行构建,如需对静态资源进行构建,一并在 build 命令中执行,如果存在静态资源,静态资源构建后的位置必须在项目文件夹内。

npm start

启动 node 服务,用于在目标机器上执行,请注意 npm start 命令中应当包含关闭正在运行的本服务和重新服务两步。

host 文件

如果需要对线上机器设置 host,测试环境和沙箱环境分别在 config/hosttest、config/hostsandbox 中写明,格式即为 host 格式。

重要

不要依赖线上全局命令

除了 pm2 以外,线上不提供其他全局命令,如果需要此类命令,请在项目中自行依赖

规范 Pm2 的使用

建议使用 pm2 启动服务,服务必须有应用名,在停止服务时,禁止使用 pm2 kill ,因为这个命令同时会关掉同机器上的其他服务

测试环境与沙箱环境的 host 设置

在某些 node 服务中,需要对环境的 host 进行设置,构建工具会读取项目中的 config/hosts.yaml 自动对 host 进行修改

Host

只配置在测试机上需要的 host, 如代理后端服务的 ip,不要配置如 cdn 地址等浏览器端的 host

build 和 start 命令

build 和 start 命令必须是可以正常退出的命令,watch 等模式,会阻塞构建发布流程的执行

构建参数

此处的参数用于在 jenkins 处填写 scm_project 填写项目在 gitlab.58corp.com 下的分组及名称,格式 “group/project” deploy_type 选择部署类型static_name 静态资源目录,支持子目录 online_machine node 服务的线上资源地址,静态资源自动发布到对应目录下, 无需手动设置

 

node服务通过Jenkins上线流程的更多相关文章

  1. node服务成长之路

    我们的系统也从第一代平台开始到现在第四代平台更换中,对这四代平台做一个简单的介绍: 第一代平台,主要是集中式,以快速上线为目的:第二代平台主要是分布式改造,缓解各服务压力:第三代平台主要做服务端SOA ...

  2. 海量用户-高并发SAAS产品测试上线流程

    海量用户高并发SAAS产品测试上线流程 SAAS产品测试上线流程-以Web插件产品为例子 1   概述 在互联网产品中,IT公司之间更加注重产品功能之间的协作,SAAS形态的产品扮演着越来越重要的作用 ...

  3. Node服务一键离线部署

    背景说明 项目测试通过,到了上线部署阶段.部署的机器安全限制比较严格,不允许访问外网.此外,没有对外网开放ssh服务,无法通过ssh远程操作. 针对上面提到的两条限制条件,通过下面方式解决: 无法访问 ...

  4. 重学 Java 设计模式:实战责任链模式「模拟618电商大促期间,项目上线流程多级负责人审批场景」

    作者:小傅哥 博客:https://bugstack.cn - 原创系列专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 场地和场景的重要性 射击

  5. 微信小程序从开发到上线流程

    一.微信小程序从开发到上线流程 注册小程序 1.登录微信公众平台 https://mp.weixin.qq.com 2.在微信公众平台>立即注册>小程序中注册微信小程序 3.在邮箱中激活并 ...

  6. node服务的监控预警系统架构

    需求背景 目前node端的服务逐渐成熟,在不少公司内部也开始承担业务处理或者视图渲染工作.不同于个人开发的简单服务器,企业级的node服务要求更为苛刻: 高稳定性.高可靠性.鲁棒性以及直观的监控和报警 ...

  7. 玩转Windows服务系列——服务运行、停止流程浅析

    通过研究Windows服务注册卸载的原理,感觉它并没有什么特别复杂的东西,Windows服务正在一步步退去它那神秘的面纱,至于是不是美女,大家可要睁大眼睛看清楚了. 接下来研究一下Windows服务的 ...

  8. 玩转Windows服务系列——服务运行、停止流程浅析

    原文:玩转Windows服务系列——服务运行.停止流程浅析 通过研究Windows服务注册卸载的原理,感觉它并没有什么特别复杂的东西,Windows服务正在一步步退去它那神秘的面纱,至于是不是美女,大 ...

  9. 前端跨域方案-跨域请求代理(node服务)

    前端开发人员在本地搭建node服务,调用接口首先走本地服务,然后转发到api站点,node服务代码如下: var express = require('express'), request = req ...

随机推荐

  1. MySQL数据库入门常用基础命令

    MySQL数据库入门———常用基础命令      数据——公司的生命线,因此在大多数的互联网公司,都在使用开源的数据库产品,MySQL也因此关注度与使用率非常的高,所以做为运维的屌丝们,掌握它的一些基 ...

  2. Centos下安装nc命令工具安装以及使用

    1)netcat(nc)是一个简单而有用的工具,被誉为网络安全界的“瑞士军刀”,不仅可以通过使用TCP或UDP协议的网络连接读写数据,同时还是一个功能强大的网络调试和探测工具,能够建立你需要的几乎所有 ...

  3. 十二、LaTex中数学公式多行排版

  4. EF6

    EF讲解 EF(entityframework) ORM框架中的一种   然后 我们来说下 什么是  ORM (对象映射关系) object relation Mapping  微软 为了更简化 使用 ...

  5. 2019-11-29-WPF-轻量级-MVVM-框架入门-2.1.2

    title author date CreateTime categories WPF 轻量级 MVVM 框架入门 2.1.2 lindexi 2019-11-29 10:16:10 +0800 20 ...

  6. 2019-11-29-C#-标准性能测试高级用法

    title author date CreateTime categories C# 标准性能测试高级用法 lindexi 2019-11-29 10:13:16 +0800 2018-07-08 0 ...

  7. matlab 正弦信号产生

    fs=2400;%设定采样频率N=1000; %采样的点数n=0:N-1;t=n/fs; %1/fs相当于隔多长时间才一个点f1=50;%设定争先信号频率xn=sin(2*pi*f1*t);figur ...

  8. tar/gzip/zip文件打包、压缩命令

    一.tar打包备份工具 1.命令功能 tar 将多个文件或目录打包在一起,可用通过调用gzip或zip实现压缩.解压的命令:tar不仅可以多多个文件进行打包,还可以对多个文件打包后进行压缩. 2.语法 ...

  9. 通过telnet自动下载cfg配置文件

    源代码如下: import telnetlib import logging import datetime import csv import time def telnetfunc(enbid, ...

  10. jquery easyui datagrid 远程加载数据----把主键渲染为值遇到的问题及解决方案

    起因:数据库中一些字段存的是代表具体值的数字,需要渲染为具体值 monggodb中的字典 mysql中存放的值为:expertin代表教练擅长的搏击技能 jquery easyui中的相关代码如下:用 ...