“使用Amazon Aurora后,九州通B2B整体数据库性能提升了5倍,TCO降低了 50%。借助Application Load Balancer实现版本更新的灰度发布,每月节省加班时间11人天以上,同时提高了业务效率。”
——九州通FBBC事业部技术副总经理 王晓海
九州通,一家年销售收入达千亿元的医药流通企业,如何驭云而行?
踏云而行,上万家药厂药店受益
若想了解九州通上云的故事,还是要先从了解其FBBC业务开始。
作为国内领先的医药流通企业,九州通秉持“技术让服务更卓越”的理念,在技术与服务提升上做了许多尝试。其中FBBC业务就是九州通在医药+互联网大健康产业链的创新典范。“F”代表上游药品生产企业,第一个“B”代表九州通,第二个“B”代表终端药店和诊所,“C”则代表消费者。
九州通电商业务平台技术负责人王晓海介绍说, FBBC旨在搭建连接药厂/供应商、终端客户、消费者的F2B2B2C平台,实现产品向更广泛终端的快速分销。
通过B2B医药平台以及“智药通”APP平台,九州通有效整合与管理医药资源,实现惠及药品生产企业、九州通、终端药店和诊所以及消费者四方的完善体系,为医药健康产业提供高性价比的服务。
目前,已有7000多家药厂、70000多名业务员通过九州通的“智药通”APP平台开展业务,随时查询药品价格、库存等信息,辅助业务决策。同时,九州通旗下的“健康998”是一个第三方B2C平台,为药店免费提供线上销售工具。在帮助药店获取更高经济效益的同时,吸引其更多地通过九州通平台采购。
“门店通”是专门给药店使用的后台,2019年入驻的药店达到8000家,覆盖全国省会和核心城市。“九州通网”则是整体支撑线上B2B业务的“大后台”,提供搜索、下单、在线支付、后台运营管理等功能。
目前,包括“智药通”、“健康998”、“门店通”、“九州通网”等在内的所有核心业务都运行在AWS平台之上。九州通使用的AWS云服务包括Amazon Elastic Compute Cloud (Amazon EC2)、Amazon Simple Storage Service (S3)、Amazon VPC、Amazon Aurora、AWS Lambda、Amazon EMR、Amazon ElastiCache、Application Load Balancer (ALB)、Amazon CloudWatch等。
AWS云是最适合的选择
“通过多方对比测试,从运维的便捷性、工具的创新性等角度综合考虑,我们最终选择了AWS云。”九州通FBBC事业部技术副总经理王晓海表示,“AWS 卓越的技术、严谨而专业的支持服务令人印象深刻。”
1
Amazon Aurora:数据库就是要高效
在所使用的AWS 服务中,让九州通印象深刻的是Aurora。九州通B2B系统的业务特点是读多写少,读写比例在8:2到7:3之间,并且有一定的波动性。受促销活动、工作时间及其他因素的影响,经常会出现波峰波谷落差较大的情况。(如下图所示)
九州通数据库访问流量示意图
采用Aurora,九州通轻松实现了数据库的读写分离及按需扩展。使用Aurora数据库服务,单个Aurora集群可以支持多达15个只读节点,并且支持在线自动扩展与收缩。九州通日常使用一主一从两个Aurora数据库节点来应对常规访问流量(如上图中蓝色横线所示),并且设定了从节点(只读节点)的横向伸缩策略。当服务器CPU使用率或连接数等指标大于设定的监控阈值时,Aurora会自行逐步增加一个或多个只读节点,及时满足高峰访问流量的需要;高峰期过后,系统又可以按照设定的策略将数据库节点的数量自动缩回到两个,从而减少了资源的占用和成本节省。
如果采用自建 MySQL数据库的方式,因其横向扩展不灵活,DBA(数据库管理员)需要预先配置足够数量的数据库服务器资源,以便应对可能到来的访问高峰(如上图中红色横线所示),当访问高峰过后,部分服务器资源就处于空闲状态,这样既浪费了资源,又增加了成本。
自建MySQL的主库与从库之间的数据复制延时经常会超过1秒,这样一来就不能把所有的读操作都放在从库上,只能把一些报表类的查询、对时间要求不敏感的查询放在从库上执行,导致主库压力一直居高不下,读写分离效果不好。使用Aurora 后,主从节点之间的数据延时基本保持在20毫秒左右,就可以把更多的查询操作放在从库执行,有效降低了主库的工作负载。
数据库的持久性、可用性、安全性、易用性等方面也是九州通非常关注的地方。Aurora跨3个可用区复制6份数据、跨可用区部署数据库实例、自动故障转移、自动备份和时间点恢复等特性,深受九州通技术团队的欢迎。使用Aurora后,九州通B2B整体数据库性能提升了5倍,TCO降低了50%。
2
ALB:省钱省时间
借助ALB,九州通实现了业务系统版本更新的灰度发布。发布时,启动一个生产环境实例,将新代码和流量切过去,然后把老版本的虚拟机停掉,就可以完成一次新版本的发布。
王晓海介绍,过去每次新版本发布,团队都要从晚上8点开始做准备,等到午夜 12点左右,避开波峰上线。现在,灰度发布可以做到随时发布,再也不用为此加班。九州通的众多系统,一个月内大大小小的发布多达100余次,通过灰度发布,大大节省了团队成员的时间和精力。
3
Lambda:原来这就是无服务器计算
无服务器计算是未来的发展趋势。通过Lambda无服务器服务,九州通深入体会了新一代云上应用的构建方式。九州通使用Lambda构建了一个应用,自动运行脚本对中间件和应用做检查,找出那些频繁调用接口的代码,验证并保障系统的稳定性。使用Lambda无服务器服务,只需要在每次检查时付费,因此既不需要花费精力多管理一台服务器,同时还节省了服务器空闲时间的开支。
王晓海表示,AWS Lambda方便易用,对用户非常友好。
九州通主要使用了由西云数据运营的AWS 中国(宁夏)区域。
九州通使用AWS云获得的主要收益
第一,节省成本。使用Aurora数据库后,九州通B2B整体数据库性能提升了5倍,TCO降低了50%,实现了跨可用区部署、负载均衡/自动故障转移、精细监控/按需自动伸缩等功能。
第二,提高了效率。以新版本发布为例,每月100多个新版本发布,可以随时进行,再也不用每次加班五六个小时。每月减少加班时间11人天以上,大大提高了工作效率。
第三,AWS可靠稳定,为业务运行提供了坚实的保障。
第四,AWS的支持服务非常及时、到位。在原型构建、日常随访、架构重构与优化等方面,让九州通能够不断深化新技术、新服务的应用,提高应用水平。
王晓海表示:“AWS在工具和基础架构方面能提供强大的支持,数据仓库和深度学习框架等是下一步应用的方向。未来,九州通将基于AWS进一步扩展大数据和AI应用,例如客户画像、需求预测、智能推荐等。”
九州通
九州通医药集团股份有限公司(以下简称“九州通”)是一家以西药、中药、器械为主要经营产品,以医疗机构、批发企业、零售药店为主要客户对象,并为客户提供信息、物流等各项增值服务的大型企业集团,2019年销售收入预计突破 1000 亿元。公司是中国医药商业领域具有全国性网络的少数几家企业之一,连续多年位居中国医药商业企业前列,领跑中国民营医药商业企业。其中,线上B2B业务目前年收入约100亿元,每年以30%以上的速度增长,是九州通重要的业务增长点。
更多内容请点击“阅读原文”
长按二维码识别关注云报
云报
小编微信:Taogebj
联系邮箱:[email protected]