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. TCP/IP协议族(二) HTTP报文头解析

    本篇博客我们就来详细的聊一下HTTP协议的常用头部字段,当然我们将其分为请求头和响应头进行阐述.下方是报文头每个字段的格式,首先是头部字段的名称,如Accept,冒号后方紧跟的是该字段名所对应的值,每 ...

  2. 论SNAPSHOT包的危害性

    先介绍一下背景:我们应用是一个标准的spring+webx工程,博主在一次项目发布前为了再次测试一下自己的代码,将分支部署到日常环境中,但是项目启动的时候报错: 第一眼看到这个堆栈后有点懵逼 第一是上 ...

  3. iOS 测试三方 KIF 的那些事

    一: KIF 三方库的配置   今天的广州天气还不错,原本想试试UI测试的,前几天也了解到很多公司都在用 KIF 这这三方框架!!今天也就试着做做,可就跪在了这个安装上,我用cocopods 导入了 ...

  4. Java三大修饰符

    1.static 修饰: 修饰属性:类变量,全类共有 修饰方法:静态方法,静态方法中不能直接访问非静态的方法和属性 静态方法只能被静态方法覆盖,并且没有多态 静态的方法或者属性不依赖于对象:类名.方法 ...

  5. (@WhiteTaken)设计模式学习——建造者模式

    Builder模式,也就是建造者模式或者生成器模式,是GoF提出的23种设计模式的一种. 这种模式是用来隐式的创建复合对象而提出来的. 创建复合对象的过程,不在主客户端显示. 下面直接上代码.以修建房 ...

  6. linux下php开发环境搭建(nginx+php+mysql)

    安装前准备工作 先安装一些必要的类库 yum install -y wget  zlib-devel bzip2-devel  curl-devel openssl openssl-devel vim ...

  7. GridControl基础设置(一)

    1. 如何解决单击记录整行选中的问题 View->OptionsBehavior->EditorShowMode 设置为:Click 2. 如何新增一条记录 (1).gridView.Ad ...

  8. Swift_字符串详解(String)

    Swift_字符串详解(String) 类型别名 //类型别名 fileprivate func testTypeAliases() { let index = String.Index.self p ...

  9. SQL SERVER的统计信息

    1 什么是统计信息     统计信息 描述了 表格或者索引视图中的某些列的值 的分布情况,属于数据库对象.根据统计信息,查询优化器就能评估查询过程中需要读取的行数及结果集情况,同时也能创建高质量的查询 ...

  10. HTML入门

    一些说明 写在前面:HTML和CSS,当你了解所有规则后,你应该多写页面并记录你出现的问题,这才是学习HTML和CSS的最佳方法 这是我学习一段时间之后,再次回顾HTML,希望大家也对HTML有不一样 ...