1现代化应用开发之难亦是数据架构创新之难
时间:2022-03-05 06:10:01 | 来源:行业动态
时间:2022-03-05 06:10:01 来源:行业动态
现代化应用对规模、可用性和性能都提出了更高的要求。
对于现代化应用来说,不仅要应对剧增的用户数量,还要支撑不断增长的应用负载种类和数量。这是现代化应用开发面对的第一个难题更强的可扩展性。
以游戏的场景为例,目前排名靠前的国民级游戏日活用户已经超过 1 亿多人,未来百万以上用户量将成为应用程序的常态,我们畅想一下最近大火的元宇宙场景,如果是一个全球级别的元宇宙应用,其用户数量会是这个数据的数倍,甚至数十倍,媲美亚马逊黑色星期五大促销的高并发情况将成为日常。所有人都在一个元宇宙进行交互的场景,对应的后端系统响应并发的要求是极高的。这不是在揣测,而是基于事实和现状,对未来的合理预测。因此首先需要解决的,就是更大规模并发问题。
现代化应用开发面对的第二个问题,是如何存储海量数据,以及存储海量数据之后,如何对这些数据进行实时化和智能化处理。
当前数据已呈现出二八定律:结构化数据占 20%,非结构化数据占 80%。《微软飞行模拟器》模拟真实的山脉、道路、云朵,产生了超过 2.5PB(2.5 x 10^6 GB)的结构化数据,终极元宇宙所需数据量至少比此高出多个数量级。
根据 IDC 的最新报告,现有数据中非结构化数据占比已超过 90%。随着新型软件的增多,非结构化数据占比将越来越高。不同格式、不同标准的非结构化数据在技术上比结构化数据更难存储和分析。传统数据架构应对这样的海量数据将会很吃力。
另外,现代化应用还需要考虑性能和延迟的问题。未来,新的现代化应用都会以遍布全球的用户为目标,这就对延迟有极高的要求。在游戏中,10ms 的延迟都是不可接受的,有些游戏甚至需要内存级别的延迟。超强的带宽、超快的传输速度等的实现,需要遍布全球的通信基础设施建设。
需要注意的是,在考虑高并发和低延迟的同时,还需要兼顾考虑总体质量和成本。建立、运行和维护这么大规模的应用需要耗费的人力和物力,一般企业可能难以承受。所以除了质量,成本也是需要考虑的问题。
总结来看,现代化应用至少要处理 TB 级、PB 级的结构化数据和数倍于此的非结构化数据,支持分布在全球的数百万用户,并以极低的延迟每秒处理数百万个请求。
对于非结构化数据,如今很多企业开始基于 Amazon S3 这类具备 EB 级扩展能力的云存储构建云上数据湖,并通过云原生数据分析处理工具对这些数据进行处理分析。而对于结构化数据,还需要弥补以下缺陷:
- 企业被传统商业数据库束缚,而难以开展创新。传统商业数据库不仅价格昂贵,还有专有技术及许可条款,需要经常进行审计。虽然越来越多的企业转向了 MySQL 和 PostgreSQL 等开源数据库,但他们仍需要商用数据库的性能。
- 无法满足特定场景需求。随着应用场景的不断增加,不同应用程序有了自己特定的需求。现在,开发人员越来越多地使用微服务架构来构建应用程序,并且选择新一代的关系型和非关系型数据库。但关系型数据库的结构数据耦合性大,不利于扩展分布式部署。非关系型数据库没有事务处理,复杂查询方面略微欠缺。
- 传统数据库运维模式仍旧需要耗费精力和成本。运维耗时但价值输出较低,但企业又不得不在这方面耗费精力和成本。