MongoDB云原生化:为企业开发注入高效动力

本文涉及的产品
函数计算FC,每月15万CU 3个月
可观测可视化 Grafana 版,10个用户账号 1个月
应用实时监控服务-应用监控,每月50GB免费额度
简介: MongoDB云原生化为企业开发注入高效动力,分为三部分:1. 介绍阿里云和MongoDB的服务;2. 阿里云MongoDB解决自建模型痛点的功能,包括隔离性、海量数据处理、弹性能力及运维操作优化;3. 客户案例展示。通过云原生架构,MongoDB实现了灵活的扩展、高效的备份恢复和快速的回档能力,显著提升了企业的业务迭代速度和数据管理效率。典型客户如吉比特、莉莉丝、掌阅等受益于这些功能,实现了更稳定和高效的数据库服务。

MongoDB云原生化:为企业开发注入高效动力,主要分为三部分:

第一部分:介绍阿里云和MongoDB的服务

第二部分:阿里云MongoDB为解决自建模型的一些痛点所做的功能

第三部分:介绍客户案例

 

一、MongoDB云原生化

MongoDB是一款非常受开发者欢迎的数据库产品,不管是从下载量还是开发者社区的评测,是从DB边界上的排名是从foreign的一些评估都是非常受欢迎的。

1.MongoDB受欢迎的主要原因

1MongoDB模型非常易用

它使用文档模型,所以用户无需因增删某些字段而做一些非常复杂的运维操作。在文档数据库领域,MongoDB的优势非常明显。

(2)MongoDB变更非常灵活

MongoDB从很早的时候就开始放弃主编模式而支持副本级模式。用户单个节点变更无需担心数据一致性的问题。MongoDB能够支持分片集群做横向扩展。在企业业务增长时,可以很快应对。并且生命周期到达某一个阶段需要缩容时,也可方便做缩容。

(3)MongoDB性能优异

灵活性在软件上带来的挑战,可能对性能会有损耗。MongoDB在性能上采取YTAGER作为存储引擎,不管是稳定性还是性能上都有很大的增强,特别是8.0在性能上有极大提升。

(4)MongoDB功能丰富

除了文档模型之外,MongoDB在5.0开始支持时序数据结构、全文检索和下载检索,让产品能够覆盖的场景更多。

2. 阿里云和MongoDB的合作

(1)版本合作

阿里云是国内唯一一个可以提供最新版本的云厂商,先前提供5.0、6.0,去年提供了7.0,马上8.0做适配,估计会在明年一月份和大家见面。


(2)阿里云和MongoDB研发上的合作

4.4支持Hidden Index解决什么场景问题?创建索引可以提升查询性能,但同时会带来写入的成本。随着业务的发展,接的数据越来越多,想删除一些索引来提高写入的性能,由于人员不太确定某个索引能否被删除,删除后的索引被之前未用到的query索引应用到,再重建索引可能会耗时较多,Hidden Index相当于把索引做一些元素的标记,只是让不会再去用这个索引,但如果发现有的query用了这个索引,可以很快的把该索引重新用回来,这样的功能解决非常实际的业务问题。


3使用数据库的问题

在规模和应用场景下会面临使用数据库的问题,这些问题很多时候需要非常有经验的研发工程师和服务支持人员解决。阿里云和MongoDB原厂每周会针对云服务商遇到一些问题进行讨论,给用户非常确切的可实施方案。


4阿里云MongoDB的发展历史

在2019年和MongoDB进行官方战略合作之前,阿里云MongoDB就开始推出MongoDB的pass服务。从16年开始,开始支持3.0和3.2,和官方进行合作之后,开始推出4.2和4.4,今年年初推出了7.0,包括即将会上的8.0。

 

二、云原生MongoDB企业开发的高效驱动力

这一部分是介绍阿里云MongoDB解决自己MongoDB痛点而做出的功能。


1.自建MongoDB的四个痛点

1隔离性问题

一般自建MongoDB会在物理机上布置多个实例,多个实例之间的CPU和memory是通过CPU来进行隔离的。但这个部署方式有个明显的弊端是它的磁盘I/O和网络是没法做较好的隔离,很多时候会带来业务之间的干扰。

2海量数据

7T/8T的一个物理机,如果宕机后会涉及大量的数据迁移,如果以平时50gb/秒的搬迁速度,差不多1T的数据大概要搬二十多个小时,对服务可能性和数据可靠性都有较大风险。

3弹性能力

若通过物理机的存储计算是耦合,一台机器上的CPU或磁盘不足,没法解耦的进行扩容,这时会涉及整机的搬迁。

4运维操作

运维操作包括备份、回档这样的操作,自建比较难操作,难以应对一些较特殊场景。比如回档是一个非常低频的操作,但它依赖的是较为高频的备份操作。这些备份怎么存储,怎么保证它的高可用是需要做很多工作的。


2.云原生MongoDB架构

2.1.实例管理

所有的pass服务需具备管理实例的生命周期,然后做变配、版本升级。


2.2高频优化

MongoDB可以提供集群内的选举,如果你资金不够低,会考虑怎么把对应的供应链的暴露给用户,然后节点重单。这些都是云原生的MongoDB可以整体做的解决方案。


2.3.管控能力

1全链路数据安全

全链路数据安全包括传输安全、存储安全。

2备份恢复

备份恢复对应用来说是一个非常关键场景,包括如果遇到问题想回滚到两天前的数据,想按时间点恢复需要用到的哪些技术。

3全方位可观性

监控数据有异常时怎么通过监控数据做快速诊断从而解决问题。

4全链路数据迁移方案

全链路数据迁移方案可以支持从AIS的MDB从多个MDB, 包括其他自建的/其他云厂商的MongoDB迁移到阿里云。


2.4.内核管理

版本覆盖非常全,从目前官方来说4.4及之前都已经优惠了。但在阿里云仍然提供了从3.0到7.0,但版本是在逐步的往前推进的。其次,国产化的资源能够提供更高的性价比。SQL限流是内核访问精细控制。比如典型场景,今天上一个新业务,针对某一个集合做了非常大的query,如全集合的扫描,这时想把这个集合的query全部限制掉,不影响其他集合访问,SQL限流主要是做这样的功能。


2.5.数据结构支持

MongoDB支持持续的索引结构、文本检索向量检索。文本检索、向量检索这两种功能现在是在逐步向社区沉淀,发布之后会很快适配从而在阿里云MongoDB上支持这些功能。


2.6.数据归档

应用使用数据量上来后会涉及到很多数据存在MongoDB实例上,但很少或非常低频的查询到,需要涉及把这些数据方式归档到更低的存储里,但需要供一些查询方式进行查询。云原生MongoDB主要基于两个比较核心的阿里云技术一个是1400,一个是存储,也就是计算存储解耦,主要讲了这两部分。


3.细分云原生的功能

1弹性

弹性即测试存储计算分离是通过ECS+EBS组合提供服务。这两部分资源可以分开扩容。如从48G扩大到86G的存储,这时云盘不用动,即不移动数据只移动计算就可以逐个节点替换,这样对业务的感知非常少。实际基本上业务感知在毫秒级就可完成实例的升级因为升级速度较快,正常一个独享的实例在20分钟内就可完成升级,和数据量无关。应用可以更灵活的规划自己的容量,无需一直长时间保留较大的容量。


2备份

备份恢复需要提供较多功能。备份的频率、备份的一些选择,物理备份、逻辑备份、还是快照备份都有区别。现在云原生MongoDB提供快照备份,它的全量数据备份时间和增量产生的时间相关。比如今天的数据是500G,备份用了1个小时,但今天只产生了50G的增量,快照备份只用十分钟就可备完。


但若使用物理备份,每天都需要备份500G,即每天都需要用1个小时。这就是快照备份能够得到的备份时间的提升。快照恢复一样,比如500G的数据去重新再下载下来需要30分钟,但如果用云盘快照/快照备份,恢复只需一分钟之内的时间。因为云盘的快照恢复难加载,云盘只要是挂载到PC上,它就是可用的。


3回档能力

通过备份后,怎么把用户需要回档时提供方便的回档能力。除了做整实例的回档,还支持库表恢复和按key闪回档。库表恢复原理一样,只是库表恢复涉及到增量。数据回放只需回放到某一个cache数据,这对增量恢复的速度非常友好,还支持扩展恢复到原实例,用户后续的操作会更方便。按key闪回档是比较新的备份流程和恢复流程,借助MongoDB从新版本sacshow window能力,可以根据用户的文档更改马上拉取之前的镜像,然后存储到数据存储。当用户需要回档时,可以秒级的把这一时间的文档镜像取出。这对游戏场景来说是非常高频且友好的产品功能。刚才也提到过MongoDB自身的分析支持选举,但如果自建,会涉及到VIP的更改以及备库的重建,以上都是云原生MongoDB整体做好的。另外提供了AZ-3能力,机房故障时,如果使用的是AZ-3能力可以容忍AZ级别故障,不会对业务有任何影响。


4运维复杂

和大家合作时,支持审计制、慢日志、SQL限流、规划管理等功能。对于一些典型业务场景,比如绘画,某个应用写的不对导致该应用连接非常多,可以通过规划管理迅速识别出哪些节点导致异常。通过这个界面,可以直接把PALY DB界面链接给kill掉。SQL限流能力,针对一些场景有异常的用户流量,把整个实例打爆了,可以通过集合维度的限流把影响降低。


(5)迁移链路

MongoDB、多个命令是自建数据库都可以通过对应工具迁移。迁移有额外的辅助功能,相当于自己用一些shake之类的迁移工具,可做全量和增量一致性的校验。如果有迁移场景,可以MongoDB云原生厂商合作,使迁移顺利进展。


这是云原生MongoDB的发展历程。19年达成战略合作后做了云原生架构的升级,现在全网有相当大部分比例都是云原生实例。MongoDB后面会计划做共享存储,我们会紧跟MongoDB方向做共享存储serveless的一些扩展。

 

三、云原生MongoDB企业上云实践

1.常见的客户案例

比如常见的游戏,怎么针对游戏上的这些痛点解决,这其实和之前讲的MongoDB优势相关,一是字段会不断的变更,随游戏的反馈,会引入新字段。其次,因为游戏的生命周期非常明显,在商量期间需要较快的支持用户变更,以满足其增长的业务流量。游戏场景中,如果某次版更有问题,需要马上回档到版更之前,这就依赖资源恢复的能力,单点故障时不会对游戏产生较大的影响。这时也有对应产品功能支持单点故障,不会影响,能够平滑切换。


2.业务收益

业务收益,可以缩短业务的迭代周期,在流量增长的时候可以支持用户扩容,这时应用无需改变。备份恢复的时间都可缩短到分钟级别。


3.典型客户

典型客户如游戏客户吉比特、莉莉丝;一些内容相关的客户,如掌阅、南瓜;还有AI机器人相关的客户,如小冰。

 

相关文章
|
4月前
|
人工智能 Cloud Native 安全
云原生+AI 为企业出海提供全新技术引擎!明天见
5月22日 14:00「飞天发布时刻」,阿里云云原生应用平台产品负责人李国强将重磅揭晓面向 AI 场景的云原生产品体系升级,通过弹性智能的全球一体化架构、开箱即用的云原生 AI 工程化能力,为中国企业出海提供全新技术引擎。
|
4月前
|
存储 人工智能 Cloud Native
【发布实录】云原生+AI,助力企业全球化业务创新
本文介绍了阿里云在云原生与AI结合领域的最新产品发布和技术创新。首先,通过弹性智能的一体化架构,阿里云为AI场景提供了开箱即用的云原生能力,助力企业出海。其次,详细解析了云原生如何助力AI应用构建,包括Function AI平台、GPU极速模式、MCP Server开发托管及AI网关等核心功能。
|
6月前
|
存储 Cloud Native 数据管理
《云原生数据仓库:原理与实践》,深入浅出助力企业数智化升级
开启AI背景下的数据管理新时代,探索云原生数据仓库的核心技术
|
7月前
|
Cloud Native 安全 Serverless
云原生应用实战:基于阿里云Serverless的API服务开发与部署
随着云计算的发展,Serverless架构日益流行。阿里云函数计算(Function Compute)作为Serverless服务,让开发者无需管理服务器即可运行代码,按需付费,简化开发运维流程。本文从零开始,介绍如何使用阿里云函数计算开发简单的API服务,并探讨其核心优势与最佳实践。通过Python示例,演示创建、部署及优化API的过程,涵盖环境准备、代码实现、性能优化和安全管理等内容,帮助读者快速上手Serverless开发。
|
7月前
|
运维 监控 NoSQL
客户说|莉莉丝《剑与远征:启程》引入阿里云MongoDB,助力游戏高效开发
客户说|莉莉丝《剑与远征:启程》引入阿里云MongoDB,助力游戏高效开发
325 1
|
2月前
|
NoSQL MongoDB 数据库
数据库数据恢复—MongoDB数据库数据恢复案例
MongoDB数据库数据恢复环境: 一台操作系统为Windows Server的虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 工作人员在MongoDB服务仍然开启的情况下将MongoDB数据库文件拷贝到其他分区,数据复制完成后将MongoDB数据库原先所在的分区进行了格式化操作。 结果发现拷贝过去的数据无法使用。管理员又将数据拷贝回原始分区,MongoDB服务仍然无法使用,报错“Windows无法启动MongoDB服务(位于 本地计算机 上)错误1067:进程意外终止。”
|
2月前
|
缓存 NoSQL Linux
在CentOS 7系统中彻底移除MongoDB数据库的步骤
以上步骤完成后,MongoDB应该会从您的CentOS 7系统中被彻底移除。在执行上述操作前,请确保已经备份好所有重要数据以防丢失。这些步骤操作需要一些基本的Linux系统管理知识,若您对某一步骤不是非常清楚,请先进行必要的学习或咨询专业人士。在执行系统级操作时,推荐在实施前创建系统快照或备份,以便在出现问题时能够恢复到原先的状态。
204 79
|
2月前
|
存储 NoSQL MongoDB
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
107 8
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
|
5月前
|
NoSQL MongoDB 数据库
数据库数据恢复——MongoDB数据库服务无法启动的数据恢复案例
MongoDB数据库数据恢复环境: 一台Windows Server操作系统虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 管理员在未关闭MongoDB服务的情况下拷贝数据库文件。将MongoDB数据库文件拷贝到其他分区后,对MongoDB数据库所在原分区进行了格式化操作。格式化完成后将数据库文件拷回原分区,并重新启动MongoDB服务。发现服务无法启动并报错。
|
6月前
|
存储 NoSQL MongoDB
微服务——MongoDB常用命令1——数据库操作
本节介绍了 MongoDB 中数据库的选择、创建与删除操作。使用 `use 数据库名称` 可选择或创建数据库,若数据库不存在则自动创建。通过 `show dbs` 或 `show databases` 查看所有可访问的数据库,用 `db` 命令查看当前数据库。注意,集合仅在插入数据后才会真正创建。数据库命名需遵循 UTF-8 格式,避免特殊字符,长度不超过 64 字节,且部分名称如 `admin`、`local` 和 `config` 为系统保留。删除数据库可通过 `db.dropDatabase()` 实现,主要用于移除已持久化的数据库。
351 0

推荐镜像

更多