type
status
slug
summary
tags
category
icon
password
new update day
Property
Oct 22, 2023 01:31 PM
created days
Last edited time
Oct 22, 2023 01:31 PM

1-自动化部署概述

1.1 业务流程

  1. 运维标准化,ITIL
  1. 自动化安装-Cobbler
  1. 监控体系-Zabbix
  1. 配置管理-SaltStack
  1. 自动化代码部署
  1. 日志平台-ELKStack

1.2 目前的代码手动部署

  1. 纯手工 scp
  1. 纯手工登录git pull,svn update
  1. 纯手工 xftp 往上拉
  1. 开发给一个压缩包,rz上去、解压
缺点:
  1. 全程运维参与,占用大量时间
  1. 上线速度慢
  1. 人为失误多。管理混乱
  1. 回滚慢,不及时

1.2 规划

1.2.1 环境的规划

  1. 开发环境-开发者本地有自己的环境,然后运维需要设置的开发环境,大家公用的服务。例如:开发数据库 mysql,其它:redis、Memcached
  1. 测试环境:功能测试环境和性能测试环境
  1. 预生产环境:生产环境集群中的某一个节点担任。
  1. 生产环境:直接对用户提供服务的环境。
预生产环境产生的原因:
  1. 数据库不一致:测试环境和生产环境数据库肯定是不一致的。
  1. 使用生产环境的联调接口。例如,支付接口。

1.2.2 设计生产自动化部署系统

已经有一个可以上线的代码在代码仓库。我们如何设计一套生产自动化部署系统。
  1. 规划
  1. 实现
  1. 总结和扩展。PDCA
  1. 在生产环境应用
  1. 一个集群有十个节点。
    1. 实现,一键部署这10个节点
    2. 一键回滚到任意版本
    3. 一键回滚到上个版本
部署、回滚
部署:
  1. 代码在那儿:svn、git。
  1. 获取什么版本代码?
    1. 直接拉取某个分支
    2. 拉去版本号(svn)拉取指定tag
  1. 差异解决:
    1. 各个节点直接差异
      1. 配置文件未必一样
      2. crontab.xml
      3. 预生产节点
    2. 代码仓库和实际的差异
      1. 配置文件是否存在代码仓库中
      2. 配置文件只在部署上有。
      3. 单独的项目
      4. (所有的数据库用户名密码、只有运维知道、设置一个 config.sample 文件,部署的时候进行替换。)
  1. 如何更新
    1. java tomcat。需要重启
  1. 测试。
  1. 串行和并行(根据需要、分组部署)
  1. 如何执行
    1. shell ./执行
    2. web 界面
自动化部署学习之——自动化部署加回滚脚本自动化部署学习之——自动化部署流程设计