低调的酒仙网技术团队
在过去,酒仙网的技术团队在整个DevOps圈中都非常低调,按他们自己的话说,秉承了山西晋商文化“朴实真诚,与人为善”的理念,作为技术人还是要务实、低调,首要工作是踏踏实实做好技术能力,做好酒类垂直电商,体现产业价值的想法。并且,虽然在过去的三、四年中酒仙网的发展呈现非常快速的增长,但其实底层架构和创业公司区别不大,追求更多的是效率和增速,没有在大数据的处理,高可用性,稳定性上花特别多的精力。
随着形势的变化,酒仙网逐步走向了酒类独角兽公司。酒仙网CTO曾称,作为靠零售额去估值的公司,虽然PE的指标很低,但是作为技术人也希望能从技术的含量上给公司的估值增加份量,希望在酒仙现在的整个体系上增加科技和互联网的基因,吸引更多的人才加入。并且,随着网站流量的不断增长,酒仙也开始在技术的选型以及一些小的技术领域进行了新的尝试和探索。后续的话也希望酒仙网在整个互联网或者是电商领域有更多的声音,无论是开源的社区还是整个互联网技术发展上,能够贡献酒仙技术人员自己的力量。
另类的垂直电商
酒仙网整体架构
酒类电商具有周期性、季节性的特点。酒仙网的UV量级达几十万,节日气氛非常明显,不像一般的电商,比如京东在618、双十一的时候,流量只会提升6、7倍。在节日的时候,比如中秋、双十一、春节,即使是任何营销活动都不做并且还比平时提价的话,网站流量都是平时的十几倍。一般情况下,酒仙网的双十一会比平时的流量翻到100倍以上,对技术的考验巨大,这就决定了翻100倍流量与3、5倍的流量在技术的玩法上完全不同。
这种情况与酒类电商化的特点息息相关。酒类的线下市场达万亿级,但是网上的电商其实才有几百亿的规模。那么其实就有8、9000亿的市场规模都在线下。这就说明,如果1%的人想从线下转到线上的话,那么全国整个电商平台就增加了1倍,这个空间真的是想象力非常大。所以酒仙网也在模式上做着新的探索,如何能够将线下可开发的良田转到线上来。
高并发大流量下有哪些技术挑战?
1、如何实现上百倍流量峰值下的系统稳定和可控性的设计与落地,保证服务器资源的最大化利用?比如全站做虚拟还是做什么。100多倍的流量扛下来的话,服务器肯定是过剩的,所以在探讨混合云的理念就是为了应对这个问题。一般来说,在绝大多数的电商公司里面,混合云的理念还是比较少的。但是对于酒仙网现在来讲,必须要迈出这一步。
2、对于酒仙网来讲,它是一个业务模式比较复杂的企业。酒仙在后端,存在着像仓储体系、供应链体系,这就要打通所有的2C端2B端,打通上下游,整个供应链、销售预测体系、仓储职能配货,整个的数据运营体系。比如同一款酒,分散在不同的销售渠道上,那么定价多少、销售情况、进货量如何、每个仓怎么去分布都要考虑。同时,酒都有地域性和季节性,如何进行智能的分配,这个对于酒仙网来说挑战极大。
3、酒仙网对用户体验是非常关注的。在酒仙网买过酒都知道它的包装精美,成本之高可想而知。这样核算下来,包装的费用比例也非常高,大概成本占到7-8个点。这在整个零售类里都是不可想象的。无论是从泡沫、胶带、气泡、纸盒都选的最好的。另一方面讲,落实到技术上的话,酒仙网从页面打开速度、系统稳定性、可用性,CDN的质量以及现在所面临的一些信息泄漏、流量劫持等问题,对此从公司角度看非常重视。
另类的垂直电商如何应对挑战?
1、“五分级、四服务”支撑系统架构
酒仙网的系统结构是面向SOA的体系结构,使用该体系的目的是为了满足业务发展的需要,保证能够进行拓展。整体框架以“缓存”、“索引”、“消息”、“日志”四大服务为支撑,且采用了多层分级服务体系结构。
(1)Web应用和APP应用,主要面向消费者层面,即为展现层,可根据业务和功能的划分成各个不同的业务子系统。这在电商行业网站里面非常特殊,像这一层,在酒仙网就包括ERP、面对消费者的官网和移动网站。官网方面,酒仙网会分成各个子业务模块进行拓展。一般是独立部署,独立部署之后有效的增加性能拓展。这层是静态文件,酒仙网都是独立部署的。一般上CDN的时候,动态文件就不便上CDN的,静态文件是常年上CDN的,动静分层的管理。
(2)缓存。酒仙网有一级缓存和二级缓存。一级缓存,主要减少展现层和服务层的数据交互,这样酒仙网就有效增加传输效率,同时也减少了服务层的计算压力。每一个缓存的层面都加了独立的开关,以便于调试和纠错。
(3)服务层,服务层也是根据各个不同的功能和业务子系统进行切分。一般业务子系统间是不存在相互调用的,但是酒仙网的子功能之间是会相互调用的,并且进行交叉调用的形式。服务层是直接跟Web应用展现层进行数据交互,这层不会和数据库打交道。服务层也是根据各个不同的子系统和业务划分之后进行独立部署,这样有利于压力的抗衡。在拓展层面会更加便捷。
(4)二级缓存。上一级已经有一级缓存,下面这级缓存对web接口提供数据交互,web接口不经过一级缓存,直接走服务层往外进行数据传输,在这里为了减少数据库的压力。二级缓存跟一级缓存性质上是一样的,只不过在过程当中起的作用是不一样的。
(5)数据库。酒仙网根据不同的功能,切分成不同的物理基因进行部署。数据库是采取主从分离的形式,一主多从进行数据同步来进行交互的。因为切分成不同的物理基因,酒仙网就形成了多主多从的协定。
2、如何处理复杂数据流向问题?
电商行业在正常情况下都会面临一个问题,即大促期间的压力非常大。互联网的环境很复杂,订单量、数据流量不可预估,甚至存在一些带有恶意行为的竞争对手。这就要求了技术人员在应对大促都要做非常周全的准备工作,严阵以待。对此,酒仙网一般都是这么做的:
(1)人员上,每次大促前都会成立不少于七八个人的数据指挥小组,每个小组还要抽出专门的对接人员进行业务对接。此外,酒仙网还会准备数据沙盘,灵活操控数据动态。
(2)技术上,每次大促都会出现一些新的促销形式。比如抽奖活动,发红包,每次出现新的形式后,一些老的形式都会进行业务梳理,专门组织梳理业务流程的工作。梳理完后,都会统一的做性能测试。但在每次的大促销前,都会组织大型的性能测试,分内外两个部分。对内包括对每一个固定模块进行性能测试,也会对综合业务模块进行测试。做完内部的性能测试之后,会邀请第三方机构,比如听云Network对酒仙网大促前的性能进行压力测试,去了解网站性能以及网络节点上的网络请求效果。听云Network的压力测试可以从不同节点、多个地域、同一时间并发请求,在真实性及效果方面有着不俗表现。
听云Network——压力测试
听云Network压力测试可在指定时间调度全国各地的监测节点对目标网站/应用发起监测,并周期性地增加同时并发量,通过确定一个系统的瓶颈或者不可用的性能点,来获得系统能提供的最大服务级别的测试;
在压力测试期间记录下源站服务器的CPU/内存值以及网络流量等关键数据,并加以适当分析;
听云Network的压力测试服务可提供页面、视频流媒体及事务流程压力测试。
一般酒仙网对流量都进行一些预估,比如双十一,酒仙网的性能预估是2000万的UA,酒仙网就会朝着1.5-2倍的方向去考虑,系统必须要达到这个要求。在压力测试的过程中,还会发现一些新问题,比如有些业务流程在代码层面不是特别流畅,这时就会有针对性的做瓶颈代码的更改。万一这个业务一时得不到解决,比如说有时时间比较仓促,或者发生其他情况,这时就只能丢车保帅,保留一些业务性能影响大的东西,对影响不是太大的功能进行屏蔽。
(3)面对成百上千倍的流量峰值,如果采用增加服务器的方式会造成资源的浪费,所以酒仙网采取了混合云的方式,进行弹性的部署。
(4)风险评估,主要包括两面,一是运维层面,二是程序层面。程序存在安全性能问题时,酒仙网也会拿出相应的风险评估预案,如果真存在问题的话便会关闭一部分的业务。同时会提前把预案想好,当然风险评估与网络优化也是密不可分的。
3、在性能优化上,酒仙网怎么做?
(1)在网络优化方面,负载均衡在整个的过程当中,特别是订单体系的运行过程中都会有的,但是在大促的时候,酒仙网会临时增加负载均衡量,之前服务器没有那么多,酒仙网应对大促会临时进行补充——增加CDN。在平时酒仙网酒仙网都会有CDN,但是不会那么多,平时主要是静态内容,比如说静态专题,或者CSGS的图片会采用CDN,动态的内容很少用到这个功能。但是在大促期间,酒仙网会大量接入CDN,根据预估量的大小,启用对应的CDN。同时为了能够保证CDN的 加速效果能够应对大促峰值,酒仙网还采用了听云Network对CDN的服务质量进行评估。
听云Network——CDN分发策略
CDN节点的分布策略对提高网站性能至关重要。加速效果的除了节点数量外,最重要是节点的科学分布和配置;
听云Network会对CDN服务提供商的服务质量进行监测,通过监测数据科学分析CDN节点分布的合理性,对CDN节点的策略进行调整。
(2)对数据库性能进行监测。无论哪家电商,只要在大促期间,性能及可用性都是最优先考虑的问题。首先酒仙网会采用听云Server对服务器进行实时监测,能够对服务器响应慢和不可用进行定位,查看慢应用追踪和Web应用过程功能,能够实时定位消耗资源最大的代码和语句,这样就能帮 助实时进行有针对性的调整和优化,并且可以快速定位问题时间,最快能到分钟级别。
另外,在发生高并发、服务器压力激增的情况时,平时运行正常的服务器异常概率大幅增加,日常可能的性能瓶颈点会被成倍放大,这就需要实时定位和解决性能瓶颈点,和提前进行预防改善。一般来说,传统日志收集方式耗时耗力,效果非常不好,酒仙网用了听云Server后,可以进行1分钟级定位能迅速有效发现瓶颈点。同时还结合了听云Network的压测功能,能够在服务器上线前提前发现到高压力下的瓶颈点,提前预防,避免由于高并发出现的服务器瓶颈。
由此,当高并发大流量进入时,如果说性能达不到,酒仙网会采取临时的解决方案,比如说上FIO卡,上负载硬盘,以及减缓数据库的压力,或者增加缓存量等。有一些关键性的业务,缓存时间比较短,有一些业务可能不用缓存。这个时候如果说预估超出系统承载量的话,这时候可增加缓存的使用,把时间延长。
(3)酒仙网的系统中有很多的机房,会在全国各地进行布点。同时,大促期间的互联网环境比较复杂,那么这就导致了它可能会出现的故障不确定。比如说双十一,各大电商都做电商,整个互联网的效率都滞后,那么这样在全国各地布的机房,可能便会出现数据延迟的问题。此时,酒仙网便会利用听云Network进行实时的监控。比如说酒仙网通过听云Network发现节点存在故障的话,那么便会立刻进行故障切换,临时的不使用这个节点。比如说有一些地方的CDN可能出现问题,有一些地方不会,酒仙网会把这个出现问题的机器替换,把有故障切换到另外一个机房去。一般大促前两天都会有人实时盯着整个过程的发展。
(4)大促期间会使用数据沙盘。每一次大促时都会有一个关于整个动态过程的数据,这个动态不完全是实时的,但是基本上是实时的。通过沙盘,酒仙网可以看到系统运作情况,这可为销售工作提供实时的应变,比如说哪个地方哪个酒卖的好,哪个地方的促销需要调整,酒仙网会实时监控数据沙盘实时调整战略。
4、其他想谈的
(1)谈到如何应对复杂的业务模式,酒仙网认为现在无论是底层架构,还是数据层面搭建着跨公司的大数据平台,比如仓库平台、运营管理平台、仓储平台、供应链体系,以及供应商管理、销售预测、库存分配等需求,都已经用大数据的方法逐步开始搭建了起来。酒仙网实施了以算法为指导的智能化的处理,比如每年1月份的时候茅台酒都是缺货的时候,但是如果之前没有做1月前的茅台储备的话,就很可能会造成3000-5000万的损失。所以酒仙网把大数据的仓储管理、销售预测、库存分配都抓了起来,进行了自行研发。类似于这样偏传统的业务,酒仙网并没有采用第三方,因为它的目标是成为一个千亿级的电商公司,所以无论是从业务的布局、人员的选择还是公司的设立都是按照那个标准去设想的,因此就要培养自己的技术力量,专门型人才,然后由这些人去支持酒仙网成为一个千亿级的公司。
(2)面对新技术,比如微服务上,酒仙网也一直在探讨,但还没有形成大范围。微服务或者SOA化,无论是什么样的电商公司,创业型的公司,还是目前酒仙网的规模,亦或者当当、京东,都是必须要走的。无论是从项目的管理、技术的管理还是运维部署的管理,面对这种快速增长的流量,不断的迭代变化的需求,以及几百几千的团队协作的分工上,都是必须要走服务化的过程的。其实酒仙网在最近的半年中,围绕电商业务的服务化,架构也在进行着调整,希望能在销售旺季来临之前,能够把卖场、购物体系的服务化能够有一个第一阶段的上线。对于Docker的排期部署,也是和酒仙网的混合云高相关的,所以在这方面花了很多精力去研究和探讨怎么去做快速部署和弹性部署。
申请创业报道,分享创业好点子。点击此处,共同探讨创业新机遇!