个人介绍:屌丝男

工作里程:菊花五年运维工程师,管理过1.4W台服务器的屌丝装机工

工作心得:简单的事情简单做,莫要复杂化

座右铭:事无巨细 ,用心就好

 

有幸得与HP HPE高级的顾问镇祝华先生的一次交谈,下面记录一些交流心得

1.如果现在给你一个全新的用户环境,如何快速的构建运维体系,高效的运维管理?

公有云平台的核心属性是共享资源服务
1.1 快速构建运维体系
1)建立运维规范
2)建立运维流程
3)建立运维监控系统 (网络监控,硬件状态,业务状态,资源使用率等)
4)建立CMDB系统    (纳入主机配置库、网络配置库、机房配置库等)
上述体系联动性的核心组件为CMDB

1.2 高效的运维管理
1)框架,即合理的分工/职责/KPI
2)血液,即专业的流程/规范;
3)界面,即良好的服务意识/技巧

2.全球有很多分支机构的软件代码和版本,如何方便快速管理,确保不会出错?

使用 git 进行源码和版本控制  http://git.oschina.net/progit/


3.监控系统如何与saltstack这些系统联动?如何与CMDB联动?


监控系统持续不间断的收集各项系统性能指标上传CMDB ,通过CMDB自建库可视化各类指标

saltstack采集服务器基础信息上传CMDB ,通过CMDB自建库可视化各类信息

假如监控系统发现业务达到一定瓶颈,监控系统负责预警,saltstack负责采集资源配置信息,CMDB负责整体资源动态调配

 


4.有大规模的系统或产品需要升级软件版本和补丁,如何确保业务不停机的情况下快速的实现升级操作?


Spacewalk 可以管理补丁、登录、更新。

如果是内核级别的补丁,当前业界还没有办法实现不停机,阿里之前有过方案,但是没开源,
如果是普通的业务包,推荐放到部署软件更新源git上面,然后通过saltstack或者ansible之类的批量管理平台进行统一更新
当然也需要根据不同机房和不同业务类型进行批次更新,更新过程可视化

5.新上线一台设备如何将相关信息存到CMDB,如何快速上线这台设备?

之前做的是开放了一个 CMDB api接口 ,在定制的OS或者系统里面写入设备信息采集脚本,设备上线之后自动上传配置到CMDB

 

6.如何根据什么样的应用和服务,来选择不同的硬件,然后装什么的系统?
CPU密集型  云计算 hadoop spark
内存密集型 数据存储 缓存 中间件  mysql redis mangodb nginx tomcat
磁盘密集型 日志存档,安全审计 elk rsync-server ossec


7.每次上线的服务器,都要跑一遍业务流程吗?这中间的业务逻辑是很复杂的,你如何规避?

建议根据业务类型来细化业务流程,比如上述提到的CPU密集型,内存密集型,存储密集型
而不是跑一个整体的流程,


8.健康巡检的主要内容,有什么开源框架?

网络健康状态  cacti smokping
硬件健康状态  zabbix ngios
业务健康状态 zabbix ngios

 

 

9.云计算平台有什么工具?(Openstack,其他自动化工具?)

目前商业的如VMWARE的VCenter,RedHat的RHEV,开源的如OpenStack等


10.应用程序如何自动化升级?

 

11.监控脚本你一般用什么语言?
shell,python,perl

佛山容灾机房建设
2015.3月低容灾机房提上日程
2015.4月开始采购设备
2015.5月设备上架完毕,裸设备,无系统,无网络,

领导给的任务是半个月部署好基础环境,当时的裸设备为360台,当时容灾基本就我一人操作
其中 rh2285 160台
rh2288 v2 100台
rh 2288 v3 100台
E9000 12套
需要创建的虚拟机大概为1000+,

如果当时依靠人为去记录和分配,半个月是不可能完成的任务,关记录资源分配资源都会感觉吃力,还需要考虑以下三点
1.主机需要分配给10多类业务,分别为游戏网关,UP,亲情在线,PUSH ,天天浏览器,hispace,cloud+,云存储平台,手机相册等等
2.每类业务分别处于不同网段
3.每类业务又分CPU 密集型 内存密集型  磁盘密集型


运维项目经验

佛山容灾机房建设
2015.3月低容灾机房提上日程
2015.4月开始采购设备
2015.5月设备上架完毕,裸设备,无系统,无网络,

给的任务是半个月部署好所有基础环境,当时的裸设备为360台,当时容灾基本就我一人操作

其中 rh2285 160台
rh2288 v2 100台
rh 2288 v3 100台
E9000 12套
需要创建的虚拟机大概为1000+,

如果当时依靠人为去记录和分配,半个月是不可能完成的任务,关记录资源分配资源都会感觉吃力,还需要考虑以下三点
1.主机需要分配给10多类业务,分别为游戏网关,UP,亲情在线,PUSH ,天天浏览器,hispace,cloud+,云存储平台,手机相册等等
2.每类业务分别处于不同网段
3.每类业务又分CPU 密集型 内存密集型  磁盘密集型


通过召开部门会议,解决当前痛点

1.服务器和虚拟机自动化部署
这个在长达4年的装机过程中已经积累一定的经验
服务器部署基本已经实现自动化,dhcp+tftp+httpd (pxe和cobbler),通过定制化服务器部署引导文件autoinstall.xml 和autoinstall.ks
做到电源开启即装机 装机之后IP自动分配,IP分配之后磁盘自动格式化和挂载,之前也出过业务服务器重装的故障
解决方案为统一把资源池服务器划分到一个装机vlan
虚拟化使用开源xen 平台 先制作模版 通过是shell+python开发的自动化脚本进行部署
 

 

2.自动分配存储和IP资源
痛点之一,由于当时E9000配套的是S3900存储,而这种存储需要人手动配置RAID,LUN,分配给业务单板,
解决方案,后续统一采购RH系列服务器

3.自动更新服务器和资源信息表
痛点之二,由于前期规模小,服务器少,这边使用excel作为台账工具,但到2015中期OS数量已经突破5000,机房局点已经有8个
2016.3月已经突破14000
解决方案 使用python+mysql框架 开发的一套CMDB用于服务器+网络信息存档 开放了一个 CMDB api接口 ,在定制的OS或者系统里面写入设备信息采集脚本,设备上线之后自动上传配置到CMDB

4.自动化部署业务
痛点之三,在长达几年的里程中基本从手动安装==>脚本安装==>使用开源的工具二次开发自动化部署业务
由于安全性问题,当时没有使用c/s架构的saltstack 开源部署工具,
 解决方案 
 使用ansible 开源部署工具,部署对应业务
 每个机房定义一个playbook(yml)对应多个业务
 每个playbook对应一个 roles(剧本)
 每个roles对应一个或者几个task (脚本集)
 

5.账号管控和信息安全
由于团队的发展,各类权限满天飞,权限管控和账号回收显得非常重要,安全无小事
部署ldap+堡垒机(UMA)  实现账号统一管理和日常操作记录分析
部署ossec+elk ***检测系统  收集系统日志进行保存 并分析日常行为,实现安全事故的追踪和定位