系统运维 | 游戏公司的自动化运维建设

| 2020-05-23 12:25:15    标签:

一、建设自动化系统运维体系的原因

先来看一下我们为什么要建设一个自动化系统运维体系。首先来看系统运维遇到的一些挑战。


第一个是游戏的需求。它表现为三个方面:

· 一是游戏数量多,我司现在运营的游戏多达近百款。

· 二是游戏架构复杂。游戏公司和一般的互联网公司有一个很大的区别,就是游戏的来源可能有很多,比如有国外的、国内的,有大厂商的、小厂商的;每个游戏的架构可能不一样,有的是分区制的,有的是集中制的,各种各样的需求。

· 三是操作系统种类多,这与刚才的情况类似,游戏开发者的背景与编程喜好不一样,会有Windows、Linux等。


第二个是在硬件环境方面,主要表现为服务器数量多、服务器型号多。因为公司从建立到现在有十几年的时间了,在这个过程中分批、分期采购的服务器几乎横跨各大OEM厂商的各大产品线,型号多而杂。


最后是人的因素。我们在建设自动化系统运维体系过程中,有一个比较重要的考虑点是人的因素。如果大家的技术能力都很强,很多时候一个人可以完成所有工作,可能也就不需要自动化系统运维体系了。正是因为每个系统运维人员的能力不一样,技术水平参差不齐,甚至是运维习惯和工具也不一样,导致我们必须要创建一套规范的自动化系统运维体系,来提升工作效率。


 

二、建设自动化系统运维体系的目标

再看一下建设这套自动化系统运维体系的目标,也就是说我们的原则是什么?笔者将自动化系统运维体系的建设目标总结为四个词。

· 第一个是“完备”,这个系统要能涵盖所有的运维需求。

· 第二个是“简洁”,简单好用。如果系统的操作流程、操作界面、设计思想都比较复杂,运维人员的学习成本就会很高,使用的效果是会打折扣的,系统的能力、发挥的效率也会因此打折扣。

· 第三个是“高效”,特别是在批量处理或者执行特定任务时,我们希望系统能够及时给用户反馈。

· 第四个是“安全”,如果一个系统不安全,可能导致很快就被黑客接管了。所以安全也是重要的因素。

 

三、自动化系统运维体系的结构和运作方式

下面我们来看一下每个子系统是如何设计和工作的。

1、自动化安装系统

2、自动化运维平台

3、自动化安检系统

4、自动化客户端更新系统

5、自动化服务器端更新系统

6、自动化数据分析系统

7、自动化数据备份系统

8、自动化监控报警系统

 

总结

我们一直在做自动化系统运维体系,对过去进行总结,我觉得有3个方面可以供大家参考。


第一是循序渐进的原则,特别是中小公司或者初创公司,很多时候并不需要一个“高大上”的系统。聚焦当前的问题,把当前的问题处理好,后面的问题也就迎刃而解。如果一开始设计的系统很庞大、功能特别丰富,会导致一些无法控制的局面。比如这个系统可能最后做不下去了,或者因为耦合性太强,开发控制不了了,或者项目因为经费问题搁浅了。但是如果一开始的目标是解决一些特定的问题,有针对性,那么推进起来也会比较简单。在我司的自动化运维体系建设过程中,我们首先构建的是一个基础的服务器批量操作平台,先把一部分需要重复执行的工作搬到平台上来,再依据运维的需求丰富这个操作平台的功能和提升效率,最后把周边的系统打通,相互对接,形成完整的自动化系统运维体系。


第二是考虑可扩展性。设计系统的时候,功能或者设计方面可能不用考虑那么多,但是要考虑当服务器数量发生比较大的扩张时,系统是否还能支撑,比如数量级从十到百,或者上千了,这个系统是否还是可用的。


第三是以实用为目的。这在我们系统中也是有体现的。很多情况下,市面上可能已经有比较成熟的协议和工具,拿来评估看看它们在生产环境里面是否可用,如果能用就直接用,没必要自己再去做一套。自己做的这一套工具,很多方面没有经过验证,可能会带来安全问题。基于成熟的协议和框架去做,可以提升效率,保证稳定性和安全性。

 

以上内容由北京艾锑无限科技发展有限公司整理