分享议题:《有赞数据库运维实践》
分享时间:16:40-17:50
讲师:杭州有赞 DBA 杨奇龙
个人介绍:7 年 DBA 老兵,目前任职于杭州有赞科技 DBA,主要负责数据库架构设计和运维平台开发工作,擅长数据库性能调优、故障诊断。
一、专访
问(3306π社区):杨老师先向大家来个自我介绍吧,并简单分享下自己的 DBA 从业经历。
答(杨奇龙):本名杨奇龙,网名北在南方,从毕业到现在一直做 DBA,在阿里工作四年半,经历阿里云,RDS DBA,外部去 IOE 项目组,阿里集团电商业务 DBA,现在就职于杭州有赞科技有限公司,主要负责数据库架构设计和运维平台开发工作,擅长数据库性能调优、故障诊断。
问:您本次分享的主题是《有赞数据库运维实践》,能否先剧透下,在有赞的技术架构中,MySQL 都应用在哪些场景呢,是否括核心业务诸如订单、支付这些吗?
答:在有赞的数据存储类型中 MySQL 占了绝大部分的比例。商品、会员、库存、交易、以及支付在线交易链路以及公司内部服务都使用了 MySQL 存储。根据业务压力大小,为不同的业务搭建独立的实例或者水平分片的数据库。
问:这次双11活动中,你们的技术平台遇到最大的挑战是什么呢,如何应对和渡过的呢?
答:其实最大的压力来自 0 点的交易高峰,热点商品的拼团和秒杀还有连接数的暴涨的风险,我们通过如下方式应对:
提前进行水平或者垂直拆分,业务层面,用户,商品,交易数据库基于买家ID,粉丝,商品ID/交易单号进行水平拆分,核心集群相互独立部署在不同的机器上,目前 MySQL 系统架构能够支持平时 5-10 倍的性能容量。
为了应对业务连接的暴涨的风险,我们针对数据库连接做了向上调整。
联合业务方进行全链路压测,发现有问题的 SQL,进行优化。
扩容核心业务的数据库服务接入层 proxy 实例,避免流量拥堵。
问:不知在有赞的技术架构中,MongoDB、redis 这些非 MySQL 的数据库应用的多吗,都用在什么场景呢,有没有遇到哪些技术挑战?
答:在有赞我们使用少量的 Redis 以及自研了兼容 Redis 的 ZanKV,用于客服会话队列,消息分发,业务数据缓存。
电商业务场景有比较多的秒杀和热卖商品场景,存在热 key 和 big value 的设计,会导致后端存储网卡流量满,进而导致其他性能和稳定性的问题。一般发现 big value 的场景我们会推动开发进行优化拆分。
问:能否给新入坑的 DBA 们一些建议,尤其是技术学习和职业发展方面的?
答:首先我们要理解"DBA"角色的职责:保障数据库(存储)稳定,高效运行,服务开发支持日常变更以及性能优化等等。DBA 从事的工作岗位要求我们掌握多种技能比如要理解数据库运行机制,要掌握服务器的运维技术,要懂存储优化,也要能排查网络问题。所以除了学习数据库技术本身以外,系统学习也是非常有必要的。
对于技术学习,我自己的建议是:
阅读官方文档,《高性能MySQL》,姜承尧老师的书籍。
搭建环境,多做实验测试,多验证。
书写技术文章/blog,把自己学到的技术通过文字,图表达出来也能促进自己更好的理解和吸收技术,也能帮助其他人。
当然还有互联网上的培训渠道。
对于职业发展这方面,从我自身的经历来讲,不管是新人还是老兵我们都是为公司/团队解决问题的。在工作过程需要不断总结,形成自己的知识体系,技术体系,解决问题的方法论。
DBA的职责随着公司业务规模的发展也会有所变化,从运维几个实例到成千上万个实例对DBA的要求是不一样的,DBA要具备将自己的经验产品化的能力(抽象为产品化的能力或者开发产品的能力)。
二、活动详情
活动名称:「3306π」年会-深圳站
时间:2018年12月15日 08:00-18:00
地点:南山区南京大学产学研基地A座5楼ACTLab 瑞知实验室
交通:地铁2号线科苑站 D口
报名链接: https://www.bagevent.com/event/2026569
「3306π」社区:围绕 MySQL 核心技术,将互联网行业中最重要的数据化解决方案带到传统行业中,囊括其他开源技术,Redis、MongoDB、Hbase、Hadoop、ElasticSearch、Storm、Spark等,在全面互联网化的大趋势下,将互联网新鲜的核心技术理念带到传统行业里,构建良好交流互动环境。