新闻动态

完善的7*24小时服务,携手共赢,共同成长

首页 新闻动态云计算文摘 正文

英雄联盟 LOL 的网络和 Google 的数据中心

2016-03-11 14:29:23   
 
过了个春节,SpeedyCloud 云计算文摘又跟大家见面了。这个假期对很多人来说,也是能放松心情好好玩它几天游戏的时间,而且一定有不少人都是英雄联盟 LOL 的忠实玩家。相信不少人都经历了“痛并快乐着”的“春运”,从运输角度而言,英雄联盟 LOL 同样要解决如何以最高效的方式传输数据的问题,开发方 Riot 的网络工程师出面讲解了他们的应对之道。接下来,是 Google 的数据中心在架构方面的变化,有时候,我们不光要幻想能上 Google,还会幻想中国也能采取多宿主式的数据中心,让中国的资源和人口分布更加均匀,实现现实世界中的负载均衡,不要再把少数几个城市的房价顶得那么高了。另外两篇文章,一篇与云计算的系统迁移相关,另一篇讲到Zalando电商网站的应用架构和技术开发流程,原文最后两段话很有启发,摘在这里,希望能对大家有所帮助。
笔者喜欢写代码。构建简单的、可以高效快速工作的系统,让我们开心。看到这些系统可以清晰、和谐地互动,让我们高兴。我们这么做,是因为我们喜欢这种感觉。如果我们不用上班,大概也会喜欢做这些事情。而且我们知道:我们并不孤独。

构建软件系统能够带来很多生存意义层面的快乐。一切顺利的时候,编程必然可以让人达到“心流(Flow)”状态:这种状态超越普通的感官愉悦。我们希望达成这种状态,而且一直保持这种状态,我们希望你加入我们,和我们一起进入这种状态。我们希望这些原则对你有所帮助。
做最懂你的云计算,是 SpeedyCloud 一直以来的夙愿。如果你想有机会拿着一把樱桃Cherry机械键盘打 LOL,赶紧来参加我们发起的云计算调查吧。可以点击下面的链接参与。
调查问卷
 

Riot 如何搞定英雄联盟LOL的互联网瓶颈?

英雄联盟 LOL 是目前最火爆的网络游戏,对于这样一种考验“微操”和快速思考能力的即时式擂台游戏,网络延迟一、两秒,直接决定角色的生死,从而影响游戏玩家的留存率,乃至直接决定游戏公司的收入涨跌。所以,如何保证游戏网络连接的速度和稳定性,就成了开发商 Riot Games 的第一要务。

Peyton Maynard-Koran是 Riot 的网络工程师,他们团队的目标,是要从网络传输中几毫秒几毫秒地抠时间,保证玩家尽可能使用最快的网络连接。Peyton 写了这一系列三篇的文章,讨论在线游戏使用普通互联网面临的问题,Riot 如何解决这些问题,以及实时应用的未来。

Peyton首先分析了互联网的大致网络情况,并指出:  

对于像 LOL 这样的实时应用,互联网这种环路式的路由方式,导致用户体验差异悬殊,特别是不同的 ISP 和不同的骨干网提供者会提供不同路由。所以,有可能一个玩家与队友的在线游戏体验延迟极低,而旁边的邻居可能由于使用不同 ISP,遇到极其严重的拖延。

接下来,他又解释了路由器的问题:  

由 BGP 方式产生的环路式路由,会让很多路由器参与到一次数据传输中。简单的传输可能只包括两端的路由,而 BGP 可能加入4个跳转,导致一个数据包走过6个路由器,从而导致传输的数据整体负载增加三倍。

Peyton 的总结是:  

所有这些加在一起,导致现在的互联网对于 LOL 这样的毫秒级游戏来说很不理想,不管是延迟还是数据包丢失,都是令人沮丧的体验。实时游戏传输需要新方法,要可以去除效率低下的光纤路由线路、BGP 和路由配置。

上面是第一部分的内容,在第二部分中,Peyton 解释了自己对于现有问题的解决方案。  

我们搭建自己的互联网。……当你在玩 LOL 的时候,游戏数据从 Riot 的服务器直接传输到骨干网公司,然后再到你的电脑上。……这个过程用了我们一年时间。将我们的服务器与 ISP 直接连接,需要我们购买自己的路由器,并在美国最大的十个互联网中心租借空间,放置路由器,然后还要租借光纤连接这些路由器,最后再跟所有的 ISP 对接。

那么这种做法的效果如何呢?Riot 有一个评价机制:有多少用户的游戏 ping 值在80毫秒以下。在9个月时间内,这个数值从31%增加到了50%。

接下来,Peyton 详细讲解了具体的方案,感兴趣的同学可以点击第二部分的原文链接查看详细内容。

金句:  

在某些方面,互联网已经开始达到自己的极限。由于互联网本身的设计原因,需要接近实时响应速度的应用用户体验受到很大影响。


标签:网络、路由、LOL
 
第一部分
第二部分
 

【神奇数字】


20万,iMessage 每秒发送的信息数;7.5亿,Mac App 和 iTunes 商店每周完成的交易数;1100万,Apple Music 的订阅用户数;0.7倍光速,光在硅中的速度;1.125Tpbs,目前为止最快的数据传输速度;360TB,“超人水晶内存(Superman memory crystal)”能够永久存放的数据容量;1亿美元,Uber 为了维持中国的市场份额的年度开销。
 

谷歌架构的转变:从单数据中心到故障转移系统,再到多宿主架构

运行单数据中心系统出现困难怎么办?
如何对多个处于不同地理位置的数据中心提供支持?
从单数据中心切换到多数据中心,故障转移系统存在哪些问题?
为什么多宿主系统优于故障转移系统?
多宿主系统的工作原理是什么?
……

如果你对以上问题存在疑问,本文将结合谷歌的架构转变给出详细解答。

本文首先提到谷歌曾发表的一篇论文《大规模高可用性:打造谷歌的广告数据基础设施》,其中对单数据中心切换到多数据中心这一过程进行了描述,然后阐述了谷歌的多宿主系统是解决单数据中心有效切换至多数据中心的方法,最后列举了故障转移系统存在的问题,并由此引出多宿主系统的工作原理。

本文用了一定篇幅描述谷歌多宿主系统优于故障转移系统的方面,如相同条件下多宿主系统比故障转移系统所耗费的资源少;多宿主系统对于用户而言,其简单性和易用性能帮助开发者专注于自身应用的研发,同时保障高可用性和一致性等等。

此外,本文罗列了谷歌多宿主系统的相关论文链接,可以帮助大家更好地认识该系统所采用的方式,及在构建多宿主系统时遇到的诸多挑战如全局状态同步、怎么设置检查点,及可重复的输入与只执行一次的输出等等。

链接如下:   金句:

在多宿主系统中,多个数据中心会持续运作,并根据情况自发平衡不同数据中心的负载,同时还能以完全透明化的方式解决任意规模的数据中心停机。

部署在3个数据中心之上的多宿主系统,总同步性能为稳定状态的20%,总资源占用为170%,远远小于故障转移系统所需的300%。

多宿主系统的简单性对用户是极有价值的,没有多宿主系统的话,无论故障转移、系统恢复还是一致性问题,都是应用需要解决的问题。而借助多宿主系统,基础设施会处理这些麻烦的问题,应用开发者只要专注于自身应用即可,可用性和一致性有系统来保障。

出现数据中心级别的故障时,多宿主系统是唯一能够提供高可用性和完整一致性的系统。


标签:架构、多宿主系统、数据库、高可用性
阅读原文
 

【精彩声音】


在我看来,网络工程师最常犯的架构错误,就是数据中心只有一个网络。我相信:正确的做法应该是——任何“网络”都应该是“网络构成的网络”。(来自Greg Ferro
 

企业迁移遗留系统到云端需要几步?

使用云计算作为 IT 基础设施,可以提升企业的业务响应速度,这已经是业界的共识。但是,如何将遗留系统向云平台迁移,却是很多企业心中的疑问。本文以房地产企业为案例,为大家描述企业迁移遗留系统到云端的三大步骤。

本文开头简单介绍了现有系统简单抽象的架构,我们可以了解该企业维护了3条大同小异的业务主线,但经分析后发现其业务主线在部署、配置、流量、发布特性、目标客户及市场定位等方面存在非常大的区别,接下来本文描述了企业业务及IT愿景,我们可以发现原有系统无法支撑企业愿景的实现,分析以上因素后,本文对架构调整提出了4点要求,即独立业务线、易扩展性、集中提升交付速度及提升资源利用率。

我们发现云平台能帮助企业解决架构问题,但实施迁移前还需明确以下2个条件:  
  • 所有业务线选择独立运营,他们自主决定何时发布上线,自主选择合适的SLA及资源适应流量的变化

  • 对所有业务线共同分享的组件,独立于业务之外,分开部署和运营,并且它们能根据流量变化调整不同的资源适应。

在明确现有系统的目标状态后,下一步是如何实现目标即——迁移三部曲

系统迁移至云端不是一蹴而就的,而是周期性地持续进行,每一次的前进都是相关系统集成的结果。在同一时间段的迁移周期内,大致可分为以下三个阶段:  
  • 第一阶段:识别
    识别是要清楚迁移什么,确定系统迁移的职责

  • 第二阶段:提取
    识别出系统职责及确定要迁移的职责后,是提取该职责为独立云服务的阶段。

  • 第三阶段:集成
    新的云服务与原系统进行对接
最后则介绍了系统迁移至云端的技巧:  
  • 技巧一:快速上线:Stencil + devOps
  • 技巧二:测试:消费者驱动测试
  • 技巧三:监控
    • 资源利用度
    • 健康检查
    • 日志
总结:

从传统数据中心的基础设施向云端迁移是一个长期渐进的过程,未来或许有许多未知的问题等着我们,但我们发现这同时是对现有系统重新认识的过程,在这一段时期内,我们发现了一些规律,每个功能的迁移有各自的特点,但存在相似性即识别,提取和集成。

金句:

阶段之间的转换是否高效、顺畅、无障碍,对整个系统向云端迁移都起着至关重要的作用。


标签:云迁移、架构、系统
阅读原文
 

【精彩声音】


我们有50个 IT 职业人士、25+ 个职位 title、0个人理解他们正在做的项目。(来自Fred George
 

Zalando 基于“极度灵活”理念的技术规则

Zalando 是一家欧洲的电商网站,他们的技术团队倡导“极度灵活”(radical agility)的理念——基于自我管理、精益求精和意义驱动这三大支柱来管理技术组织。该三大支柱来源于美国作家丹尼尔·平克(Daniel H. Pink)的《驱动力》(Drive)一书。基于“极度灵活”理念,Zalando 的技术团队制定了五条技术原则:  
  • 建立微服务
  • API 优先
  • 符合 REST 原则
  • 使用云
  • 建立 SaaS 服务
接下来,文中讲述了构建应用服务的一系列规则和基本理念。比如,他们构建的应用要符合以下五点原则:  
  • 适应能力强
  • 可扩展
  • 可维护
  • 内部代码高质量
  • 根据需求可以伸缩、调整
上述原则又产生了一系列架构方面的理念。 比如:  
  • 如何构建松耦合的系统?这样系统应该实现:异步通信、服务可降级、使用简单的技术完成耦合、使用 REST 和 JSON。
  • 如何构建服务?应该考虑这些点:服务规模、服务层次、服务的自治性
    还有一些通用的指导原则:无状态、不可变、实现幂等。
在开发流程上,他们强调以下原则:敏捷优先流程、有目的的项目化、使用工单系统、放弃微管理、代码审查、强调质量、持续交付等等。

金句:  

笔者喜欢写代码。构建简单的、可以高效快速工作的系统,让我们开心。看到这些系统可以清晰、和谐地互动,让我们高兴。我们这么做,是因为我们喜欢这种感觉。如果我们不用上班,大概也会喜欢做这些事情。而且我们知道:我们并不孤独。

构建软件系统能够带来很多生存意义层面的快乐。一切顺利的时候,编程必然可以让人达到“心流(Flow)”状态:这种状态超越普通的感官愉悦。我们希望达成这种状态,而且一直保持这种状态,我们希望你加入我们,和我们一起进入这种状态。我们希望这些原则对你有所帮助。

标签:微服务、架构、持续交付
 
阅读原文
 

【精彩声音】


没有人知道 DNA 如何“编程”,它们只是从其他有机组织“复制-粘贴”,就像很多代码都是从 stackoverflow 上拿过来的一样。(来自@sigfpe
 
 
做最懂你的云计算,是 SpeedyCloud 一直以来的夙愿。如果你想有机会拿着一把樱桃机械键盘打 LOL,赶紧来参加我们发起的云计算调查吧。可以点击下面的链接,或者扫描二维码参与。


如果您对我们公司和产品有什么想法,欢迎发送邮件至social@speedycloud.cn。

注:本活动最终解释权归北京迅达云成科技有限公司所有。
调查问卷
 
点击回顾
 
关注SpeedyCloud官方微博
掌握最新动态和优惠
扫描SpeedyCloud官方微信
获取价值50元免费云主机
欢迎发送邮件到social@speedycloud.cn,聊聊你对于“SpeedyCloud云计算技术文摘”的想法和建议,也欢迎你说出对于SpeedyCloud迅达云成公司的意见和看法。

*|FORWARD|*