1、运维团队配置



运维团队分为:应用运维、系统运维、运维开发、监控运维、DBA团队和安全团队



团队分工:



应用运维:负责支持线上业务,各自会负责对应的业务线,主要职能是保证线上业务稳定性和同开发共同支撑对应业务,以及线上服务管理和持续优化。



运维开发:帮助运维提升工作效率,开发方便快捷的工具,实现运维平台化自动化。



系统运维:负责操作系统定制和优化,IDC管理和机器交付,以及跳板机和账号信息管理。



监控运维:负责发现故障,并第一时间通知相关人员,及时处理简单故障和启动降级方案等。



2、整体架构



双机房结构,A机房主跑线上业务,B机房跑测试环境和大数据处理作业,有hadoop集群、日志备份、灾备降级应用等。



用户引导层用的是第三方的智能DNS+CDN。



负载均衡首先是LVS做的4层负载均衡之后是tengine做的7层负载均衡。再往后是varnish做的页面缓存之后请求到web端,web端通过内部协议调用service(RPC)。



图片存储用的是mogileFS分布式存储 。



所有业务,全部有高可用方案,应用全部是至少2台以上。



运维监控是从4个维度来做的:



业务层面,如线上业务每秒访问数,每分钟支付、创建订单等(cat)。



应用层面,每个应用的错误数,调用过程,访问的平均耗时,最大耗时,95线等(cat)。



系统资源层面:如cpu、内存、swap、磁盘、load、主进程存活等 (zabbix)。



网络层面: 如丢包、ping存活、流量、tcp连接数等(zabbix cat)。



3、运维系统介绍



我们运维的理念是:



能用程序干活的,坚决程序化、平台化;



能用管理解决的问题,不用技术解决;



同一个错误不能犯三次;



每次故障,都是学习和提升的机会;



每个人都要有产品化思维,做平台产品让开发走自助路线;



小的,单一的功能,组合起来完成复杂的操作(任务分解);



所以,我们将自己的理念,融入到自己的作品中,做出了很多工具。



首先整体做个说明,运维工具系统汇总:



全方位监控系统:覆盖业务、应用、网络、系统等方面,做到任何问题,都可直观反馈。对不同应用等级,做到不同监控策略和报警策略。



自动化工具系统:对重复的、容易出错的、繁琐的工作尽可能工具化,通过小的策略组合,完成大的任务。



自动化工具系统:对重复的、容易出错的、繁琐的工作尽可能工具化,通过小的策略组合,完成大的任务。



记录和分析系统:对发生的问题和数据做记录并分析,不断的总结、完善和提升。



3.1 全方位监控系统



Zabbix



Cat监控 https://github.com/dianping/cat/releases



业务监控 应用监控 日志扫描



3.2 自动化工作系统



Workflow流程系统



Button是一套代码管理、打包、部署上线系统



Go平台系统,是一套运维操作系统,其中包含了很多常规操作、如批量重启、降级、切换、上下线、状态检测等



任务调度系统



3.3 配置和管理系统



Puppet配置管理系统



SLB软负载均衡管理系统



Zookeeper应用配置管理系统



3.4 记录和分析系统



DOM运营质量平台



雷达系统



主要目标是实现平台规范化、运维高效化、开发自主化