云计算的出现,不仅改变了整个IT基础架构的走向,而且也大幅降低了企业应用程序开发的专业化程度,让围绕企业业务展开的全新应用程序开发在短时间内完成成为可能。
2021年底,IDC发表的年底报告预测:到2024年, 数字经济的发展将孕育出超过 5亿个新应用/服务,这与过去40年间出现的应用数量相当。也就是说,越来越多的企业,会围绕自身的业务需求,自行开发更多的全新应用程序。
“简单来说:数据库是应用程序的血液,也是企业底层架构的电力供应。因此,数据库产品在企业应用程序开发阶段,应该保证能够让用户很容易上手;在应用程序成功开发和推广之后,数据库应该能够很容易实现扩展,并始终保持高可用性——完全不需要用户对其进行任何复杂的技术层面的重新架构调整。”Mark Porter,MongoDB首席技术官,这位在数据库领域工作了35年的资深技术专家,在2022年全球用户大会一场针对中国媒体的在线分享会上,回答笔者提问时强调:沿着从网络、存储、服务器、操作系统、数据库、数据到应用程序的企业典型IT架构来看,对于企业用户而言,与应用程序开发最密切相关的是数据,而与数据最直接发生关联的就是数据库。因此,是否采用低门槛、高效率、强扩展性、高可用性的数据库产品,将直接决定着企业用户能否更快速地面对变化做出响应的关键。
MongoDB首席技术官 Mark Porter
“MongoDB是一款与众不同的数据库产品,它提供了一种最快和最可预见的写应用程序的方式。”Mark Porter说:现在有来自制造业、金融业、电子商务、游戏……以及很多其他垂直行业的客户都加入和选择了MongoDB。
开源非关系型数据库的技术流派
作为开源非关系型数据库的代表,MongoDB公司于2007年在纽约成立,产品于2008年开源。
非关系型数据库出现的背景,与整个社会的数字化进展不断推进密切相关:当包括企业在内的各种社会组织对数据、尤其是包括文档、图片、报表、视频、HTML等各种非关系型数据的依赖程度越来越高,而传统关系型数据库只能管理结构化数据(最简单的关系型数据库可以理解成微软的Excel),于是,针对非结构化数据的非关系型数据库就越来越重要了。
一般来说,在技术领域有一个共识:非关系型数据库可以按照存储逻辑,分为以键值对形式存储的非关系型数据库、搜索型非关系型数据库、基于列式存储的非关系型数据库和文档型的非关系型数据库等四类。
MongoDB就是文档型非关系型数据库的代表。
稍微技术一点的理解是:文档型非关系型数据库在逻辑上最接近关系型数据库。因为,通常文档型非关系型数据库都是采用JSON或者XML格式,以字符串取代表结构记录数据,虽然没有关系型数据库的表结构,但是对数据的记录逻辑基本与关系型数据库相同,因此也有很多数据专家称其为没有表结构的关系型数据库。而由于没有表结构,因此文档型非关系型数据库就彻底解决了关系型数据库由于表结构导致的扩展能力不佳的致命缺点,具有无限扩展能力;而且与关系型数据库相比,其读写性能更加优越——扩展能力强、效率更高,是文档型非关系型数据库的天然属性。
“我希望大家记住MongoDB一个最核心的真理:我们最能帮到客户的,就是帮助开发人员极大提升效率,减少很多他们没有必要去做的琐事和工作。这也是从15年前我们公司成立之初就一直秉承的核心理念,也正是这个核心理念的建成让我们MongoDB拥有世界上最忠实的开发者社区。”Mark Porter谈到MongoDB的优势时,首先提到的就是其文档数据模型。
Mark Porter强调,MongoDB与友商最大的不同点,是MongoDB文档数据模型真正是做到了为分布式系统服务,“而其他的很多竞争对手的数据库产品,其实都是基于单一的架构,而这个单一的架构已经是40年之久的东西了”。他说,MongoDB的数据库模型之所以这么独特,主要是因为MongoDB的文档模型“采用的就是数据库本身的语言”,中间不再需要一个翻译层,而如果这个翻译层存在的话,“会把整个的工作流程减缓,并且很容易中间出差错,结果也不太可预测”。
更为重要的是,MongoDB的文档模型,不仅适用于所有数据类型(如文档、图形、数组、文本、对象、地理空间、时间序列和关系型数据等),而且还可以支撑关系型的数据类型及关系型的数据库。
“这对企业用户来说真的是一个天大的好消息:因为这就意味着他们不需要再维系三到五个,甚至七个以上不同类型的数据库,用一个数据库就可以做到他们想做的事情。”Mark Porter说。
MongoDB首席技术官的关注点
可以肯定的是,MongoDB的目标,并非是只做一个提供开源非关系型数据库的厂商,MongoDB的目标,是面向企业用户越来越多的应用程序开发需求,提供一个“高度可扩展、云原生、全球分布式的数据平台”——这是MongoDB总裁兼首席执行官Dev Ittycheria在本次用户大会中提到的。他说:“MongoDB的愿景是打造开发者数据平台,为开发者提供现代、便捷的使用体验,广泛支持各种用例,并满足最为严苛的性能和规模要求。”
基于这样明确的愿景,在本次用户大会上,MongoDB发布了一系列变革性的新功能:例如,为了满足更广泛的用例需求,MongoDB借助统一的平台将数据服务方法延伸至联机运营场景和事务场景以外的搜索和分析用例,如通过一系列新功能帮助开发者更轻松地构建应用程序内分析能力,又推出MongoDB时间序列集合功能简化应用程序构建,加快构建速度并降低成本,还推出了在应用程序中构建基于相关性搜索功能的最迅速且最简单的方法Atlas Search。而为了能够提供覆盖数据生命周期的服务,MongoDB发布的产品和功能能够使开发团队能够更好地分析、转换和迁移Atlas中的数据,同时减少对可能造成延迟、制约生产效率和增加成本的批处理及ETL作业的依赖。除此之外,为了帮助企业用户灵活地部署合适的应用架构以满足业务需求,MongoDB还推出了包括Atlas Serverless、Vercel Integration、Cluster-to-Cluster Synchronization、Atlas Device Sync和Data API等一系列的服务和工具,帮助企业完成对应用架构的优化。
“我基本上是关注以下几个领域:大规模的高性能、全球覆盖和数据迁移、更丰富的 MongoDB使用场景、无缝集成至开发者的工作流和数据安全与隐私这五大方面。”面对众多的产品和功能更新,Mark Porter强调:本次MongoDB最新发布的 6.0版本,新增加的功能有150余项之多,而他更关注的五个方面,也是MongoDB从用户体验的角度,为未来新品研发和优化提出的五个重要方向。
Mark Porter尤其谈到本次大会推出的一项“改进功能促进平台更好地消减和缓解分片群集中的连接峰值(connection storms)”新功能。
“这是我们过去一年花了很大的工夫终于做成的功能,它使我们的数据库变得更具弹性,以便它更好的应对峰值的流量。比如说由于一些特殊的事件,网络的流量、数据库的流量特别高,或者是由于一些自然灾难、下雨会有一些突发流量,还有一些应用,还有公司产品最新发布的时候造成网络流量的急剧增加。”Mark Porter说。
而对于“全球覆盖和数据迁移”,Mark Porter提到了一个“非常重要的新功能”:集群至集群同步。“在过去几年一直在跟客户沟通,这是他们最想要的一个性能,经过我们几年的工作,现在集群到集群同步终于成了一个产品了:我们可以发现,利用这个功能,用户可以很简单地连接和复制MongoDB到MongoDB,不管它是本地运营,还是云中的集群。”
MongoDB还谈到了此次用户大会上发布的一个与此同一维度的全新工具,Relational Migrator:“它是一个特别、特别重量级的功能:它可以帮助我们的客户,很好地从他们遗留的、正在使用和采购的特别昂贵的关系型数据库当中迁移出来。”Mark Porter说:“我们坚信Relational Migrator将进一步帮助客户加速摆脱传统的遗留技术。”
“我总是把最好的留到最后。”Mark Porter最后谈到的是安全。在此次用户大会上,MongoDB 6.0预览版采用号称“最精密的数据加密技术”,推出了业界首个使用突破性密码学工程原理的加密搜索方案:Queryable Encryption。
技术资料显示:这项技术使开发者能够在不影响性能的情况下,简单直观地查询加密的敏感数据,并且不需要具备任何加密经验。“我们开发了一个独特的,非常强大的技术,我可以很自豪地说:现在只有MongoDB才有。”Mark Porter介绍说:采用这项技术,数据库中的数据可以始终保持加密状态,包括存储在内存和CPU中的数据;而密钥永远不会离开应用程序,且不能通过数据库服务器进行访问。因此,这种端到端的客户端加密技术使用的加密索引数据结构,使得开发者能够在完全加密的机密数据上进行表达式查询。
“在以往,在可查询和数据加密之间,用户只能选择其一:要么就选择数据加密完全保证安全;要么就只能选择数据是可以查询的——现在,Queryable Encryption可查询加密,就结束了用户总是两难选择的局面。”Mark Porter说。
写在最后
过去的一段时间,数据库市场一直非常“热闹”:有非常多的新技术、新产品和新概念的更迭,尤其是在中国市场,甚至涌现出很多的新的公司。
MongoDB北亚区高级副总裁 苏玉龙
“不仅是在中国,我们看到全球有很多新的数据库出现,并都在快速发展中。但是如果您去看看DB-engines ranking的实时分析和数据库排名,你会看到各种数据库中,MongoDB始终位列前五名当中,并且是唯一的文档型数据库。”苏玉龙,MongoDB北亚区高级副总裁接受采访时强调,MongoDB在中国市场,从2019年起,就与阿里云、腾讯云通过OEM合作伙伴协议的形式,面向中国用户提供MongoDB数据库即服务。“过去一年里,我们整体在中国的业务非常出色,在汽车、电商和金融等各行各业都获得了长足的进步,而这些行业,正是MongoDB非常适合且擅长的领域。”