真有趣!假设故障将发生,必须优雅地应对,Orange Digital竟如此夸赞MongoDB……

Posted 萌阔论坛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了真有趣!假设故障将发生,必须优雅地应对,Orange Digital竟如此夸赞MongoDB……相关的知识,希望对你有一定的参考价值。

    这是中国Orange Digital是法国电信的一个子公司 - Orange为英国的EE和欧洲的Orange提供数字服务。 Orange Digital维护Orange(www.orange.co.uk),Orange World和Orange Business网站以及许多EE的数字资产。

    Orange Digital为吸引超过450万用户的忠实观众和超过230万用户提供移动设备,为用户提供了一个引人入胜的多平台体验。该公司致力于创新,创造力和积极的工作场所,利用领先的技术 - 特别是企业级云和开源解决方案。

    Orange Digital管理网络服务,Orange Digital致力于为用户提供高度相关的体验。这包括广泛的内容,包括新闻,体育,天气和基于位置的服务,电影和音乐,以及用户服务,如电子邮件和消息,帐户和细节管理,计费,合同更改和在线销售。

 

问题

    应对这样多样化的内容是一项巨大的任务,特别是随着连接速度的提高和人们的期望的增长。

    Orange Digital以前在使用内部服务器的mysql数据库上运行其服务。然而,随着用户数量的增长以及服务和内容的范围扩大,公司开始寻找更加稳定,安全和可扩展的托管,数据库和应用程序技术的替代组合。

    Orange Digital的首席企业架构师Neil Jennings解释道:“简而言之,我们需要一个能够扩展和应对性能和可用性需求的新数据库。

    “我们处理大量数据类型和数据源,其中大部分数据以某种形式或形式连接起来。例如,编辑人员可能会添加新闻报道,但这些需要基于用户和设备信息,以便正确的内容以正确的格式发送给用户,具体取决于他们的个人偏好和设备。

    这意味着,Orange Digital不仅需要处理大量内容,而且还附加了更多的元数据 - 针对手机,用户,数据类型,视频,馈送,文字等。作为“Everywhere”全球合资企业的一部分,还需要开始将T-Mobile的信息纳入其中。

 

为什么MongoDB

    在这种情况下,Orange Digital开始在数据库和交付平台方面寻找替代品。经过一番审议,研究和测试,公司决定放弃托管数据本身,而转移到亚马逊的基于云的Web服务。

    随着移动到亚马逊,Orange Digital决定使用非关系数据库来存储内容和元数据。经过几个选项的实验,Orange  Digital由于性能强大,易用性而选择了MongoDB,但决定主要是由于复制,自动分片,故障转移和灾难恢复功能,这些功能与硬件故障确实发生的基于云的基础设施尤为相关。  Orange Digital解决方案旨在假设故障将发生,并且必须优雅地应对故障。

    “我们尝试了几个不同的数据库,但是令人难以置信的性能,水平可扩展性和自动备份和故障转移功能使MongoDB成为我们自然的选择,并为我们的开发人员提供了更轻松的生活。”Jennings补充说。

 

使用方便

    在任何时间点,Orange  Digital的原始数据库可能包含超过60亿行的属性,但MongoDB每个帖子或用户以及其元数据可以作为单个文档存储。随着实时数据库上的架构更改,MongoDB可以适应这些更改,而不需要昂贵的模式迁移,从而可以无缝地整合新的服务。

    虽然MongoDB最初需要更多的时间进行配置和设置,但由于其卓越的灵活性和能力,该投资已经获得了分红。

    首席数据库工程师Phil Butterworth解释说:“使用基于文档的框架使我们能够在之前的MySQL关系模型的复杂性与其他NoSQL数据库的纯键值存储之间取得平衡。

     “从域模型到JSON文档和复杂查询功能的直观映射使我们能够将用户信息和元数据与其他内容进行交叉引用,这些功能在以前的数据库中是不可能的,或执行成本高昂。

    虽然MongoDB对开发人员来说是一个积极的举措,但对非关系数据库的更改需要进行一些调整。为此......(点击下方“阅读原文”查看更多内容)

 

扫描QRcode (二维码)申请加入

MongoDB微信技术讨论群


以上是关于真有趣!假设故障将发生,必须优雅地应对,Orange Digital竟如此夸赞MongoDB……的主要内容,如果未能解决你的问题,请参考以下文章

优雅应对故障:QQ音乐怎么做高可用架构体系?

如何优雅地处理Async/Await的异常?

故障复盘:数据库连接池

微服务架构如何避免大规模故障?

故障补牢贪吃的 Bing 爬虫,限量供应的应对措施

赠书:响应式编程到底是什么?