博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
运维自动化方案
阅读量:5827 次
发布时间:2019-06-18

本文共 1872 字,大约阅读时间需要 6 分钟。

运维自动化简写

自动化运维主要包括以下几个方面:

  1. 系统安装
  2. 系统优化
  3. 系统监控
  4. 日志监控和收集
  5. 应用自动化部署
  6. 代码自动化部署
  7. 自动化测试
  8. 自动化更新
  9. 自动化扩容
  10. 配置文件管理

  11. 系统自动化安装和优化
    系统的自动化安装和优化,可以使用到自动化工具cobbler结合kickstart完成。
    优点:
  12. 可以完美支持linux和VMware的esxi系统
  13. 配置简单
  14. 可配置性强
  15. 可以基于mac地址的系统安装,全程无需人工干预
  16. 可以配置脚本,在安装系统完成之后可以同于yum源和安装上必须要的客户端软件,如salt-minion,Zabbix-agent 等,全程实现自动化
  17. 系统优化配置文件可以分类管理,基于web,基于数据库,基于代理的配置文件可以优化,都可以在配置在系统初始化的时候完成
  18. 系统监控
    系统监控工具我们采用开源的zabbix完成,现在收费产品也很多如基调,监控宝等。
    zabbix优点:
  19. 安装配置简单
  20. 可以实现自动化安装部署
  21. 可以实现自动化添加和监控客户端
  22. 形成的图标准确直观
  23. 可以定制监控项
  24. 可以基于api调用zabbix的监控项,扩展性强
  25. 日志监控和收集

    日志监控收集和监控工具使用elk(elasticsearch + logstash+ kibana)完成
    基本架构为:
    Logstash 收集,过滤和转存数据
    Elasticsearch: 存储和分析数据
    Kibana:展示数据
    由于logstash是java完成,需要依赖的java的环境,对系统的资源的消耗较大,且在大规模的日志收集的过程中logstash的读取和写入会是一个瓶颈,所以结构演化为:
    Filebeat+redis+logstash+elasticsearch+kibana
    Filebeat: 负责收集日志并存储到redis ,非常轻量,基本不消耗资源
    Redis: 消息队列
    Logstash: 负责从redis拉去日志,并过滤日志,解除客户端过大的瓶颈
    Elasticsearch: 存储数据和分析数据
    Kibana: 展示数据

  26. 应用自动化部署和代码自动化部署及更新

    应用自动化部署和代码自动化部署我们都可使用工具saltstack完成。
    Saltstack是基于python编写的一个自动化工具,配置文件基于yaml语法编写。所以代码非常清晰易读,使用saltstack可以完成应用的自动化部署,配置文件的统一管理和标准化。
    代码的自动化部署更新流程见下图(引用赵班长的图):
    运维自动化方案

  27. 获取代码: 可以从代码管理仓库获取,如svn,git等
  28. 编译: 这一步是可选的,如果是java代码可以使用像jenkins之类的工具自动构建和编译,像php之类的代码不需要编译,可以跳过编译这一步
  29. 匹配配置文件环境: 不同应用的配置文件不同,拉去相应的环境的代码,需要相应环境的配置文件做支持,如user登录,需要user.conf,用户支付的pay的配置文件pay.conf,配置文件必须单独管理,尤其是在重要的配置文件,可以单独建立一个配置文件仓库,使用svn,git都可以完成
  30. 打包:拉去代码之后,为了便于分发,需要对代码进行打包处理,tar,zip工具都可以完成
  31. 将代码包分达到目标主机:分发代码工具有很多,rsync,saltstack,scp等都可以完成
  32. 部署节点剔除集群: 代码copy完成之后,需要将集群节点提出集群,以免造成数据错乱,saltstack+etcd可以完成
  33. 代码部署:解压代码和创建软连接,创建软连接的目的是秒级回滚
  34. 比对配置文件:配置文件至关重要,不要将测试的配置文件同步到生产,这一步必须要匹配配置文件的环境和版本
  35. 重启web: 代码更新部署之后,需要重启web,推荐平滑重启,如nginx: kill -HUP nginx
  36. 自动化测试: 基于业务完成,现在很多自动化工具,python脚本,selenium等都是基于业务完成
  37. 加入集群:在测试完成成功之后将节点加入集群,继续下一节点,如果失败立即回滚到上一版本

  38. 自动化扩容
    自动化扩容,在系统资源出现告警危机的时候,我们需要为应用实现自动化扩容。
    自动化扩容跟业务紧密相关,可以使用当下时代的企业私有云完成如kvm,openstack等。Saltstack的salt-cloud提供了基于openstack的api,可以全自动化完成扩容。然后你也可以基于kvm完成全自动化的扩容,基于脚本都可以完成。

转载于:https://blog.51cto.com/mrdeng/2122643

你可能感兴趣的文章
Linux 文件IO理解
查看>>
Ninject 2.x细说---2.绑定和作用域
查看>>
30个非常时尚的网页联系表单设计优秀示例
查看>>
使用membership(System.Web.Security)来进行角色与权限管理
查看>>
opticom 语音质量验证白皮书
查看>>
3D实时渲染中的BSP树和多边形剔除
查看>>
Frank Klemm's Dither and Noise Shaping Page: Dither and Noise Shaping In MPC/MP+
查看>>
网络抓包的部署和工具Wireshark【图书节选】
查看>>
Redis在Windows+linux平台下的安装配置
查看>>
Maven入门实战笔记-11节[6]
查看>>
Local declaration of 'content' hides instance variable
查看>>
ASP.NET中 HTML标签总结及使用
查看>>
Linux下日志系统的设计
查看>>
爬虫IP被禁的简单解决方法——切换UserAgent
查看>>
php生成word,并下载
查看>>
紫书 习题8-11 UVa 1615 (区间选点问题)
查看>>
asp.net mvc学习(Vs技巧与Httpcontext)
查看>>
float数据在内存中是怎么存储的
查看>>
dedecms 修改标题长度可以修改数据库
查看>>
Matplotlib学习---用matplotlib画直方图/密度图(histogram, density plot)
查看>>