通过MongoDB分片,他们节约了近半年的开发时间?!

上海小胖 2017-11-07 11:22:15
作者介绍

上海小胖,中国第十五位MONGODB PROFESSIONAL获得者,资深Python开发、DBA。DevOps践行者,曾独立开发Web服务平台,电商爬虫系统、运维管理系统,涵盖数据热力图、核心数据监控、服务器监控系统等。个人博客地址:https://segmentfault.com/u/shanghaixiaopang。

SteppeChange通过使用MongoDB,从其应用程序的开发进度中节省下大约六个月的时间。

SteppeChange是一家大型数据分析技术公司,负责设计和实施客户定制,快速上市的数据科学和技术解决方案。他们与世界各地的客户合作,为挑战性问题找到创新的解决方案,并分配分析工作,创造最大的价值。

SteppeChange首席技术官兼首席数据架构师Gregory Rayzman分享了为什么公司依靠MongoDB进行各种解决方案,其中包括为2.2亿全球用户提供的可扩展的移动客户参与平台。

1、复杂任务

全球科技公司聘请SteppeChange建立一个移动客户互动平台,供全球移动运营商使用。SteppeChange被第二个分配了这个项目,SteppeChange知道他们将要面对挑战,因为不同的国家有非常不同的数据管理法律。 虽然一个国家可能要求所有数据在休息时加密,但另一个国家可能要求所有数据都存储在其国家边境内。

SteppeChange的目标是建立一个具有单一代码库的平台,同时平衡多个数据管理要求,满足全球2.2亿用户的预期需求。

2、设计选项

在评估数据库选项时,寻找满足多个国家管理的不同数据管理需求的系统是至关重要的。在调查了诸如MySQL和PostgreSQL等关系型数据库以及Cassandra和Couchbase等NoSQL数据库后,SteppeChange很快就意识到MongoDB Enterprise Advanced提供了SteppeChange所需要的灵活性、可扩展性和敏捷性。

MongoDB Zones 功能对SteppeChange的应用程序至关重要。使用它,SteppeChange可以将MongoDB集合中的数据分解成多个分片,并将每个分片分配给特定地理位置相关联的区域。区域是同一集群的一部分,可以在全球查询,但数据位于当地是受到法律允许的。 MongoDB区域分片的延迟不仅减少,而且SteppeChange还可以独立于其他区域扩展以及扩展每个区域。

MongoDB Cloud Manager也是建立和监控MongoDB部署的主要资产。它允许SteppeChange可视化所有系统的持续状态和状态,排除问题,并轻松执行时间点恢复。

3、解决方案

使用MongoDB Zones,SteppeChange将用户数据以监管为目的进行分割,并将其保留在当地管辖范围内。更具体地说,用户数据在物理上位于适当国家的数据中心,使得应用程序对用户数据的访问符合本地法规边界。

SteppeChange设计并建立了一个由三个区组成的多分片MongoDB集群。每个Shard都有三个副本集,除了用于报告隐藏的无投票权节点之外,还允许系统基于节点功能来达到负载均衡。SteppeChange将特定管辖区有关的数据部署在相应管辖范围内的数据中心,而不受相同法规限制的数据部署在AWS上。

对于部署在AWS上的MongoDB区域分片,SteppeChange在多个AWS可用区域(AZ)上分发复制集节点,以提高应用程序可用性并防止AWS中断。此外,SteppeChange还针对配置服务器使用类似的设计 - 它们也驻留在多个AZ中。

为了保证遵守安全和隐私标准,SteppeChange还利用MongoDB的本机加密。为了满足关于数据访问的规定,SteppeChange使用审计框架来记录对数据库执行的所有管理和非管理操作。

SteppeChange的部署拓扑图

4、MongoDB加速交付

通过MongoDB,SteppeChange可以通过从开发时间表中节省下大约六个月时间来快速将SteppeChange的应用推向市场。 SteppeChange的团队已经能够利用基于MongoDB BSON的文档存储,二进制Serializable JSON对象。这是SteppeChange应用程序中使用的基于JSON的底层数据结构的完美原生匹配,它提供了一种快速添加新功能的敏捷方法。 SteppeChange还能够简化数据管理,消除数据迁移的复杂性,提高开发人员的工作效率,并让SteppeChange的工程团队专注于手头的任务。

在不断向前迈进的今天,SteppeChange也在寻求扩大MongoDB中其它功能的使用,例如地理空间功能,例如地理围栏和基于地理位置的报价管理,并将其添加到SteppeChange的移动客户参与平台。

活动预告