• 运维自动化发展


    # 运维自动化发展


    ## 运维学习和发展的一个线路

    - 1.搭建服务(部署并运行起来)  
    - 2.用好服务(监控、管理、优化)  
    - 3.自动化(服务直接的关联和协同工作)  
    - 4.产品设计(如何设计一个监控系统)  

    **云计算的核心竞争力是运维!**  

    系统架构师(偏管理):网络  系统  数据库  开发  云计算  自动化  运维管理  服务管理 项目管理  测试  业务
    专注于某一领域  
    解决方案架构师

    ## 运维工作内容分类

    - 监控运维(7x24运维值班、故障处理)  
    - 应用运维(业务熟悉、服务部署、业务部署、版本管理、灰度发布、应用监控)  
    - 安全运维(整体的安全方案、规范、漏洞监测、安全防护等)  
    - 系统运维(架构层面的分布式缓存、分布式文件系统、日志收集、环境规划(测试、开发、生产)、架构设计、性能优化)  
    - 基础服务运维(包含运维开发)(内部DNS、负载均衡、系统监控、资产管理、运维平台)  
    - 基础设施运维(系统初始化、网络维护)  
    - 机房运维(负责设备上下架、巡检、报修、硬件监控)

    阿里云:  
    SLB  LVS + Tengine(Nginx)  
    ECS  KVM

    ## 运维标准化

    **物理设备层面:**  
    1.服务器标签化、设备负责人、设备采购详情、设备摆放标准  
    2.网络划分、远程控制卡、网卡端口  
    3.服务器机型、硬盘、内存统一,根据业务分类  
    4.资产命名规范、编号规范、类型规范  
    5.监控标准

    **操作系统层面**  
    1.操作系统版本  
    2.系统初始化(配置DNS、NTP、内核参数调优)  
    3.基础Agent配备(Zabbix agent、logstash agent、salt minion)  
    4.系统监控标准(CPU、内存、硬盘、网络、进程)

    **应用服务层面:**  
    1.Web服务器选型(nginx、Apache)  
    2.进程启动用户、端口监听规范、日志收集规范(访问日志、错误日志、运行日志)  
    3.配置管理(配置文件规范、脚本规范)  
    4.架构规范(Nginx+keepalived、LVS+keepalived等等)  
    5.部署规范(位置、包命名等)  

    **运维操作层面:**  
    1.机房巡检流程(周期、内容、保修流程)  
    2.业务部署流程(先测试、后预生产,再生产。回滚)  
    3.故障处理流程(紧急处理、故障升级、重大故障处理)  
    4.工作日志流程(如何编写工作日志)  
    5.业务上线流程(1.项目发起人 2.系统安装 3.部署nginx 4.解析域名 5.测试 6.加监控)  
    6.业务下线流程(谁发起,数据如何处理)  
    7.运维安全规范(密码复杂度、更改周期、VPN使用规范、服务登陆规范、rm命令的参数写在最后面)  

    标准化:规范化  流程化  文档化

    目标:文档化
      


    ## 运维自动化发展-工具化

    **工具化:**

    - 1.shell脚本(功能性(流程)脚本、检查性、报表性)  
    - 2.开源工具:zabbix、elkstack、saltstack、cobbler

    **目标:**

    - 1.促进标准化的实施  
    - 2.将重复的操作简单化  
    - 3.将多次操作流程化  
    - 4.减少人为操作的低效和降低故障率

    工具化和标准化是好搭档

    **痛点:**

    - 1.你至少要ssh到服务器执行,可能出错  
    - 2.多个脚本有执行顺序的时候,可能出错  
    - 3.权限不好管理,日志没法统计  
    - 4.无法避免手工操作

    **例子:**

    比如某天我们要对一个数据库从库进行版本停机升级。那么要求评估:  
    停机影响:  
    3:00  晚上有定时任务连接该数据库,做数据报表统计    

    - 1.凌晨3:00 我们所有系统的定时任务有哪些crontab  
    - 2.这些crontab哪些要连接我们要停止的从库  
    - 3.哪些可以停,哪些不能停(修改到主库),哪些可以后补  
    - 4.这些需要后补的脚本哪个业务的,谁加的,什么时候加的

    ## 运维自动化发展-web化

    运维平台  
    例子:Job管理平台  

    - 1.做成web界面  
    - 2.权限控制  
    - 3.日志记录  
    - 4.弱化流程  
    - 5.不用ssh到服务器,减少人为操作造成故障 Web ssh  

    DNSWeb管理 bind-DLZ  
    负载均衡Web管理  
    Job管理平台  
    监控平台  zabbix  
    操作系统安装平台

    ## 运维自动化发展-服务化(API)

    - DNSWeb管理 bind-DLZ  dns-api  
    - 负载均衡Web管理     slb-api  
    - Job管理平台    job-api  
    - 监控平台  zabbix  zabbix-api  
    - 操作系统安装平台   cobbler-api  
    - 部署平台    deploy-api  
    - 配置管理    saltstack-api

    **智能化实现**

    - 1.调用cobbler-api安装操作系统
    - 2.调用saltstack-api进行系统初始化
    - 3.调用dns-api解析主机名
    - 4.调用zabbix-api将该新上线机器加上监控
    - 5.再次调用saltstack-api部署软件(安装nginx+php)
    - 6.调用deploy-api将当前版本的代码部署到服务器上
    - 7.调用test-api 测试当前服务器运行是否正常
    - 8.调用slb-api 将该节点加入集群

    ## 运维自动化发展-智能化
    运维自动化发展层级:  
     
    - 标准化、工具化
    - Web化、平台化
    - 服务化、API化
    - 智能化

    智能化的自动化扩容、缩容、服务降级、故障自愈


    **自动化扩容**  
    1.zabbix触发Action  
    触发条件和决策:  

    - 1.当某个集群的访问量超过最大支撑量,比如10000
    - 2.并持续5分钟
    - 3.不是攻击
    - 4.资源池有可用资源
      * 当前网络带宽使用率
      * 如果是公有云--钱够不够
    - 5.当前后端服务支撑量是否超过阈值  如果超过应该后端先扩容
    - 6.数据库是否可以支撑当前并发
    - 7.当前自动化扩展队列,是否有正在扩容的节点
    - 其他业务相关的

    创建虚拟机之前,先判断Buffer是否有最近X小时已经存在之前已经移除的虚拟机,并查询软件版本是否和当前一致,如果一致,跳过234步,如果不一致,跳过23步

    2.Openstack 创建虚拟机   
    3.Saltstack 配置环境  
    4.部署系统 部署当前代码  
    5.测试服务是否可用(注意间隔和次数)  
    6.加入集群  
    7.通知(短信、邮件)

    **自动化缩容**  
    - 1.触发条件和决策  
    - 2.从集群中移除节点  
    - 3.通知
    - 4.移除的节点存放于Buffer里面
    - 5.Buffer里面超过1天的虚拟机,自动关闭,存放于xx区
    - 6.xx区的虚拟机,超过7天的清理删除










  • 相关阅读:
    svnserve 配置
    JDBC与JTA的区别
    Redhat E5上安装Subversion 1.6详解
    CentOS5.3 编译 mod_jk 1.2.15 链接器 整合apache httpd 和 tomcat
    Linux对逻辑卷的创建与管理
    spring 包的解释
    vue.js之router详解(一)
    Ubuntu12.10 高速全自动配置bash脚本
    PHP execl导出/展示
    有关Linux下的一些配置
  • 原文地址:https://www.cnblogs.com/bingabcd/p/7648638.html
Copyright © 2020-2023  润新知