博主的自动化运维之路
目录:
很幸运,公司有一套属于自己的自动化运维平台,本系列以后的内容会拆解各个部分来进行代码编写,服务部署等等。
本博文是一个类似目录的博文,会对后续的博文进行导航。
为什么会有自动化运维
- 运维是一个互联网服务的基石,要求安全稳定
- 人工无法满足技术,业务,管理方面的需求
- 实现性能和服务的最优化
- 静态设备结构转化为需求动态弹性响应
- 提高运维质量,降低运维成本
- 解放运维人员
- 流程透明化,出现问题迅速定位问题并解决问题
自动化的前提
服务部署等标准化是自动化运维的前提
- 部署代码,服务的目录结构标准化
- 报警信息标准化
- 更多待补充
今年做的年度优化
- 监控项报警信息
- 成本优化(ec2根据cpu,内存,网卡进行调整,考虑当天峰值)
- 成本优化(ebs更换ebs磁盘)
- 成本优化(cdn图片进行优化)
- 成本优化(s3存储策略)
- ELK优化
- WAF安全
- 服务规范化
服务的标准化就是自动化的前提,其他优化是年度对公司运维成本的优化。
定时发送邮件
邮件内容 | 目的 |
---|---|
磁盘使用 | 用于优化ebs磁盘大小 |
cpu使用 | 用于优化ec2机型 |
内存使用 | 用于优化ec2机型 |
机器启动 | 用于优化ebs磁盘 |
时间同步 | 基础时间同步服务 |
各库慢查询 | 用于数据库优化 |
CDN巡检 | 每周巡检CDN |
有些cpu使用率高,但是内存使用率少参考cpu优化型机器,反之是内存优化型机器
对于机器是否启动,未启动的机器适当进行终止使用,释放ebs磁盘。
监控项
- cpu
- 内存
- cpu和内存使用量高进程,瞬时值
- 接口
未完待续,到zabbix再进行补充
cmdb
- 自动发现主机,添加监控和关闭监控
- 自动触发任务(修改主机名,)
- 记录操作记录
- 管理jenkins,例如部署项目
- 报表展示,资产数量,aws账单(月成本,ec2,ebs,小时付费),七牛账单,域名信息,elb对应主机信息,数据库(主从,业务线,端口,机型),预留实例情况,报警趋势
- 定时任务的统一管理
- 常用功能(创建主机,批量砍量,切换预案)
- salt自动化,部署基础服务等,通过页面进行salt组管理
- 微信小程序进行报警管理,报表展示,常用功能
- 日志清理
- 接口超时
安全
- waf
流程化
- 离职后需要来运维组签单子,消除账号,然后人事才给办理离职,将以前记录的管理信息进行交接,替换管理平台中的配置
大促问题汇总
- 活动前运维找开发运营商量加机器,运营考虑的是总体总量,而运维关注的瞬时量
- 扩容时提前写好流程
- sql的qps,加缓存,加从库,优化代码,逻辑,加机器
- 大促记录ELB瞬时峰值请求量、延迟、机器负载以及单机QPS等,用于预估请求量
- 问题存在在缩容问题上,预案问题,CDN大图流量,报警问题
- 大促结束后要总结业务问题,和开发一起推动
思考
- 4xx和5xx报警如何快速定位
基础服务主机
- salt-master主机
- vpn+ipsec主机,兼职ntp主机
- 跳板机,用于发布业务,fab主机
- ELK主机组
- zabbix主机
- zabbix-agent,用于监控虚拟主机
- Squid代理
- jenkins主机
- 翻墙主机(假想)
- gitlab主机
- 共享存储主机组(假想)
- 透明代理主机(假想)
- 文档主机
外部
- CDN
- AWS
规范
项目
- auto scaling自动扩容
- aws标签
- ccmod自动触发
- cdn
- op微信小助手
- gitlab
- jenkins
- vpn
- 安全
- kan
- 容器
- zabbix
- 数据库备份
- 数据库高可用
- 跳板机
- elk