运维开发的目标
1 做成web界面
2 权限控制
3 日志记录
4 弱化流程
5 不用ssh到服务器,减少人为操作造成的故障
服务化(API化)
DNS Web管理 bind-DLZ dns-api
负载均衡Web管理 slb-api
Job管理平台 job-api
监控平台 Zabbix zabbix-api
操作系统安装平台 cobbler-api
部署平台 deploy-api
配置管理平台 saltstack-api
自动化测试平台 test-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 将该节点加入集群
运维发展层级:
智能化
服务化 API化
Web化,平台化
标准化,工具化
最终目标实现智能化:
智能化的自动化扩容,缩容,服务降级,故障自愈。
自动化扩容:
触发机制→决策系统→
一.zabbix触发
触发:
1.当某个集群的访问量超过最大支撑梁,比如10000
1.1 CPU使用率达到xxx 内存使用率达到xxx
2.持续5分钟
3.不是攻击
4.资源池有可用资源
4.1当前网络带宽使用率
4.2如果是公有云——钱够不够
5.当前后端服务支撑梁是否超过阈值,如果超过,应该后端先扩容
6.数据库是否可以支撑当前并发
7.当前自动化扩展队列,是否有正在扩容的节点
8.其他业务相关的
先判断Buffer是否有最近x小时,已经创建的虚拟机
并查询软件版本是否和当前一致,如果一致,跳过下面2,3,4步骤
二 Openstack 创建虚拟机
三 Saltstack 配置环境
四 部署系统部署当前代码
五 测试服务是否可用(注意间隔和次数)
六 加入集群
七 通知(短信,邮件)
自动化缩容:
1.触发条件和决策
2.从集群中移除节点,关闭监控,移除节点
3.通知
4.移除的节点存放于Buffer里面,以备之后还需扩容。
5.Buffer里面的超过一天的虚拟机,自动关闭,存放于XX区
6.xx区的虚拟机,每7天清理删除。