五天玩转MongoDB训练营:阿里云特色MongoDB介绍
阿里云特色MongoDB介绍
内容介绍
一、阿里云与MongoDB合作关系
二、 阿里云MongoDB企业级特性
三、 云原生带来的特性增强
四、 阿里云MongoDB在游戏中的应用
我是本次的讲师,来自阿里云数据库事业部MongoDB产品经理。在今天的讲座中,大家将了解到阿里云是如何与公司达成战略合作伙伴关系的。我们将深入探讨如何在基于开源版MongoDB的基础上,构建云原生的产品能力,以提供更出色的产品体验。
我们还会分享如何将这些云原生能力应用于实际业务场景,丰富我们的产品,提高业务效率,以更好地解决我们在业务中面临的问题。
一、阿里云与MongoDB合作关系
阿里云与MongoDB自2019年达成战略合作伙伴关系以来,在过去的三年中取得了卓越的成绩。
在2020年,我们荣获了最佳合作伙伴奖,2021年则连续两年获得了最佳合作伙伴奖,这一切都得益于我们与MongoDB在联合研发、支持和生态建设方面的深度合作。
首先,阿里云是国内唯一能够提供最新版本的云服务提供商,这使更多使用阿里云MongoDB的用户能够更早地享受到新版本带来的特性和优势。
例如,在2021年9月,我们首发了5.0版本,增强了对时间序列的支持。在2022年11月,我们发布了6.0版本,不仅更友好地支持了原生时间序列,还引入了查询和加密等新特性。
其次,我们一直在联合研发中密切合作,以加速满足客户需求。例如,我们在4.4版本中支持了有效解决不敢删除索引的问题。同时,我们也积极向MongoDB开源社区提交高测和缺陷,并进行内核参数调整,以帮助云上用户更好地使用。
最后,我们与公司的MongoDB专家技术服务团队建立了良好的合作关系,以提供定制化的客户支持。我们始终将客户需求置于首位,迅速响应问题,提供专业建议,并开展专项合作,深入业务场景,为客户提供更专业的支持。
此外,我们还致力于构建开发者培训环境,以建立更完善、友好的生态系统。自阿里云与公司合作以来,阿里巴巴云MongoDB在每年都经历了大规模的产品能力更新和迭代,保持着一年发布一个大版本的频率。
除了发布原生开源社区支持的版本外,我们还在这些版本之上添加了许多阿里云的独特功能。例如,在2019年发布的4.2版本基础上,我们增加了滴滴轮盘加密、自动节点备份恢复以及VPC免密等功能。从2020年开始,我们推出了基于ES架构的全新架构,为客户提供更具弹性、恢复速度更快、支持更高容量的云盘架构。
我们还支持协议兼容版本,以帮助原本使用其他产品的用户更轻松地迁移到我们的产品,并针对不同客户的应用场景提供了专属形态。在2021年,我们支持了5.0版本,并在原架构形态上进行了迭代更新,如分支的并行、大节点和变配等,以提供更好的用户体验。同时,我们商业化了备份功能,增强了数据安全性。
在2022年,我们发布了6.0版本,并引入了特色的MongoDB产品形态和共享存储形态,以帮助客户降低成本并提供更多选择。我们还不断增强恢复和诊断能力,以提供更好的产品体验。未来,阿里云将继续发布新版本,并基于原生能力提供更多具有性价比的产品特性,以提供更好的MongoDB体验。
总之,阿里云一直在不断努力,以满足客户需求,并提供更多的创新和性价比优势。
二、阿里云MongoDB企业级特性
在云服务中,用户通常需要根据业务流量的变化来进行规格的调整,这可能需要修改配置和增加节点等操作,这对用户来说可能是一项繁琐的工作。然而,在云服务中,有一些特性可以减轻运维的负担,确保业务的持续稳定性。
首先,云服务可以提供弹性扩展的功能,允许用户根据需要动态调整规格,而无需手动进行配置更改。这减轻了用户的运维工作。
其次,云服务通常具备强大的数据安全性能力,可以保护业务数据的安全。这包括全链路的安全策略,包括事前防护、适度加密和审计等多个阶段,以确保用户在使用MongoDB时的整个过程都非常安全。
在事前防护方面,阿里云MongoDB使用了BC加密技术,以确保应用端访问MongoDB实例的安全性。在适度加密方面,通过TD加密和平盘加密功能,保证了数据的安全性。在事后审计方面,可以通过审计日志对MongoDB实例上的操作进行记录和审计,以便发现潜在问题。
此外,阿里云还提供了数据备份和异地备份功能,以保证数据的安全性和可用性。这意味着即使发生某个区域或机房的故障,用户的数据仍然是安全可靠的,业务不会受到影响。
总之,云服务不仅提供了弹性扩展和数据安全性的保障,还通过审计和备份等工具为用户提供了更多的性能能力,以帮助用户更好地使用MongoDB并确保业务的稳定性。
三、云原生带来的特性增强
第二个核心优势在于利用阿里云原生能力带来的增强功能,可以提供更快速和弹性的能力,以满足我们在使用过程中经常遇到的需求。
在业务流量增长或高峰期时,我们希望能够快速调整实例规格以满足当前的业务需求。当高峰过去后,我们也希望能够降低成本,降配实例规格。在传统方式下,每次需要修改配置或增加节点都需要进行物理机的增加,这会增加运维成本。
在阿里云上,我们可以利用云原生的能力来实现横向扩展和纵向升级,都能够快速享受原生的快速弹性。首先,在横向扩展方面,阿里云可以通过水平扩展的方式来增加我们的业务请求处理能力。在纵向升级方面,阿里云MongoDB可以实现计算和存储的分离,通过在线升级存储容量的方式来降低对我们业务的影响。当业务高峰来临时,计算规格和存储空间可以根据需要提升,在分钟级别内,通过快速弹性的能力来确保业务不受影响。
第三个重要特性是我们经常遇到的需求,即将数据从某一时间点快速备份并在未来的某个时间点将其快速恢复到实例中。为了满足这一场景,我们可以利用云原生带来的备份和恢复能力。传统备份通常有两种方式,物理备份和逻辑备份,每次备份都需要对实例的全部数据进行物理扫描和备份,因此备份过程通常需要很长时间。例如,对于500GB的数据,在物理备份方式下,每次备份通常需要花费数小时。在阿里云上,通过使用拍照备份,可以快速进行备份和恢复操作,将原本需要小时级别完成的备份操作大大加速。
在快照备份的功能下,我们可以在几分钟内完成备份操作。这对于一些场景,如游戏运营需要快速备份回档的情况,可以大大减少因备份恢复而占用的运营时间。这样,我们的停机时间将大大缩短,从而最大程度地提高游戏的收益。通过这种方式,我们可以极大地提高业务效率。
在恢复方面,当我们备份了数据之后,接下来通常希望能够将数据快速还原到某一时间点或副本集以满足未来的业务需求。目前,我们可以支持按备份级别进行恢复和按时间点进行恢复。此外,我们还支持部分数据恢复,以进一步提高备份恢复速度。在传统的物理备份方式下,恢复通常需要耗费数小时,但在快照备份方式下,恢复可以在分钟级别内完成,大大提高了效率。通过快照方式,我们进一步提高了恢复速度。
除了备份和恢复功能,MongoDB还具备智能诊断的能力。
我们可以在控制台上自动获得索引推荐,并关注长时任务和非预期操作,及时采取措施以防止对实例的不利影响。此外,我们还可以通过性能分析实现空间分析,帮助我们理解分片集群中数据的分布情况,以进一步优化数据定位,提高性能。通过一整套诊断工具,我们可以更好地使用我们的实例,确保其正常运行。
在数据迁移方面,目前有多种迁移方式,可以支持自建数据库迁移到云上的MongoDB实例。其中,一种方式是利用阿里云数据库迁移服务(DTS),它提供了数据同步、迁移、订阅等功能,可通过简单易用的界面进行操作和监控整个数据迁移过程。
第二种方式是使用MongoDB开源社区提供的工具,在此基础上进行商业竞争备份、异步同步和复制,甚至可以自行进行内核自身开发,同时还支持一些同步工具,以满足不同业务场景和需求的迁移要求。这意味着在实际迁移场景中,可以根据不同的需求选择不同的工具。
最后,在当前互联网环境中,降低成本已成为一个重要趋势。阿里云借助一些特性和能力,提供了MongoDB共享存储的双节点架构,与传统的三节点架构不同,这种架构采用了两节点的形式。
在实际使用中,许多请求往往会发送到主节点,而两个从节点在大多数情况下处于高可用状态。因此,为了节省成本,可以将原来的三节点架构减少到两个节点。
我们采用共享存储的方式,通过降低存储的冗余以及减少计算节点的方式,在保持同等级别高可用性的基础上,最大程度地降低使用成本。在右侧,这里展示了当前阿里云共享存储的架构形态。可以看到,在这种形态下,我们有一组双节点,它们通过共享存储数据的方式来确保高可用性特性。同时,这两个节点底层共享相同的存储数据,极大地减少了存储冗余。在这个全新的双节点架构下,对于客户来说,可以显著降低成本,相当于自建基本可以降低10%到40%的成本。而且,当我们的存储需求越大时,成本降低的空间也会更大。同时,性能方面,我们可以达到与自建相媲美的水平,并且借助原生特性,我们的实例支持最大三个TB的存储,同时还可以进行弹性扩容。
这意味着用户既可以享受自建的成本优势,同时也可以享受云托管带来的优势。对于自建企业客户来说,性能上可以与自建持平,并且提供了企业级高可用性能力,避免了单点故障。无论用户是哪种类型的客户,我们都可以提供云上MongoDB以及专业的运维服务。通过这种架构形态,我们还可以进一步降低大家使用MongoDB的成本。
四、阿里云MongoDB在游戏中的应用
前面介绍了这么多特性后,大家可能想知道这些特性如何应用于我们的业务场景,以及如何更便利地适应我们的业务需求。我将以游戏行业为例来说明。
这些特性实际上在许多行业中都非常适用,比如在某些行业中,我们可以存储游戏的日志数据、玩家数据、场景数据等。
在电商行业中,我们可以存储商品数据。在汽车行业中,我们可以存储联网采集的数据和家居标注的数据。在这些场景中,由于数据天然具有这种结构化格式,所以存储是非常适合的。
那为什么游戏行业特别适合这些特性呢?
因为了解过某些行业的人可能会明白,某些行业实际上处于一个运营强度变化很大的阶段。换句话说,游戏行业有一个运营周期,在某个阶段,它处于增长期,业务难度很高,需要大量资源。经过增长期后,游戏逐渐进入流失期,最终进入稳定期。在稳定期,流量和资源基本上保持不变。所以,由于某些行业具有这种强烈的运营变化周期,对于游戏行业来说,
它具备了以下几个特性,比如在游戏数据中,数据结构经常是动态变化的,例如属性和装备的变化。其次,游戏对于快速响应的要求非常高。当服务器故障或者掉线时,会严重影响用户体验。第三,由于某些运营周期,业务需要快速增长,需要相应的资源和流量增加。第四,游戏具有一些特定的玩法,例如SBS玩法,寻找附近的玩家,或者是游戏数据分析等等。通过这些场景来看,游戏行业需要一种数据库,它能够灵活适应不断变化的数据结构,具备快速扩容的能力,并支持地理位置分析、数据分析等功能。
实际上,MongoDB可以很好地解决我之前提到的问题。首先,MongoDB的数据结构非常适合动态变更,这可以缩短游戏迭代周期并降低调整成本。对于云上MongoDB,它可以充分利用云环境的优势,实现分钟级别的在线水平扩容,分钟内的任意时间点备份和回滚,以及自动故障转移,以满足故障处理、活动推广和问题回滚等场景的需求。此外,MongoDB的原生支持地理位置分析和数据分析等功能,可以在传统场景上扩展更多功能。例如,我们之前有一家著名的游戏开发商,他们在游戏发行过程中面临一个问题,随着玩家数量增加,数据库产品成本也会增加,成本较高。
通过使用MongoDB,他们能够更好地控制成本,利用动态变更的数据结构进行游戏迭代,实现在线扩容来应对用户增长,同时利用MongoDB的地理位置分析和数据分析功能来更好地了解玩家行为和需求,从而改善游戏体验。总的来说,MongoDB在游戏行业的应用可以帮助解决业务周期性变化、高响应性需求、成本控制和数据分析等方面的挑战。
第二点是有些运营活动可能导致流量激增,而传统数据库可能无法高效应对,这可能会影响用户体验。
在这种情况下,通过云原生的存储解决方案,在相同成本的基础上,能够为客户提供更高的性能。此外,无需手动运维的快速伸缩能够更好地支持运营活动带来的流量波动,同时拥有专业的24/7技术支持,以解决客户可能遇到的各种问题。
最后,使用这种数据库解决方案,客户可以将数据库成本降低50%以上,我们还提供了快速的数据回滚功能,能够在任何时间点快速还原数据,从而显著提高了游戏数据回滚的速度,总之,这些特性可以帮助游戏行业等各种行业更好地应对挑战。