G.系列导航

【G】开源的分布式部署解决方案 - 导航

已知问题

导航没有联动

因为权限只是做了基础的登录校验,考虑到后面导航要跟权限关联,所以暂时是写死的。

只有部分界面使用了Vue.js

因为刚开始没有太多js操作,想着用Razor更顺手更快,到后面做部署界面对前端操作较多,不只是各网页元素的信息同步还涉及到一些公用前端功能点抽取就选择了Vue.JS。

左边导航的Search无效

也是希望与权限关联上,支持搜索各个级别的页面,快速定位,暂时未实现。

设置部署流程的勾无效

目前不管是否勾选,会根据实际参数值是否设置而决定是否启用该流程。如设置了负载均衡,则无论是否勾选“安全部署预处理”都会控制负载均衡。

下拉框数据没有实时查询

目前下拉框的数据都在当前界面加载时只加载一次,除个别界面的下拉框显示是通过联动触发的以外。

一个服务器部署多个项目需要冗余服务器配置(已解决)

目前因为服务器与项目是一对一的关系,已经规划一对多的关系,相信用不了多久就会支持。

数据逻辑关系

使用方法

设置部署项目阶段,按照左侧导航从上到下设置即可。如已设置过可跳过该步骤。

用户管理

注册

目前没有做注册界面,需要在数据库里手动添加,密码是MD5(MD5(password))

修改密码

部署设置

持续集成

核心功能,目前G的部署文件包获取、转发、下载等唯一途径。想想没有部署文件包,那部署的意义何在?

持续集成类型:架构支持插件形式的扩展,但目前只支持了Jenkins(后面例子也以Jenkins为基础)

Json配置:这里偷懒,为了给将来扩展其他持续集成更灵活,所以用了Json。

 {
"Url": "http://jenkins.g.com:10010",
"JobName": "Test",
"ArtifactPath": "$deploy",
"AccountNumber": "jenkins.g.com",
"Token": "8640177a00acae9145dc4dc38a7d9de7",
}

Url:Jenkins的根目录

JobName:Jenkins的Job Name,这里要提一下,一个Job生成多个项目包的时候只需要配置一个Jenkins即可。Artifact Name在项目管理界面设置。一方面减少多次配置持续集成参数,另外支持了同一个Jenkisn Job不同项目可以共享生成的文件包。

ArtifactPath:通过Jenins生成的话,每个Job会有一个生成目录。

AccountNumber:Jenkins登录账号

Token:Jenkins API的Token

PS:如对Jenkins不熟悉的可以自行研究下Jenkins或等后续文章对Jenkins的一些简单应用,以配合G进行使用。

Windows性能监视器

搭配负载均衡使用时,可先降权,然后检测关键指标,如正在执行的请求数,等待该数值降到阈值以下再进行部署。为了减少某些业务场景不允许被中断却因部署而强行中断,如下单。

类别名称、计数器名称、实例名称均从Windows性能监视器中获取。

Windows性能监视器使用教学

计算机名称:暂时全部留空即可,目前留空会自动替换IP去当前部署的服务器检查Windows性能监视器中的指标。

阈值:小于阈值表示可以正常部署,那如果有长连接永远断不开怎么办?嗯,在项目界面有个最长等待时间作为双保险。

项目组

提供一个虚拟的项目分组,暂时并没有实质的功能。目的是为了把几个项目按照一定的逻辑捆绑在同一个虚拟分组内,做一个业务分层。

设置也只需要一个分组即可。

项目

项目基础属性

项目组:用于指定归属于哪个虚拟项目分组

项目类型:目前只支持Web的部署,后续会支持Windows Service,Winform/Console等。

宿主:目前只支持IIS,后续会支持自宿主。

宿主属性:目前只支持IIS,所以目前只需填写 应用程序池名称

绝对路径:指网站的根目录的上一级目录,这里有一个约定,IIS站点的根目录名称需要与Jenkins的Artifact Name(部署文件包名)相同

例如你的网站都放在 c:\ProjectInstance ,而你目前有个网站叫 G,部署在 c:\ProjectInstance\G ,那么此处填写的是 c:\ProjectInstance,而Jenkins生成的Artifact Name也必须是 G.zip

部署异常处理参数

自动重试部署次数:部署过程中可能会遇到一些预计中的错误导致的部署异常,如触发缓存Url的时候超时,但实际再尝试一下即可。当你也有类似业务的时候,即可设置此参数为你想要容错的次数。

部署异常阈值:如果你有10台做了负载的服务器时,预计挂2台服务器可以接受,那这里可以设置3,当有第三台服务器出现异常时才会停止后续的部署。

部署流程

(点击图片看大图)

持续集成:选择上面已经设置好的持续集成

持续集成包名:从指定的持续集成配置中找到你需要部署的zip包。格式为 xxx.zip,生成的包也必须是zip,因为目前只支持自动解压zip且是必须的。

负载均衡:架构上也支持负载均衡的插件扩展,目前只支持阿里云,当然如果你是单机、或不需要关心负载均衡在部署过程中的作用也可以不设置。

负载均衡值:如负载均衡选择的是阿里云时,此处需要设置 阿里云负载均衡的实例ID

Windows性能监视器:正式部署前的安全检查

最大等待时间:当选择了Windows性能监视器时,如果性能监视器始终无法降到阈值以下,也提供了一种保险机制可在等待超过时间后强制部署。

触发缓存Url:部署完成后如果有缓存预热界面,在此处设置即可。目前只支持Http Get请求。

环境标签

虚拟环境分组,推荐使用如 开发、测试、仿真、生产 等。

环境

同一个项目配置可以应用于不同环境,允许项目部署的时候选择部署环境且支持一次部署多个环境公用。

环境虽然也是一个虚拟分组,但却与服务器有强关系,用于分隔服务器边界。结合项目中指定的项目来划分项目的环境边界。

环境标签:选择所属的虚拟环境分组

项目:选择关联的项目,创建多个环境指定到一个项目,则意味着这些环境的部署将使用同一个部署文件包。

服务器

服务器标识:如果使用阿里云服务器,且要搭配负载均衡使用,此处填写 ECS实例ID。否则暂时可随意填写,本字段目前主要用于负载均衡控制

部署环境:指定当前服务器所属的部署环境,隐含项目关系

部署

部署管理

选择项目可进入部署管理的项目界面

部署管理-项目

点击创建部署任务,可以创建一个部署版本

创建部署任务

版本号:首次创建默认为 1.0.0.0,每次默认按.拆分把最后一位+1,也可自己指定

复制版本:在特殊业务情况下,一个Jenkins Job可能生成多个 Artifact,即一次编译多个项目的包,此功能允许多个项目使用同一个Jenkins Job Build下的包(如果你的编译很耗时,且有多层项目依赖,此功能在特殊业务场景下将省去你不少时间)。

部署环境:不选择即只编译不部署,选择部署环境后会自动跳转到部署机器人界面并完成自动部署。

部署机器人

1.正在构建

左下角控制台内包含了构建状态和后续操作的功能按钮。当前展示为Jenkins Job Building状态。

2.构建完成

3.开始部署

点击上图所示的开始部署按钮,将会进入自动部署界面。其中控制台会提供一个概览,如服务器部署数量进度,以及当前服务器进度。右边展示为服务器明细,会同步状态。

4.部署成功

5.部署异常

当部署出现异常时,当前服务器背景变为红色,且多一个 小昆虫 的图标,点击可以显示异常信息。

修复后可在左下角控制台内点击重试部署。

基于已有部署任务的部署

1.切换到部署任务管理界面

2.查看版本描述

3.查看构建状态

4.基于此项目版本创建自动部署(点击后如下图)

按环境部署,选择某个环境,将会基于选择的环境下所有服务器进行部署。

按自选部署,选择某个环境,将会显示其下所有服务器,允许自由选择部署某些服务器。

点击部署后跳转到“部署机器人”

【G】开源的分布式部署解决方案文档 - 使用手册的更多相关文章

  1. 【G】开源的分布式部署解决方案文档 - 手动安装

    G.系列导航 [G]开源的分布式部署解决方案 - 导航 序言 因各种原因,决定先写使用文档.也证明下项目没有太监.至于安装过程复杂,是因为还没有做一键安装,这个现阶段确实没精力. 项目进度 (点击图片 ...

  2. 【G】开源的分布式部署解决方案文档 - Web Deploy

    G.系列导航 [G]开源的分布式部署解决方案 - 导航 微软官方部署方式 右键项目->发布 这个大家应该再熟悉不过,在部署前有个预览界面可以看本次更新到底更新哪些文件. 既然它可以预览部署结果, ...

  3. 【G】开源的分布式部署解决方案文档 - 部署Console & 控制负载均衡 & 跳转持续集成控制台

    G.系列导航 [G]开源的分布式部署解决方案 - 导航 设置项目部署流程 项目类型:选择Console,这个跟功能无关,只是做项目分类,后面会有后续功能 宿主:选择Console 部署方式:选择原始, ...

  4. 【G】开源的分布式部署解决方案(一) - 开篇

    做这个开源项目的意义是什么?(口水自问自答,不喜可略过) 从功能上来说,请参考 预告篇,因自知当时预告片没有任何含金量,所以并没有主动推送到首页,而是私下的给一些人发的. 从个人角度上来说,我希望.n ...

  5. 【G】开源的分布式部署解决方案(三) - 一期规划定稿与初步剖析

    G.系列导航 [G]开源的分布式部署解决方案 - 预告篇 [G]开源的分布式部署解决方案(一) - 开篇 [G]开源的分布式部署解决方案(二) - 好项目是从烂项目基础上重构出来的 [G]开源的分布式 ...

  6. 【G】开源的分布式部署解决方案 - 预告篇

    为什么想到要做分布式部署解决方案? 当项目越做越大以后,你会发现部署变成一件极其头疼的事情.当然头疼的绝不仅仅在部署一个环节,比如新服务器环境搭建当中就许多坑要踩.各种重复性的工作,包括但不仅限于增加 ...

  7. 【G】开源的分布式部署解决方案(二) - 好项目是从烂项目基础上重构出来的

    分析目前项目结构 眼前出现这么一坨坨的文件夹,相信很多人已经看不下去了.是的,首先就是要把它给做掉. 按照这个项目文件夹的命名意图,大概可以划分如下: 1.Business:业务代码 2.Data:数 ...

  8. Rhel6-hadoop分布式部署配置文档

    理论基础: Hadoop 分布式文件系统架构 HDFS 负责大数据存储 MapReduce 负责大数据计算 namenode  master守护进程 datanode  slaves上负责存储的进程 ...

  9. _00024 尼娜抹微笑伊拉克_云计算ClouderaManager以及CHD5.1.0群集部署安装文档V1.0

    笔者博文:妳那伊抹微笑 itdog8 地址链接 : http://www.itdog8.com(个人链接) 博客地址:http://blog.csdn.net/u012185296 博文标题:_000 ...

随机推荐

  1. gcc 简单编译流程

    注意:GCC在链接时优先使用动态链接库,只有当动态链接库不存在时才考虑使用静态链接库,可在编译时加上-static选项,强制使用静态链接库. gcc -static  此选项将禁止使用动态库,所以,编 ...

  2. 如何用JS/HTML将时间戳转换为“xx天前”的形式【附源码,转

    如果我们有一份过去时间戳,如何使用JS/HTML将时间戳转换为"xx天前"的形式呢,以下是完整代码 <!DOCTYPE html> <html> <h ...

  3. Quartz_理解2

    一.核心概念   Quartz的原理不是很复杂,只要搞明白几个概念,然后知道如何去启动和关闭一个调度程序即可.   1.Job 表示一个工作,要执行的具体内容.此接口中只有一个方法 void exec ...

  4. 关于data-xxx属性大小写不敏感,不识别大写的几点总结

    1.所有标签属性,没有大小写区分,都是小写,如:data-userID,在输出后会变成data-userid,前者只能获取到'undefined'. 2.dataset 自动把 - 转换为驼峰.类似的 ...

  5. JS闭包深入理解(理解篇)

    看书的时候很是不明白为啥变量老是五,经过认真思考的出一下理解: function box() {   var arr = [];   for (var i = 0; i < 5; i++) {  ...

  6. DHCP协议

    来源摘取自百度百科 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服 ...

  7. Robot Framework的安装

    一.安装环境:Windows 64位操作系统64位2.7版本Python 二.简要步骤:1. 安装Python(RF是基于python 的,所以需要有python环境):2. 安装wxPython ( ...

  8. OC中extern,static,const的用法

    1.const的作用: const仅仅用来修饰右边的变量(基本数据变量p,指针变量*p). 例如 NSString *const SIAlertViewWillDismissNotification; ...

  9. android学习17——命令行建gradle工程

    使用命令行建gradle工程要涉及到几个工具的版本. 1.gradle的版本.这个用gradle -version查到. 2.SDK BuildTools的版本. 这个要先配好SDK的环境变量,然后在 ...

  10. InstallShield打包

    使用2010部分汉化版(2010之后找不到更新的破解版本),主要用于打包桌面应用程序. 主要步骤: 1.3种主要的工程类型: Basic MSI,安装脚本不易使用. InstallScript,无法加 ...