专访百胜软件CTO:30万家门店,从MySQL到阿里云POLARDB云原生数据库

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 2018年俄罗斯世界杯期间,百胜软件公司的技术人员遭遇有史以来最大的一次挑战:由于客户线上流量远超预期,自建的MySQL数据库容量已经达到警戒线。

【编者按】北极熊日前对百胜软件CTO进行了专访。特别转载,分享给大家。


2018年俄罗斯世界杯期间,百胜软件公司的技术人员遭遇有史以来最大的一次挑战:由于客户线上流量远超预期,自建的MySQL数据库容量已经达到警戒线。按照原有的方案,扩展数据库至少需要几个小时的时间,这也意味着这段时间业务将无法正常进行,技术团队对所有可行方案进行评估,最终选择将业务迁移到阿里云自研的云原生数据库POLARDB,顺利扛过了流量高峰。

据了解,阿里云POLARDB是国内首个自研云原生数据库,去年4月正式商用后不到半年就服务了超过1000家以上的用户,目前已经大规模服务于新金融、新零售、新制造、物联网、电信等行业企业。

image

(宋庆磊百胜软件技术副总裁)

近日北极熊采访了百胜软件CTO,就海量场景下的技术架构选型,如何规避云的故障风险,云成本优化,从开源数据库迁移到商业数据库等技术话题做了交流,以下为经过精心整理的专访全文。

1

北极熊:

上海百胜软件作为知名的全渠道新零售解决方案服务商,为30多万家实体门店和2万多家网上商店服务,作为CTO,在这样海量的场景下,你觉得在技术架构选型上的挑战有哪些,应该遵循哪些标准?

百胜软件CTO:

电商场景化推动企业内部系统在线化程度提高,这样对性能和安全提出了更高的要求。百胜是一家近20年的软件公司,零售行业业务方案沉淀雄厚。百胜软件产品大概分为三种:

1、围绕门店和分销POS和DRP产品;

2、围绕电商OMS产品;

3、全渠道中台类产品。

可以看到1、2、3都面临数据库选择和支持,以关系型数据库为主,百胜软件对数据库选择标准主要是选择成熟产品,稳定版本,OLTP能力强。尤其现在很多客户采用公有云的部署,所以在数据库上原则上我们不再搭建,依赖原厂数据库能力。

2

北极熊:

在云计算快速发展中,作为CTO,你认为企业应该如何保证业务连续性,多云和混合云是不是比较好的策略?

百胜软件CTO:

云部署方式逐渐成为主流,公有云能够大大降低系统运维成本;不管是哪家公有云服务,稳定性都不能做到100%,考虑企业业务的延续性,采用多云部署确实能够减低对业务的影响。但多云部署不管是做灾备方案还是双活方案,对技术人员和云平台要求都很高,同时费用也是成倍飙升,相对来说不太适合大多企业。如果单纯考虑数据容灾备份可以云平台数据库的PaaS的能力,比如POLARDB共享分布式存储的设计,彻底解决了MySQL Master-Slave异步复制所带来的备库数据非强一致的缺陷,使得整个数据库集群在应对任何单点故障时,可以保证数据 0 丢失。

3

北极熊:

根据你的经验,你认为新零售企业对公有云在技术上有哪些特别的要求?

百胜软件CTO:

新零售对技术要求逐步提高,比如现在POS会连接点数越来越多,数据库存储容量增加,重点要解决OLTP并发处理能力。另外关于计算能力提升,企业更多应用会考虑使用分布式服务框架和监控体系。

4

北极熊:

RightScale最新发布的《2019云状态报告》提到,2019年的首要优先事项是云成本优化, 64%的云管理者认为优化云支出是最重要的举措,你对云成本优化如何看,这里有没有好的经验分享下?

百胜软件CTO:

企业在上云过程大多是基于原来线下配置做的平移,上云时没有考虑弹性扩展,尤其应用和服务弹性扩展。云资源利用涉及层面比较较多,比如存储大小、网络流量、服务器利用率等。建议应用考虑使用水平扩展部署,通过负载均衡为应用和服务扩展部署提供可能。另外尽量考虑容器化部署,更好利用云主机性能。

5

北极熊:

百胜软件从MySQL数据库迁移到了阿里云自研的云原生数据库POLARDB,这是非常大胆的一个尝试,请问当初做个决定的原因是什么,有没有对相似的竞品做过调研?

百胜软件CTO:

百胜软件从MySQL 迁移到POLARDB 是按照步骤完成的;企业使用过程汇总,主要碰到的数据库的压力,我们在以前项目中采用过主从分离,碰到过一些数据同步不及时的问题。关于数据库读写分离,我们还使用过中间件,毕竟是开源方案,碰到技术问题得不到有效的支持。我们一直关注云厂数据库能力,公司对阿里云产品一直紧密关注,阿里PLOARDB 和DRDS 都是分布式数据库,考虑维护成本,PLOARDDB 更适合我们的使用场景。首先关于POLARDB 我们在内部产品组试用,然后再和我们客户做了沟通交流,选择了合适的时间做了系统切换使用。

6

北极熊:

POLARDB使用中间有没有碰到问题,如果碰到问题是如何解决的,目前总体的业务量能达到什么样的数量级,总体来说,你对POLARDB的稳定性、性能如何评价?

百胜软件CTO:

我们在使用POLARDB的过程相对来说很顺利,但是也有一些小插曲,比如:POLARDB早期不对外开放二进制日志、未提供现在的会话一致性读等问题,但是在阿里云工程师的帮助下都协助我们解决了问题。目前我们总体的业务量大概在TB级别,总体来说使用POLARDB的过程中我们也充分感受到了POLARDB作为商业数据库所带来的稳定和性能上的提升。

7

北极熊:

使用POLARDB有没有额外的开发成本,要不要对应用程序的数据库接口重构,如果需要重构,有没有难点,工作量如何?

百胜软件CTO:

PLOARDB 完全兼容MySQL,程序和应用没有代码改动,工作量是零。

8

北极熊:

使用POLARDB,数据备份这块百胜是如何做的,除了POLARDB本身的备份机制外,百胜有没有本地的备份机制?

百胜软件CTO:

POLARDB本身提供了基于快照的备份和时间点恢复,除了POLARDB的备份机制外,百胜额外使用了阿里云数据库备份服务DBS来提供额外的备份。

9

北极熊:

数据是每一个公司的核心资产,POLARDB的安全性你是如何评估的,你认为这块的安全基线应该如何建立,对使用者有什么要求?

百胜软件CTO:

云服务的安全实际上是需要辩证的看待的,POLARDB作为一款PaaS服务已经是具备强大安全实力和完善的保护措施,相对传统自建服务器来说肯定是更加安全。但是不是绝对安全,企业应该做好相应的预防措施,执行严格的身份和访问管理、设置高强度帐户密码等等。只有企业和服务商之间密切配合,才能够保证云服务器具备更高的安全性,达到供应结果。

北极熊:谢谢宋总的无私分享,让我们了解到新零售行业用云过程中碰到的一些问题和解决方案,特别是对POLARDB的性能、稳定性、易用性有了新的认识,祝愿百胜软件发展顺利。

关于百胜软件

上海百胜软件是国内知名的全渠道新零售解决方案服务商,为鞋服、运动、家居、日化、美妆、珠宝、食品等品牌企业提供管理咨询和信息化解决方案,业务涵盖全渠道中台、零售分销、供应链、电子商务、移动应用、大数据等领域。

百胜软件CTO介绍:

宋庆磊,7年企业ERP开发与实施经验;10年互联网技术开发与管理经验;先后在新蛋网、齐家网等任技术副总裁;具备丰富的全渠道、新零售实战经验。

原文发布时间为:2019-03-19
本文作者: 北极熊
本文来自云栖社区合作伙伴“ 云技术”,了解相关信息可以关注“ 云技术”。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
9天前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
43 6
|
7天前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
38 3
Mysql(4)—数据库索引
|
9天前
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
27 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
|
1天前
|
存储 关系型数据库 MySQL
如何在MySQL中创建数据库?
【10月更文挑战第16天】如何在MySQL中创建数据库?
|
5天前
|
SQL Oracle 关系型数据库
安装最新 MySQL 8.0 数据库(教学用)
安装最新 MySQL 8.0 数据库(教学用)
34 4
|
3天前
|
存储 SQL 关系型数据库
【入门级教程】MySQL:从零开始的数据库之旅
本教程面向零基础用户,采用通俗易懂的语言和丰富的示例,帮助你快速掌握MySQL的基础知识和操作技巧。内容涵盖SQL语言基础(SELECT、INSERT、UPDATE、DELETE等常用语句)、使用索引提高查询效率、存储过程等。适合学生、开发者及数据库爱好者。
11 0
【入门级教程】MySQL:从零开始的数据库之旅
|
6天前
|
存储 关系型数据库 MySQL
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
13 2
|
8天前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
32 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
9天前
|
Java 关系型数据库 MySQL
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
这篇文章是关于如何使用Spring Boot框架通过JdbcTemplate操作MySQL数据库的教程。
11 0
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
|
9天前
|
关系型数据库 MySQL 数据库
深入浅出MySQL索引优化:提升数据库性能的关键
在这个数据驱动的时代,数据库性能的优劣直接关系到应用的响应速度和用户体验。MySQL作为广泛使用的数据库之一,其索引优化是提升查询性能的关键。本文将带你一探MySQL索引的内部机制,分析索引的类型及其适用场景,并通过实际案例演示如何诊断和优化索引,以实现数据库性能的飞跃。

推荐镜像

更多