编者按:本文来自微信公众号“尘锋Growth研究院”(ID:GrowthIAS),作者:kivi,36氪经授权发布。
企业数字化如火如荼,私域运营成为热词。作为赛道中的热门产品,尘锋SCRM目前上线近2年时间,服务了10,000+客户。研发是软件服务商的立身之本,数据库又是企业数字化的重要基础。
文/kivi
参考/MongoDB中文社区
在研发早期,尘锋信息开发团队,在面对数据库选型时,基于以下原因,最终选择使用MongoDB:
1. 新产品早期迭代阶段,需求的不确定性强,随时可能会有较大的调整。市场瞬息万变,抢占市场阶段需要能够快速满足需求;
2. 面对企业服务的市场开发,需要注意的几个关键性问题:
a. 严格的可用性要求
b. 业务快速发展对于数据库吞吐量的要求
c. 海量企业数据库永久存储不允许失效
对于大部分开发者来说,事务是数据库选型时考虑的一个关键因素。其实MongoDB在4.0版本就已经支持了事务,在4.2版本中已经支持分布式事务,可以在分片集群中使用。
更关键的一点是,4.2分布式事务的语法和4.0完全相同,我们可以使用相同的关系式事务语法,并且在扩展分布式事务时,客户端代码不需要修改,做到无缝迁移。4.2版本的事务功能已经能够满足我们业务侧对于事务的需求。
A. 原生分布式架构,非常方便通过分片进行横向拓展,实现海量数存储;
B. 自动化数据均衡逻辑,提升读写性能和吞吐;
C. 副本集模式保障高可用性。
所有的集群分片都是副本集,可以完全避免单点故障,实现故障自动转移,提升系统整体高可用性。
多种读参考模式,灵活的实现读写分离,重复利用副本能力提升性能。
对开发者友好,适应快速的需求变化,助力业务快速迭代,适应市场变化。
强大的原生角色和权限控制,保证安全可靠,无需在应用程序侧再做单独开发处理。
change stream具备持久性(Majority- Committed Changes),可实现端点续传(Resume token),通过全局时钟保证顺序性,具备权限控制功能保证安全,基于Aggregate框架可灵活的根据特定需求进行过滤计算。方便快速实现实时数据同步功能,快速接入数仓,构建数据中台。
A. 内置GridFS,支持大容量的存储
B. 内置地理位置索引,支持地图功能
相对于其他的NoSQL数据库,MongoDB的社区和生态更加完善成熟,第三方组件库非常丰富稳定,为研发落地提供了保障
MongoDB在各行各业都已经被广泛应用起来,如视频,奢侈品,游戏(网易游戏),航空(国际机票后端),保险(泰康),金融(微牛),企业服务(CRM),在线教育,物联网。各个互联网大厂也开始落地,阿里云、华为云、腾讯、今日头条、苏宁、OPPO等。
中国银行(实时交易分析)
① 整合全⾏分散交易数据,实现客户层面一本帐;
② 收⽀实时汇总交易金额,秒级响应;
③ 千亿级别数据实时处理。
国泰君安证券(中台系统&策略量化)
① 用户全局数据、共享数据、标签、字典,处理三端一微30000/s的并发请求;
② 产品资讯信息,模拟⼤盘数据;
③ 行情数据存放与分析,量化交易。
中国东方航空
① 旅客多数据源的快速集成(航信、行程、⾏李、投诉、贵宾厅、⽹网站、App等);
② Spark和MongoDB集成,⼤幅提升数据分析合处理理速度;
③ 旅客敏感数据集中到MongoDB中,成为唯⼀用户数据来源。
携程(机票缓存)
① 机票价格缓存在MongoDB内存引擎中,快速响应票价请求;
② 利用TTL索引,⾃动删除过期票价;
③ 分⽚架构应弹性对压力增⻓。
百度网盘
① 存放网盘文件的metadata元数据;
② 3PB数据量;
③ 分片架构弹性伸缩应对压力增长。
MongoDB客户墙
总的来说,传统关系型数据库和分布式数据库的能力MongoDB都可以直接覆盖,部分特性远超传统关系型数据库。
尘锋SCRM产品是一个ToB Sass平台。企业级数据通常具有千万级数据存储和海量数据查询需求,使用传统关系型数据库基本无法满足生产需要(根据经验,MySQL在百万级数据量情况下表现良好,到了千万级数据量规模时性能和吞吐会全面下滑),MongoDB在千万级以上数据量的性能和吞吐表现很好,可以满足我们生产业务需要。
不仅是尘锋自身的发展速度极快,同时有赖于私域的发展,平台客户的业务增长速度同样很快,尘锋SCRM需要满足快速增长的需要,而MongoDB原生支持分片横向扩展,以及数据表分片,数据自动均衡,应用层完全透明,完全满足了当前的业务痛点。
企业级数据,千万级及以上数据规模,高并发请求等业务场景下,我们对于业务数据库的高可用有着极高的要求,MongoDB基于复制集的分片集群模式,彻底解决了单点故障问题,并且支持自动故障转移(根据经验,秒级完成),极大降低运维成本和风险,为尘锋技术团队支持维护海量数据提供了保障。
字段复杂且快速变化,多层次结构的数据模型,满足不同企业级业务需要。
A. 比如传统快消行业,业务快速发展,数据结构也需要快速变更,利用MongoDB schema free的特性,可以快速,低成本的适应变化,而不需要单独花时间做数据库处理;
B. 再比如汽车市场的不同环节的客户信息具有异构性,利用MongDB能够快速适配,降低了居高不下的开发成本。
第三方库成熟完善且稳定,文档丰富,第三方工具丰富,支持快速上手,方便在技术团队落地。
丰富的实战经验沉淀
A. 7年toB Sass业务数据基于MongoDB的存储方案落地经验;
B. 丰富的大规模数据治理和集群稳定性维护经验,曾负责过数百台服务器组成的自建MongoDB集群管理,PB级规模企业数据维护,数万级op/s支撑;
C. 数据库诊断及性能深度调优,针对不同业务场景,有对应的最佳实践方案;
D. 数据库严重故障和灾难恢复经验丰富。