Cmdb、Saltstack、Web化,莉莉丝游戏云上运维心得分享

简介: 在2017游戏行业全球同服和安全攻防技术沙龙上,来自莉莉丝游戏的蒋海洋分享了《莉莉丝游戏云上运维之路》。他通过介绍莉莉丝游戏的概况、进化历程,引出了莉莉丝游戏使用的cmdb,Saltstack以及Web化技术,并且分享了莉莉丝游戏在运维方面的心得。

在2017游戏行业全球同服和安全攻防技术沙龙上,来自莉莉丝游戏的蒋海洋分享了《莉莉丝游戏云上运维之路》。他通过介绍莉莉丝游戏的概况、进化历程,引出了莉莉丝游戏使用的cmdb,Saltstack以及Web化技术,并且分享了莉莉丝游戏在运维方面的心得。

 

以下内容根据直播视频整理而成。

 

目前概况

莉莉丝游戏采用的是云上架构,目前拥有两个运维工程师,4款运营中游戏,500+云主机,200+RDS。线上没有一台物理、实体的服务器,也没有使用任何物理的机房。

进化历程

之前做的比较好的一款游戏是《Dota传奇》,蒋老师进入莉莉丝游戏之后初步了解过该游戏的运维情况。《Dota传奇》运维的基本方式是以txt文档来管理基本的主机资源,比如IP、数据库、游戏的服务器名字,如果需要进行操作的话使用Python写的脚本,利用里面的expect模块以及多线程进行操作,其存在的问题是速度特别慢,比如在发布版本部署文件的时候。

在做美版发行的时候,莉莉丝引入了cmdb用来管理基础的资源信息等,远程执行则使用了开源的软件saltstack来进行操作。做完这些之后,服务器的同事想要自己做制作的操作等,所以需要web化开放出来。

Cmdb

cmdb是构建自动化流程的基础,所有的资源等信息都在其中进行管理,比如游戏和配置等都是从cmdb中拉取出来的,包括里面的充值等都是从cmdb拉取。之前使用txt进行管理的时候,很多地方都有对应的东西,如果有一个地方需要进行变更的话,其他地方如果没有关联到就可能出现问题。cmdb的管理纯粹是基于云平台上的配置管理,没有物理服务器的话不用像实体机房一样关心服务器的位置、端口,只需要管理IP的信息、硬盘、ERP等。

c7c2974607ec1f256f033dc061dc2ff626cb6bdc

上图是莉莉丝自制的管理平台,主要分为三层结构:业务管理,包括游戏等;拓扑模型,比如游戏的集群模块等;业务实例,每个模块下面的实例。

e9502446116de820af2b6c4e7adadccb4fe9f737

莉莉丝拥有的资源如上图所示,主要为云上的资源,固资编号是根据云厂商的ID得到的,又相对实例化,还涉及到后期的按项目拆分账单等。将资源都管理起来之后,底层调用了云的API,如果需要买一些组件的话只可以直接在里面点一下,客户端会联动云平台的API把资源灌到里面来,然后把资源分配给项目使用。

saltstack

saltstack是开源的快速远程执行平台,是基于Python开发的,部署简单方便,有自己的API便于进行二次开发。

ccc675d8e1d865ce5a30e5f254a8950214668a15

最上方是一个Master,下面会挂很多minion,Master可以对minion进行远程的操作。如果在阿里云上用了很多的区域,相当于在中间加了一些Syndic节点进行统一管理。我们会根据业务关系去调cmdb里面存储的业务信息,比如需要对某个模块进行操作的时候会到cmdb里面去找需要操作的命令有哪些,然后将这些命令下发下去。执行完命令会将结果返回回来,中心Master就会看到这些返回的结果,整个的执行速率非常快。

Web

后期,一些开发同事也想用saltstack,但是纯粹的命令行会让人觉得不太方便。所以做了一个web化的东西方便使用。它也成了一个交互平台,比如想要知道增加一个模块每db需要多少机器,那么可以告诉他需要在db的集群下面开一个模块,分好机器之后告知提问者可以直接进行操作即可。Web化可以降低使用门槛,固化操作流程可以减少失误。

9b68668faf5effa3a3d0fec3fedca83e7e6400b3

上图是可视化作业平台,有几个常见的功能:如果想看某个文件是否下发下去或者当前的状态,可以点击快速脚本执行,可以在下面直接进行脚本编辑,然后指定执行的目标路径、执行账户,通过配置平台选择执行的机器,按照模块把所需要的集群都勾选上,执行完之后把最后的执行结果返回回来在业务平台上展示出来。这样对于开发的同学非常方便。

心得

首先,莉莉丝的人力非常少,所以考虑用开源的软件,比如监控使用小米的open-falcon。在游戏行业,标杆行业腾讯的运维平台蓝鲸已经做到了2.0版本,自己做平台的时候也可以参考这些企业的运维平台,但是由于担心安全问题可以不直接使用。

莉莉丝使用了很多成熟的云产品,阿里云的RDS已经做得非常成熟,可以做主从同步,出现问题时也可以回滚到任意时间点,小公司使用起来非常方便,没有必要自己来搭相关数据库。这样就不需要自己做备份相关的事情,可以省很多时间和能力,而且可以动态扩容。如果用主机来搭数据库的话需要考虑到了瓶颈需要怎么做,早期成本会比较高,用RDS可以先选择比较小的量,到了一定阶段的时候再进行扩容即可。很少用到CDN做云栈,只需要用OSS上传回源。由于曾经受到了DDos攻击,所以使用了阿里云的anti-ddos进行防范。

利用好阿里云的API接口,通过写一些脚本来使用API接口可以提高效率。最好一开始就寻求专业支持,在架构设计阶段就可以联系做架构的指引,这样对于后期的维护相对简单很多。
相关文章
|
3月前
|
运维 监控
如何使用OOS有效进行云上自动化运维
OOS(运维编排服务)是一种云上自动化运维工具,可以帮助你有效进行云资源的管理和维护。以下是如何使用OOS有效进行云上自动化运维的一些建议: 1. **利用自动化能力**:OOS提供了批量操作、
|
1月前
|
人工智能 前端开发 开发工具
NET在企业级应用、Web开发、移动应用、云服务及游戏领域的创新实践
.NET技术自2000年推出以来,在软件开发领域扮演着关键角色。本文从核心优势出发,探讨其统一多语言平台、强大工具集、跨平台能力及丰富生态系统的价值;随后介绍.NET在企业级应用、Web开发、移动应用、云服务及游戏领域的创新实践;最后分析性能优化、容器化、AI集成等方面的挑战与机遇,展望.NET技术的未来发展与潜力。
45 2
|
1月前
|
存储 消息中间件 运维
SaltStack:自动化运维的终极武器,让繁琐工作化为乌有!
【8月更文挑战第9天】SaltStack是一款强大的自动化运维工具,适用于配置管理、远程执行及云服务管理。基于Python开发,利用ZeroMQ实现高效通信。其架构包括Master(管理中心)、Minion(代理端)及Pillar(数据存储)。在Linux平台上安装简便,通过简单的配置即可实现Master与Minion间的通信。SaltStack的核心功能之一是State System,可通过YAML编写的State文件自动化配置管理任务,如软件包安装等。此外,还支持多种执行模块和精细权限控制,有效提升运维效率。
50 5
|
1月前
|
前端开发 JavaScript
Web前端项目(一)- 迷宫游戏
【8月更文挑战第13天】本项目采用HTML页面,结合了JS和CSS创建一个简单的迷宫游戏,游戏特色包括自动寻路功能和可进行迷宫路线的更新。页面整体采用“毒药水式”的色彩搭配,给人一种迷幻,科技之感。并且为了大家能够二次创作,我在代码中标明了详细的注释
60 0
Web前端项目(一)- 迷宫游戏
|
29天前
|
运维 监控 安全
在Linux中,什么是运维?什么是游戏运维?
在Linux中,什么是运维?什么是游戏运维?
|
2月前
|
运维 监控 安全
云上智能监控:引领未来安防与运维的新纪元
通过智能视频分析技术自动识别违章行为(如闯红灯、超速等)并触发报警机制。同时结合交通流量监测和信号灯控制功能实现交通流量的优化和拥堵缓解。 智能零售监控:在零售行业中云上智能监控可以应用于店铺的客流统计和商品管理。
|
2月前
|
人工智能 运维 自然语言处理
|
2月前
|
运维 监控 Serverless
探索Serverless高可用架构:云上极简运维的新篇章
随着云计算的快速发展,Serverless 架构因其无需管理服务器、按需自动扩展等优势,逐渐成为企业应用构建的重要选择。阿里云提供的 Serverless 高可用架构解决方案,通过结合多种云服务,提供了强大的高可用性和自动化运维能力。本文将评测阿里云 Serverless 高可用架构的核心功能、优势及其应用场景,帮助读者更好地理解和使用这一解决方案。
|
2月前
|
运维 监控 安全
云上智能运维:重塑IT运维的未来图景
深度学习等技术实现更加精准的故障预测和性能优化。同时,随着云计算技术的不断成熟和普及,云上智能运维将实现更加灵活、高效的资源管理和服务交付。此外,随着安全技术的不断发展和完善,云上智能运维将更加注重数据安全和隐私保护,为企业提供更加安全可靠的运维服务。
|
3月前
|
运维 Java 测试技术
Spring运维之boo项目表现层测试加载测试的专用配置属性以及在JUnit中启动web服务器发送虚拟请求
Spring运维之boo项目表现层测试加载测试的专用配置属性以及在JUnit中启动web服务器发送虚拟请求
36 3