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

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
性能测试 PTS,5000VUM额度
简介: 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机器人相关的客户,如小冰。

 

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
23天前
|
运维 Cloud Native 持续交付
深入理解云原生架构及其在现代企业中的应用
随着数字化转型的浪潮席卷全球,企业正面临着前所未有的挑战与机遇。云计算技术的迅猛发展,特别是云原生架构的兴起,正在重塑企业的IT基础设施和软件开发模式。本文将深入探讨云原生的核心概念、关键技术以及如何在企业中实施云原生策略,以实现更高效的资源利用和更快的市场响应速度。通过分析云原生架构的优势和面临的挑战,我们将揭示它如何助力企业在激烈的市场竞争中保持领先地位。
|
21天前
|
Cloud Native 持续交付 开发者
云原生技术在现代企业中的应用与实践####
本文深入探讨了云原生技术的核心概念及其在现代企业IT架构转型中的关键作用,通过具体案例分析展示了云原生如何促进企业的敏捷开发、高效运维及成本优化。不同于传统摘要仅概述内容,本部分旨在激发读者对云原生领域的兴趣,强调其在加速数字化转型过程中的不可或缺性,为后续详细论述奠定基础。 ####
|
16天前
|
供应链 安全 Cloud Native
阿里云容器服务助力企业构建云原生软件供应链安全
本文基于2024云栖大会演讲,探讨了软件供应链攻击的快速增长趋势及对企业安全的挑战。文中介绍了如何利用阿里云容器服务ACK、ACR和ASM构建云原生软件供应链安全,涵盖容器镜像的可信生产、管理和分发,以及服务网格ASM实现应用无感的零信任安全,确保企业在软件开发和部署过程中的安全性。
|
15天前
|
存储 NoSQL 关系型数据库
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
我们的风控系统引入阿里云数据库MongoDB版后,解决了特征类字段灵活加减的问题,大大提高了开发效率,极大的提升了业务用户体验,获得了非常好的效果
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
|
21天前
|
Kubernetes Cloud Native 微服务
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。
|
1月前
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
43 3
|
1月前
|
Cloud Native 持续交付 云计算
云原生架构的演进与挑战
随着云计算技术的不断发展,云原生架构已成为企业数字化转型的重要支撑。本文深入探讨了云原生架构的概念、发展历程、核心技术以及面临的挑战,旨在为读者提供一个全面了解云原生架构的视角。通过分析Kubernetes、Docker等关键技术的应用,以及微服务、持续集成/持续部署(CI/CD)等实践案例,本文揭示了云原生架构在提高应用开发效率、降低运维成本、增强系统可扩展性等方面的显著优势。同时,也指出了云原生架构在安全性、复杂性管理等方面所面临的挑战,并提出了相应的解决策略。
|
21天前
|
运维 Cloud Native 持续交付
云原生技术深度探索:重塑现代IT架构的无形之力####
本文深入剖析了云原生技术的核心概念、关键技术组件及其对现代IT架构变革的深远影响。通过实例解析,揭示云原生如何促进企业实现敏捷开发、弹性伸缩与成本优化,为数字化转型提供强有力的技术支撑。不同于传统综述,本摘要直接聚焦于云原生技术的价值本质,旨在为读者构建一个宏观且具体的技术蓝图。 ####
|
24天前
|
弹性计算 运维 Cloud Native
云原生架构的崛起与未来展望
在数字化转型的浪潮中,云原生架构凭借其高效、灵活和可扩展的特性,正逐渐成为企业IT战略的核心。本文旨在探讨云原生架构的定义、关键特性、实施优势以及面临的挑战,同时展望未来的发展趋势。通过深入分析,我们期望为读者提供一个关于云原生架构全面而深入的视角,助力企业在云计算时代做出更明智的决策。
32 3
|
25天前
|
Cloud Native API 持续交付
云原生时代的微服务架构设计
随着云计算的蓬勃发展,云原生概念逐渐成为IT行业的热点。本文将通过深入浅出的方式,介绍在云原生环境下,如何设计一个高效、可扩展的微服务架构。文章不仅涉及理论概念,还将结合实际代码示例,帮助读者理解微服务架构的核心要素和设计原则,以及如何在云平台上实现这些设计。