弹性化的容器与微服务架构实践_第1页
弹性化的容器与微服务架构实践_第2页
弹性化的容器与微服务架构实践_第3页
弹性化的容器与微服务架构实践_第4页
弹性化的容器与微服务架构实践_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

弹性化的容器与微服务架构实践技术创新,变革未来传统游戏后端服务器架构面临的挑战风险集中一台机器集中运行大量的游戏服进程,当机器宅机时,影响的用户面比较广资源抢占游戏服进程之间没有强隔离,会导致不同游戏服之间资源分配不均匀,或者资源相互抢占的问题管理复杂传统的方式清况下,为了简化部署,大多数进程都运行在同一台服务器上面。管理起来非常的复杂,特别是当一台机器上同时存在很多组游戏服时缺乏弹性缺乏弹性,玩家大量涌入时难以快速扩展,在线人数低峰时也难以快速缩减资源以节省成本研运分离开发和运维各自为战,游戏开发人员只管开发游戏,游戏运维不了解游戏内部细节。从而导致游戏上线前无法通力配合做好资源规划和测试,出问题时容易出现互相推淩的清况CASE

STUDY—

案例分享

—PlayStation

Network(PSN)是索尼互动娱乐为

PS

玩家提供的一组网络服务

通过

PSN

玩家之间可以进行在线的文字聊天、视频聊天、网络游戏对战、游戏内容下载等活动。Network全球销量

1.089

亿台软件销量

11.51

亿套*

截至

2019

12

31

日月活用户

1.03

亿覆盖超过

70

个国家和地区*

2019

12

月数据2016

年的

PlayStation

Network为

PS

玩家提供数十种服务在

AWS

上运行着数干台

EC2

实例通过

Chef

进行管理服务越来越多

架构越来越复杂和难以管理新版本部署往往需要超过一天的时间希望提升效率

为用户提供更多更好的服务搭建容器化运行环境的主要挑战ServerGuest

OSBins/LibsBins/LibsApp1App2当容器越来越多……越来越多……容器化的挑战缺乏容器环境搭建和维护的经验缺乏

CI/CD

环境搭建和维护的经验牵涉面广,组织和流程难以匹配集群管理资涌管理容器放置弹性伸缩排程调度自动恢复滚动式部署自动更新需要—个好用的容器编排平台AWS

容器服务介绍管理部署,

调度,弹性伸缩,

容器化应用管理计算环境容器运行时环境镜像存储库容器镜像存储AWSCloud

MapAWSApp

MeshAmazonElasticKubernetes

ServiceAmazonElasticContainer

ServiceAmazonElasticComputeCloudAWSFargateAmazonElasticContainer

Registry服务发现,

服务网格PSN

选择了

Amazon

ECS

作为容器编排管理平台灵活的任务置放策略深度集成

AWS

相关服务全球部署强大的编排引擎自动扩展组CloudWatch

监控指标Schedulingand

orchestrationCluster

managerPlacement

engineAvailabilityZone

1AvailabilityZone

2AvailabilityZone

3AWS

Fargate使用

AWS

标准的容器架构堆栈RegionVPCAmazon

ECRAmazon

ECSECS

ClusterAmazonRDSinstanceAmazon

CloudWatchAmazonRoute

53ElasticLoad

BalancingAWSIdentityandAccessManagementAuto

ScalingAmazon

S3CI/CD

的架构如何搭建呢?Project

Haste

一开始的项目成员只有三人

自己用开源软件搭建和维护完整的

CI/CD

工具链相当困难AWS提供了一个整CI/CD全托管工具链PSN

CI/CD

基于

AWS

CodePipeline

的轻量级架构RegionBuildAWSCodeBuildInspectContainerTestContainerRegistryRegister

ImageECSAuto

re-deployDeveloperGitHookKickAWS

CodePipelineDynamoDBLambdaLambdaFeed

Back交付生产AWS

CDKPSN

Project

Haste

的推进过程(约

2

年)开发优化优化服务迁移开发Haste

开发Pipeline

构建容器化改造Pipeline

使用服务构建服务使用10

个月

用服务进行改造迁移(可回切)

优化改进7

个月

服务

容器化和进行迁移2

个月

的服务从—开始就使用容器化和

CI/CD

程进行开发9

个月Haste

建和和配置、自定义功能的开发PSN

Project

Haste

的成果测试部署时间1

夭 20

分钟从

Git

中提交代码到部署完成生产部署速度提升 2.5

倍包含人工审核与资料准备的时间服务启动分级 秒级不包括

ALB

健康检查的时间CASE

STUDY—

案例分享

—RomancingSaga

Re:univerSeSQUARE

ENIX著名

IP

《浪漫沙加》,时隔

23

年后推出正统续作手游《浪漫沙加

re:universe》,于

2018

年底日本上线,2019年国际服上线。发布后一个月内10,000,000downloads《浪漫沙加》手游面临弹性伸缩的挑战官网/公告游戏服认证服用户数据session/cache认证数据游戏服务器

/

认证服务器官网公告运维工具等服务器的构成和管理全部都是基于容器的

Docker

应用浪漫沙加

Re:univerSe

的整体架构架构亮点一:实现良好的弹性伸缩架构亮点二:故障自愈浪漫沙加

Re:univerSe

架构要点后台服务

100%

容器化上线部署和容量扩充一次问题都没有发生本地的开发环境和线上环境没有差别容器的编排使用

Amazon

ECS自动扩容故障自动恢复部署和回滚99%

AWS

资源用

CloudFormation

统一管理上线后运维的误操作一次都没有发生各个环境之间没有差异一个命令就可以得到一个新的开发环境利用

kumogata/kumogata2

进行代码管理Ruby

语言的

CloudFormation

wrapper

工具部署条件可以用代码来设定密钥设定为环境变量,通过

SSM

获得Amazon

CloudWatch错误日志和中间件日志错误监控,状态监控,资源监控,日志监控Datadog中间件日志错误监控,状态监控,资源监控,进程监控,性能监控,日志监控Amazon

S3存放访问记录等。用

Athena

进行分析游戏上线后700

100%containers

(max) availabilityCASE

STUDY:CAPCOM

的容器化架构实践关于全球销售量1.9

亿套的基础架构变迁on-premises(since

2008)privatecloud(since2012)AWS(since

2015)MonsterHunter

Explore2015

年上线下载量超过

900

万次上线后共有

8

次大型的版本更新100

万DAU500

万RPM2000

万QPMhttps:///watch?v=IlB3xfMXn0w&t=1315sMonster

Hunter

Explore

的架构

(2015)CAPCOM

希望为新项目采用更具运营效率的架构降低运营成本减少数据库维护的工作最消除由于单个员工而导致的“单点故障

(SPOF)获得更好的运营能力,从而带来更多玩家新项目的两项关键服务AmazonElasticKubernetesService

(EKS)Kubernetes

是业界最受欢迎的跨平台容器编排工具Amazon

EKS

是高度可用,可扩展且安全的托管式

Kubernetes

服务Amazon

DynamoDB全托管的键值型

NoSQL

数据库,无需复杂的优化和维护工作内置弹性伸缩和自动备份的能力AWS

容器服务介绍

-

Amazon

EKSAmazon

EKS

托管控制面板Amazon

EKS

数据面板(非托管,

托管,

AWSFargate

)AWS

CloudEKS

VPCCustomer

VPCAZ-1AZ-2AZ-3etcdapiUn-ManagedNode

GroupManagedNode

GroupAWS

VPCAWS

Fargate新项目的整体架构与

Amazon

EKS

协同工作的服务ApplicationLoad

Balancer&

aws-alb-ingress-controllerAmazonRoute

53&

external-dnsCertificate

Manager&HTTPScertificate

integrationAWSIdentityandAccessManagement

(IAM)& kube2iamCAPCOM

容器化架构的收益运营难度和成本下降数据库维护的工作量减少消除了由于单个员工而导致的“单点故障,(SPOF)ServerGuest

OSBins/LibsBins/LibsApp1App2降低风险每个游戏服进程和其它服务都是独立的容器,通过容器调度平台分散在不同的机器上,一台机器上可以有游戏服容器,也可以有一些冗余的、通用的服务容器(如聊天、登录、存档、购买等),而不是密集的都是游戏服,服务器宅机对用户的影响降低;当某个功能部件异常或者需要更新时,还可以单独对某个容器进行更新,实现高度的容错和热迁移;资源隔离可独立规划和配置每个容器的资源,做到互不影响;管理简便通过容器编排工具,可轻松管理大量的容器,快速复制和分发,实现秒级开服;高度弹性结合监控工具和容器编排工具,可实现全自动化的容器分发和回收,快速弹性伸缩资源;研运一体结合

CI/CD

工具,实现研发和运维的一体化和自动化,一个版本就是一个容器镜像,开发、测试、打包、部署一气呵成,促成研发与运维紧密协作,极大提升效率,让游戏得以快速迭代;总结:容器化架构的优势如何实现游戏后端服务的容器化通常后端服务的类型:网关服务器(主要承载玩家连接、建立和后端连接)非场景服务器(登录、大厅、聊天、游戏内交易、匹配)场景服

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论