又到了双十一、双十二、年终大促季,每年这个时候都是购物狂欢节,不仅促销产品多、种类全、覆盖面广,促销花样也在不断翻新,直播、砍价、优惠券、加价购等,令人眼花缭乱。当全国人民沉浸在买买买的自嗨中无法自拔时,考验的不仅是百万商家的战略战术,更是各种技术平台的实力比拼,尤其是底层的数据库,将迎来流量峰值期间的高并发和快速响应挑战。
高并发业务场景下快速、弹性扩缩容挑战
▲微盟产品和服务布局
以微盟为例,公司承载的是多渠道的广告营销业务,提供和各个细分领域相关的垂直SaaS解决方案及服务。比如:双11期间的秒杀、拼团和砍价,需要很多专业解决方案和功能支撑,而微盟拥有丰富的产品和解决方案,处于业界最领先地位,很多优惠券、抽奖、广告牌、激励转化等功能,都有专门的数字化插件。
借用微盟数据库技术负责人 余成真 的话来说,“虽然微盟的很多SaaS业务经常被模仿,但从未被超越。”
从大的平台架构来看,每个业务系统都是独立应用,包括独立的后台、技术栈、数据库,并且对于库和表的设计,也各不相同。
而对于“秒杀”类活动,每天收到的活动报备请求至少几十个,遇到重要节日以及重大营销活动时,可能会有上百个商家发起活动报备申请,无论是用户在线数,还是业务请求量,都是TOP级别。
所以,对于数据库的性能来说,必须满足如下要求:
● 反应要快,并且不同应用接口响应要求不一样。
● 针对恶意刷票行为,要进行流量防控。
● 要具备数据库的大量读写能力。
大体来看,微盟数据库团队主要面临4大挑战:
1.高并发、低延时需求。
微盟的核心接口在平常状态下都是毫秒级响应,数据库的每条请求都是几毫秒,甚至是纳秒级响应时间。在活动高峰期,某些营销插件的场景类数据库,单实例就有超过7万真实QPS记录值。
2.确保稳定性及高可用性。
稳定性和可用性是基本要求,目前主要依赖腾讯云数据库底层高可用能力,同时微盟自己也有一套针对应急场景的可用性工具,未来希望能更可靠、更稳定。
3.数据安全。
如何对人员安全、数据库安全进行治理,成为一项长期工作。需要进一步加强治理的事项,包括:数据分类分级、线上数据查询的精细授权、数据灾备的定期演练、运维操作风控等。
4.海量实例数据库运维。
微盟数据库类型多、数量多、业务线多,管理好这些元数据是DBA做好各项工作的先决条件。同时,只有做到精细化运维,才能规避工作中遇到的数据库问题 、将故障及风险降至最低。
此种背景下,微盟开启了全面的云数据库转型征程,从思维模式开始,让整个架构向更弹性、更灵活的服务模式演进。
采用现代化架构解决数据安全、技术能力扩张问题
▲基于云数据库的解决方案与实践
“SaaS电商业务的本质是,对数据库应用性能要求较高,必须抗住各种压力。” 余成真说道。
在数字化转型背景下,企业业务的核心是数据,数据驱动业务,数字即服务。而承载所有数据的数据库,既有事务ACID特性的要求,又有海量数据存储的要求。所以,数据库产品在具备联机事务处理能力同时,数据库的读取性能也必须强悍,同时还要具备数据分析能力。另外,微盟业务发展速度飞快,资源需求呈指数级倍增,数据安全、数据库类型扩展、数据库技术能力扩展等核心问题,都需要重新考虑。
微盟持续保持高速发展,创新和不断迭代是内在基因。2020年,为了助力更多商家实现数字化转型,微盟提出了“TSO全链路智慧增长”,从流量、SaaS工具和运营角度,构建全域数字化商业闭环。从产品角度看,最重要的是,全面提升信息安全保护能力,防止灾害及不可抗拒因素给业务系统带来的伤害。
为了配合集团业务高速发展的需求,数据库团队必须基于现代化业务架构,转变思维模式,让所有业务在充分享受云的弹性能力的同时,也要兼具业务的隔离性。
利用云数据库弹性满足高并发和快速调整需求
纵观微盟数据库的发展史,主要分为3个重要阶段:
1. 早期IDC建设阶段,包括自建黑石数据库服务集群。
2016年,微盟的数据库从阿里云全线迁移到腾讯黑石机房,实现了跨IDC的异地同步。在迁移之初,不仅要保证数据的一致性,对数据可用性的时间也有极高要求,数据库实例要在30分钟内全部切换完,具体到单套实例的不可用时间要限制到秒级。而且,迁移过程中注意的细节非常多,涉及到对项目的协调及人员的动员力,在数据库同步迁移技术上,要保证数据的绝对一致性,迁移过程中也要具备更缜密的思维。同时,还讲求战略战术和技巧,微盟当时使用的是主从复制技术,因为经典意味着可靠。
为了更贴合业务发展,微盟还自建了数据库服务集群,用半年时间打造了一整套数据库私有云解决方案,包括具备监控、告警、备份、高可用等相关功能。不仅解决了业务问题,在技术上也有重大突破,包括借助开源工具实现了二次开发,期间还编写了大量辅助运维工具,将零散的运维工作进行了工程化建模。由于数据库硬件服务器是高效及高可用架构设计,所以数据库集群在4年多线上真实环境应用中,没有出现任何事故级故障,整体集群非常稳定、高效。
2. 数据库全面上云以及异地多活架构升级。
2020年,为了配合TSO业务战略落地,微盟尝试探索公有云路线。因为,相对于私有云,公有云的弹性扩展能力强,更能满足业务高并发需求。经过大量调研、测试、选型、验证后,公司开始制定实施计划,全面上云。其实,当时很多云厂商提供的异地多活方案都不是非常成熟。期间,微盟数据库团队和腾讯云数据库部门保持密切沟通与互动。从最初通过线上边缘业务进行测试,到之后发展到周期性全实例的多活故障演练,最终才实现了技术上的突破,创造了成功的多活方案,高度确保了业务的稳定性。
3. 加码数据安全,实现精细化运维。
2021年,为了确保数据库部门拥有全线的业务支撑能力,微盟制定了很多和运维相关的规范及流程。主要包含两个维度:一方面,运维操作人员要具有可量化的操作细节;另一方面,降低风险,提升沟通效率。
集中式+分布式技术架构设计
大体来看,微盟云数据库转型是企业支持数字化业务的最重要里程碑,他们开创了新的思维模式,用一个更灵活的策略,把大业务拆小,小业务拆得更细。并且,在每一个细的模块上,都做了数据库级别的支撑。这意味着,整个后台不仅拥有众多实例,能充分利用云基础设施的弹性,随时按需使用,还能确保实例之间的隔离性。即便是小商户,也能做到项目式的隔离,确保每个项目都不受影响。
在具体的数据库设计上,微盟采用的是集中式+分布式技术架构。
● 分布式应用场景:微盟把Redis、Kafaka作为大型分布式系统的关键组件,这些组件在实时数据或流式数据架构中扮演着重要角色。
● 联机事务处理应用:微盟采用腾讯自研的云原生数据库TDSQL-C、腾讯云MySQL、腾讯云PostgreSQL支撑底层全业务线存储,存储所有业务线的元数据,并提供重要数据计算及存取能力。
● 分析型应用场景:通过TiDB/ HBase /TDSQL-H解决实时及离线分析问题。
在余成真看来,决定微盟云数据库选型的最关键因素有四点,即安全、性能、稳定和成本。
微盟是基于微信生态做的产品级应用,也是腾讯云华东地区头部、重要VIP客户,所以对腾讯云有着天然的亲和力,微盟的很多基础设施服务都在使用腾讯云提供的产品,比如:高防、LB、VPC网络、CVM、COS、DB、EMR等等。针对腾讯云数据库产品提供层面,微盟目前主要使用的是MySQL及云原生数据库TDSQL-C,以及非关系型数据库Redis。
更安全、更稳定、性能更强
“数据库全面上云后,不仅实现了当初规划的目标,在数据安全性、应用的稳定性以及性能方面,也有更卓越表现。” 余成真对云数据库上线后的效果,给与了高度评价。
总结而言,数据库上云后,获得了如下效果:
● 全面确保数据安全。
底层基础设施安全:由于数据库底层运维工作主要交给腾讯云数据库团队来做,极大地确保了底层基础设施的安全性。
数据安全:为了从根本上确保数据安全,微盟在数据库权限系统上设置了最小粒度的授权原则。具体做法是,将权限绑定于资源对象上,人及业务组仅有权限查看所属的数据库资源。对这些资源的操作,会进一步细化权限,如:流程化管理,要经过“申请、一级审批、二级审批、执行”这样一个流程。
权责到人:微盟还将所有DBA操作进行工单化,具体包括:查询申请工单、SQL上线工单、数据迁移工单、数据归档工单等等。通过对人、对资源的权限控制,对数据的分类分级等方式,来保证数据安全。为了与国家数据安全法保持实时同步,微盟已将数据安全法进行了平台化处理。
● 运营能力提升。
为了满足更精细化的运维需求,微盟基于腾讯云数据库提供的能力,做了进一步扩展,对更贴近业务场景的功能做了处理。为了全面提升数据库运营能力,通过监控数据、告警数据、慢日志数据等进行资源评分,为资源配置提供重要依据,也可推导业务代码质量,产品响应质量等。简单理解,腾讯云数据库把底层的脏活苦活累活都干完了,微盟的数据库团队就无须再关心底层基础设施问题,而是拿出更多时间,关注业务层面的问题。
● 性能增强。
对于微盟最关注的数据库性能,也做了进一步增强,实现了底层内核以及整体性能的优化。微盟建立了数据库性能压测跟踪平台,可按照自己的标准进行快速衡量各厂商云数据库质量。在数据库上云后,微盟还建立了真实业务SQL模型,能推导代码质量,度量接口响应指标等。
● 成本优势。
云数据库上面的资源弹性扩缩容能力,以及在节约成本方面,也是传统业务模式无法比拟的。腾讯云数据库拥有资源的全生命周期管理,包括:资源申请、资源创建、数据库管理、账号类型管理、账号权限管理、资源业务域归属、资源负责人管理、资源监控备份告警管理、资源下架单、资源回收站。传统IDC模式下,一旦活动来了,进行扩容以后,成本就一次性加进去了,即使缩容以后,成本还是那么多。但使用腾讯云就不一样,可以按需使用,随用随付。
微盟云数据库不仅全面拥抱了云原生,在HTAP融合发展趋势上也在不断探索。目前,具有业务属性的云原生数据库TDSQL-C,已开始逐步迁移,承担的是高读QPS类的业务;其中还有一小部分是TDSQL-H系列,解决了分析型应用场景的查询问题,承担一些AP类的业务。微盟通过腾讯云数据库的全栈服务,满足了AP、TP全场景需求,支撑着百万商家的大促及秒杀等核心业务。
小结:从某种角度看,微盟数据库上云旅程,其实是企业业务创新不断发展的结果。以数据库实例数量为例,上线之前是1000多套,现在使用了云上的资源以后,已经发展到2000多套,翻了至少一倍。从资源规模上,已经做了一定的数量级,如果全部自己搭建,其业务的难度以及工作量,都无法想象。
关于微盟:
微盟,成立于2013年,虽然发展时间不长,但已成为一家领军企业云端商业及营销解决方案提供商,拥有超过7500名员工,全球加盟商超过1600家,入驻商户超过300万家。公司旗下业务主要包括商业云(微商城、智慧零售、智慧餐饮、智慧酒店、智慧美业)、营销云(微站、智营销、企微助手)、销售云(销氪)以及和精准营销相关的丰富的媒体资源和DMP。媒体资源主要是指和腾讯、抖音、快手、头条、知乎、小红书等平台的对接;而DMP,则包括精准受众定位、分析与优化和更灵活的格式等。微盟的企业理念是,致力于成为企业数字化转型最佳伙伴,助力更多商家开启数字化转型征程。