一、前言

最近公司做了一套新产品,需要发布到不确定的硬件环境中(不同使用单位规模,使用人数,服务器提供的资源不同)若每次进行人工部署耗时费力,周期过长。

二、分析

具体的部署流程如下:

由上图流程进行分析:

制作部署脚本整个部署主要包括如下几大步骤:

1.基线部署

主要包含Linux系统加固、环境变量设置、更新、安装常用组件、生成除ROOT外的用户账号、关闭selinux、设置防火墙等

2.软件安装

既基础环境 包括nginx、nodejs+pm2、jdk+tomcat、mysql、redis、mongodb的安装、各软件配置参数优化(连接数、超时、工作模型等、内存cpu分配等等相关参数)、各软件安全加固(内容较多,略)、集群配置(nginx反向代理strem. mysql主主+ALTAS中间件读写分离)

开启各相关服务

3.代码部署

包含创建初始MySQL及mongo数据库,自动拉取代码(因代码处于快速迭代中,所以通过采取拉取最新代码压缩包解压方式获取最新代码,脚本安装包中不保存初始代码)开启对应的NODE服务及TOMCAT服务

4.上线更新

包含获取最新代码及触发更新(触发更新前进行备份+采用选择项进行更新,因项目设计三个组件更新web+mobile+server 两个Node进程及一个Tomcat进程,可灵活选择要更新的选项)

5.备份

包含mysql及MongoDB数据库的备份,(因每次触发更新前会备份旧版代码用于回退,且最新代码压缩包会保存在更新路径。不需代码备份)

三、实现方式及思想:

1.模块化

2.去耦合

3.可组合

4.灵活性

四、目录结构:

一个适合变化的产品部署集成包(nginx+jdk+tomcat+nodejs+mysql+redis+mongo+MYSQL主主(读写分离)集群建立+代码包+持续上线+备份)的更多相关文章

  1. Dubbo入门到精通学习笔记(二十):MyCat在MySQL主从复制的基础上实现读写分离、MyCat 集群部署(HAProxy + MyCat)、MyCat 高可用负载均衡集群Keepalived

    文章目录 MyCat在MySQL主从复制的基础上实现读写分离 一.环境 二.依赖课程 三.MyCat 介绍 ( MyCat 官网:http://mycat.org.cn/ ) 四.MyCat 的安装 ...

  2. 多云部署多主模式的MGR集群,每个云一个MGR 节点,满足业务单元化改造的需求

    欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 本 ...

  3. Docker部署Django项目+Nginx+Fluend日志收集 和redis、memcached、RabbitMQ、Celery

    前言 一.docker 1.docker是什么? Docker的英文本意是“搬运工”,Docker搬运的是集装箱(Container)可以成为容器,我可以把写的Django的WEB应用以及Python ...

  4. Elasticsearch7.6 集群部署、集群认证及使用、数据备份

    window 环境部署集群 注意:window下载解压elasticsearch一定需要解压多次.例如搭建的3节点的,需要解压3次,防止生成 cluster UUID 一致导致只能看到一个节点 1.e ...

  5. 学习神器!本机安装虚拟机,并安装Linux系统,并部署整套web系统手册(包含自动部署应用脚本,JDK,tomcat,TortoiseSVN,Mysql,maven等软件)

    1.   引言 编写目的 本文档的编写目的主要是在Linux系统上部署mis_v3员工管理系统,方便测试,并为以后开发人员进行项目部署提供参考 准备工作 软件部分 软件项 版本 备注 Mysql 5. ...

  6. ceph部署-集群建立

    一.配置storage集群1.建立集群管理目录(管理配置文件,密钥)mkdir ceph-clustercd ceph-cluster/ 2.创建一个新集群(需要先将主机名加入/etc/hosts 必 ...

  7. jenkins集群(四) -- 持续集成

    一.jenkins配置git 1.安装源码管理器  git:http://updates.jenkins-ci.org/download/plugins/git/ 去上面的网址中把离线插件下载下来,然 ...

  8. docker部署Javaweb项目(jdk+tomcat+mysql)

    步骤一:在主机下载安装docker,参照Centos7上安装docker 步骤二:下载Linux版本的JDK1.6和Tomcat6.0(其他项目若依赖其他版本的运行环境可选择另外版本下载),通过sec ...

  9. CentOS服务器安装部署Java环境(jdk,tomcat)

    第一步:卸载openjdk 用命令 java -version,如有下面的信息说明CentOS自带OpenJdk,没安装跳过这一步: 最好还是先卸载掉openjdk,再安装oracle公司的jdk.先 ...

随机推荐

  1. PCI PCI-X PCI-E介绍

    1.PCI 外设互联标准(或称个人电脑接口,Personal Computer Interface),实际应用中简称PCI(Peripheral Component Interconnect),是一种 ...

  2. [原] Android自动打包之命令行打包

    Android自动打包流程详细图: 总结为以下几个步骤: 1. 生成R文件 2. Java代码编译成class文件 3. class文件生成dex文件 4. 打包资源 5. 生成apk 6. 创建密匙 ...

  3. codeforces 597C - Subsequences

    枚举子序列的末尾,递推. 方案数:f[i = 以i结尾][k =子序列长度] = sum(f[j][k-1]),j < i. 转移就建立k个BIT. #include<bits/stdc+ ...

  4. swift语言的特点(相对于oc)

    1.泛型.泛型约束与扩展: 2.函数式编程: 3.值类型.引用类型: 4.枚举.关联值.元组等其他 上述为swift最大的特点 Another safety feature is that by de ...

  5. 【LOJ6060】「2017 山东一轮集训 Day1 / SDWC2018 Day1」Set(线性基)

    点此看题面 大致题意: 让你把\(n\)个数分成两部分,使得在两部分异或和之和最大的前提下,两个异或和中较小的那个尽量小.输出最优的较小异或和. 线性基 关于线性基,可以看一下这篇博客:线性基入门. ...

  6. 2018.11.4 Hibernate中一对、多对多的关系

    简单总结一下 多表关系 一对多/多对一 O 对象 一的一方使用集合. 多的一方直接引用一的一方. R 关系型数据库 多的一方使用外键引用一的一方主键. M 映射文件 一: 多: 操作: 操作管理级别属 ...

  7. transform,animate

    1.transform  用来定义变换 IE10及以上支持 示例:transform: rotate | scale | skew | translate |matrix; 一.旋转rotate 正数 ...

  8. idea + maven + webapp 项目搭建

    1.File-> New -> Project

  9. java反射 反射构造函数 报 wrong number of arguments 错误

    package com; import java.lang.reflect.Constructor; public class Person { public Person() { } public ...

  10. CodeForces - 348A Mafia (巧妙二分)

    传送门: http://codeforces.com/problemset/problem/348/A A. Mafia time limit per test 2 seconds memory li ...