数据库架构设计方法论
时间:2022-04-25 16:30:01 | 来源:行业动态
时间:2022-04-25 16:30:01 来源:行业动态
崔剑强调,更重要的是,百度智能云向企业提供的数据库不仅仅是一款产品,更是一项服务。他表示,如果只是把产品做出来放到云上让用户自己使用,我觉得是不够的。在服务客户的过程中,我们会结合每个企业具体的业务场景,与客户一起分析诉求点,然后提供最合理的选型和配置方案。
具体在实践中,百度智能云有自己的一套架构设计方法论,崔剑称之为金字塔模型。
金字塔的底层,关键词是可用性。在这一层,百度会和企业一起梳理场景需求,确定不同场景下的具体数据库方案。举例来说,对于金融这样对安全合规要求比较高的行业来说,要实现跨地域的热活,就可以在两个地方各自构建一套MySQL,然后通过网络节点实现跨地域甚至全国范围内的流量调度和分配。
第二层的关键词是一致性。一方面,要保证数据库主库和从库之间的一致性;另一方面,还要保证数据库与上层缓存节点的一致性。这个问题要视业务对数据的可用性要求,以及对读写性能的要求级别的不同情况来看。比如说,业务对数据读取要求不高,可以通过强制读主库来保障一致性;如果是一个写少读多的业务,就可以做读写分离,选择性地配置半同步复制或强同步复制;而如果是读写要求都非常高的业务,还可以从架构入手,比如在MySQL上架一个Redis,根据具体情况灵活采用选择性读库方案,既保证性能同时确保一致性。
第三层是不可或缺的安全性保障。崔剑表示,数据库的安全分为几个层次:首先是在用户使用数据库外围时把风险挡在外面,主要办法是做好用户权限分离;其二,是在SQL层通过防火墙以及数据库审计等核心引擎提高整体安全能力;其三,是在数据层通过完善的备份和数据加密方案,防止数据丢失和数据被盗。
第四层是可扩展性。不同的数据库产品有不同的扩展方式,比如MySQL可以在数据量达到一定规模后做合理的数据分区、分表和分库;比如MongoDB则可以进行分片,甚至是横向扩充分片。
第五层是性能。对此,崔剑认为,性能的提升可以分操作来看。通常来说,要提高查询速度可以建索引,要提升读操作性能可以通过流量负载均衡实现读流量的定量分配管理,要提升写操作可以对主库进行分布化从而分散写流量压力。与此同时,对于复杂的业务场景,企业还可以一步步通过复合的办法实现整体性能的最大化。
再往上,还有非常关键的一层,就是体验。这方面主要体现在数据库的运维过程中,譬如,通过上面提到的人工智能技术就可以帮助技术团队完成简单的开发和运维,以及数据同步、数据备份等工作,从而释放企业更多的人力。
总的来说,企业设计自己的数据库架构需要结合业务的复杂程度来进行。对于相对简单的业务,通常可以选择标准化的方案,而对于复杂的业务,就需要我们基于场景梳理,根据金字塔架构逐层进行方案设计。崔剑总结说。