技术活动 | 「3306π」年会 - 深圳站(进行中)

分享议题:《有赞数据库运维实践》

分享时间:16:40-17:50

讲师:杭州有赞 DBA 杨奇龙

个人介绍:7 年 DBA 老兵,目前任职于杭州有赞科技 DBA,主要负责数据库架构设计和运维平台开发工作,擅长数据库性能调优、故障诊断。

一、专访

问(3306π社区):杨老师先向大家来个自我介绍吧,并简单分享下自己的 DBA 从业经历。

答(杨奇龙):本名杨奇龙,网名北在南方,从毕业到现在一直做 DBA,在阿里工作四年半,经历阿里云,RDS DBA,外部去 IOE 项目组,阿里集团电商业务 DBA,现在就职于杭州有赞科技有限公司,主要负责数据库架构设计和运维平台开发工作,擅长数据库性能调优、故障诊断。

问:您本次分享的主题是《有赞数据库运维实践》,能否先剧透下,在有赞的技术架构中,MySQL 都应用在哪些场景呢,是否括核心业务诸如订单、支付这些吗?

答:在有赞的数据存储类型中 MySQL 占了绝大部分的比例。商品、会员、库存、交易、以及支付在线交易链路以及公司内部服务都使用了 MySQL 存储。根据业务压力大小,为不同的业务搭建独立的实例或者水平分片的数据库。

问:这次双 11 活动中,你们的技术平台遇到最大的挑战是什么呢,如何应对和渡过的呢?

答:其实最大的压力来自 0 点的交易高峰,热点商品的拼团和秒杀还有连接数的暴涨的风险,我们通过如下方式应对:

  1. 提前进行水平或者垂直拆分,业务层面,用户,商品,交易数据库基于买家 ID,粉丝,商品 ID/ 交易单号进行水平拆分,核心集群相互独立部署在不同的机器上,目前 MySQL 系统架构能够支持平时 5-10 倍的性能容量。

  2. 为了应对业务连接的暴涨的风险,我们针对数据库连接做了向上调整。

  3. 联合业务方进行全链路压测,发现有问题的 SQL,进行优化。

  4. 扩容核心业务的数据库服务接入层 proxy 实例,避免流量拥堵。

问:不知在有赞的技术架构中,MongoDB、redis 这些非 MySQL 的数据库应用的多吗,都用在什么场景呢,有没有遇到哪些技术挑战?

答:在有赞我们使用少量的 Redis 以及自研了兼容 Redis 的 ZanKV,用于客服会话队列,消息分发,业务数据缓存。

电商业务场景有比较多的秒杀和热卖商品场景,存在热 key 和 big value 的设计,会导致后端存储网卡流量满,进而导致其他性能和稳定性的问题。一般发现 big value 的场景我们会推动开发进行优化拆分。

问:能否给新入坑的 DBA 们一些建议,尤其是技术学习和职业发展方面的?

答:首先我们要理解 "DBA" 角色的职责: 保障数据库 (存储) 稳定,高效运行,服务开发支持日常变更以及性能优化等等。DBA 从事的工作岗位要求我们掌握多种技能比如要理解数据库运行机制,要掌握服务器的运维技术,要懂存储优化,也要能排查网络问题。所以除了学习数据库技术本身以外,系统学习也是非常有必要的。

对于技术学习,我自己的建议是:

  1. 阅读官方文档,《高性能 MySQL》,姜承尧老师的书籍。

  2. 搭建环境,多做实验测试,多验证。

  3. 书写技术文章 /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 等,在全面互联网化的大趋势下,将互联网新鲜的核心技术理念带到传统行业里,构建良好交流互动环境。