iJobs的出现
对于一个需要面对将近250个业务而且业务数量持续快速增长的运维团队来说,各种自研业务和各种合作业务之间的巨大流程差异,各种端游、页游、手游之间架构及运维需求的迥然不同,必然是运维提速、规范化和体系化道路上必须面对和解决的最大挑战。
所以,当我们最初面对这个课题的时候,首先考虑的不是如何制定规范并落地,而是我们的运维团队最迫切需要的是一个怎样的运维工具。
TA最好是这个样子的:
1. 高可用的(哪天哪时都不能停服)
2. 高并发的(机器及操作数量巨大)
3. 所有业务都适用的(完全可定制化)
4. 所有OS都适用的(完善的agent)
5. 全网覆盖的(覆盖国内和国外机房,普通区和各种专区)
6. 所有触发服务器的运维操作都支持且高效的(各种脚本,各种文件传输)
7. 面向运维操作场景的(作业化,想想一件工作的checklist吧)
8. 执行作业方便甚至是一键式的,可快速移交的(运维外包、运维自助)
9. 对外提供作业接口支撑上游系统(完善的API)
10. 支持几种执行模式(无人模式、单步模式、混合模式、定时执行)
11. 与CMDB深度结合的(应对业务主机多、拓扑复杂的情况)
于是,互娱最接地气的作业平台iJobs应运而生,支持各种脚本操作和各种形式的文件传输,可通过作业定制实现一系列操作的一键式完成,并对支撑体系中的所有周边系统提供完善的外部支持,极大的助力运维体系生态圈。2012年2月版本上线,2012年5月已基本完成全业务覆盖,现在iJobs已经成为了互娱游戏运维最基本和必备的工具之一了。
作业执行示意图
iJobs的亮点
1. 实现无差异运维。
a) 覆盖互娱所有游戏,支持各种自研、代理业务,支持各种端游、页游和手游等。
b) 覆盖全网所有服务器。
c) 覆盖全部区域:国内国外IDC、专区。支持各种穿透。
d) 支持所有运维操作类型:各类型脚本(shell、perl、python、bat等),推拉文件等。
e) 支持多种执行模式:无人、单步、混合、定时、周期。
2. 业务场景快速接入。
a) 通过作业模板和执行态简单快速的覆盖了各种运维操作细分场景。
3. 助力运维生态圈。
a) 对上游专业系统提供全面的操作支撑,操作层面全部交由iJobs搞定,减少重复开发,提升开发效率,提升运管团队的总体效率和产能。
4. 提高整体产能。
a) 快速实现“运维外包”。
b) 快速实现运维需求自助。
5. 高可用的海量运维平台。
a) 全方位高可用。任意节点生效或版本发布均不影响服务。
b) 高并发、高速的海量运维操作平台。
6. 一站式服务。
a) 所有运维脚本集中管理。高效易维护。
7. 细节创新。
a) 执行态概念的引入。一个模板+N个执行态,将各种操作场景收拢其中,一键式完成。
b) 业务集概念的引入。打破业务墙,一套作业可以解决N个业务的需求。
c) 与CMDB深度结合。作业中内嵌shell形式的CC查询脚本实时获取IP等配置信息,满足任何配置自动获取的需求。
d) 高可用的定时调度引擎。不仅满足了定时、周期性执行作业的运维需求,也可实现集中式crontab。
关于运维体系生态圈
不论iJobs这个平台多么通用和灵活方便,但运维操作只是基础,还有很多工作不仅仅是操作,在操作之前还有一些复杂的逻辑需要处理。比如自动化扩容功能,扩容操作可以由ijobs来解决,而其他专业系统需要解决容量判定等逻辑问题。又或者仅仅是要为外部某些人员提供一组特定操作的简单页面,ijobs对他们来说过于复杂了。这便是我们所设想的运维体系生态圈。通过iJobs这些对外接口,ijobs平台让所有的上游系统不必再关心操作层面的事情了,不仅加速了所有支撑系统的功能实现周期(有些复杂场景app只需要几天时间即可完成),也减少了重复建设,很好的优化整合了运营支撑体系的结构。我们也绿色了~
小结
现在iJobs早已成为了腾讯游戏运维操作的必备平台,并在运维生态圈中提供全面的操作支撑,助力游戏运维团队效率的整体提升。