[关闭]
@yeahugo 2018-03-15T06:51:04.000000Z 字数 3952 阅读 1475

AIY商城技术方案文档

技术架构


1 概述

1.1 产品概述

AIY商城是一个专门售卖AIY开发套件的线上商城系统,提供商城前台商品展示、下单和后台商品和订单管理等功能。该系统技术方案要求架构容易扩展、服务稳定、数据安全。

1.2 技术方案概述

AIY商城采用开源ECShop商城系统来进行二次开发,并且部署在阿里云平台上。

2 部署方案

2.1 架构图

AIY商城基于租用IDC机房服务器,部署架构如下:

aiy商城部署图.png-31.4kB

2.2 基于阿里云架构图

阿里云等云计算服务可以提供负载均衡、云服务器、云数据库等产品,相比使用IDC机房服务器,可以更好地对每个模块进行按需购买、动态扩展。下面是在阿里云提供的产品基础上的部署架构图:

阿里云部署架构 (4).png-55.9kB

整个商城系统包括下面几部分:

  1. 前端访问
    包括web浏览器、移动端H5页面、移动端App等提供给用户各个客户端。
  2. 计算资源
    负载均衡服务可以对多台商城应用服务器进行流量负载均衡。商城ECS服务可以根据业务需要动态调整服务器数量和计算能力。
  3. 静态文件资源
    web端和客户端的图片等静态文件资源直接访问OSS服务,实现动静分离,并且通过就近CDN节点加快访问速度。
  4. 数据存储资源
    数据存储包括Memcache数据库提供缓存数据读写,提升访问性能。Mysql数据库提供数据存储和访问,并提供高可用数据备份。

用户请求的过程如下:

  1. 用户通过终端提交HTTPS请求,SLB(负载均衡服务)把请求转发到某个云服务器节点。
  2. 商城应用服务向后端RDS(Mysql数据库)集群请求结构化数据;
  3. 商城应用服务向客户端返回图片等资源文件url地址,客户端直接向就近的CDN节点请求图片等文件数据;
  4. 商城应用服务向客户端返回动态数据请求结果。

2.3 ECS服务器部署

按照每天访问100万pv预估,AIY商店用提供商城服务的ECS至少要2~3台Server。

每台ECS服务器部署下面的服务:

另外在服务高峰期2~3台服务器可能不足以支撑高并发量,可以使用阿里云提供的ESS服务。
在高峰期自动增加ECS实例,在业务回落时自动减少ECS实例。

2.4 RDS服务部署

AIY商店按照预估需要满足高峰期连接数为3000,QPS大概在10000,需要购买4核16G的RDS产品来作为数据存储。
AIY商店选用最高安全级别的金融版RDS,采用一主两备的三节点架构,通过日志多副本同步复制,确保数据的强一致性,可提供金融级的数据可靠性和跨机房容灾能力。金融版实例的拓扑图如下所示:

三节点.png-29.3kB

2.5 数据库缓存

为了减少Mysql的访问压力,AIY商店在Mysql之上加了一个Memcache的数据库作为缓存。同样在阿里云上有云数据库Memcache版可以使用。对比自建Memcache数据库,使用云端数据库有这些好处:

  1. 分布式集群架构,性能无限扩展。单个节点均采用双机热备高可用架构。
  2. 采用SASL鉴权,VPC虚拟网络,支持IP白名单。
  3. 弹性扩容,按需升级。突破海量数据性能瓶颈。

2.6 OSS+CDN资源部署

OSS负责提供图片、视频等静态资源文件存储服务。使用OSS服务可以非常方便地进行文件存储,当OSS的处理能力遭遇瓶颈,OSS系统内部会自动扩展并保持对应用层透明。
另外由于静态文件用户访问量大,且分布在全国各地,可以使用阿里云的CDN服务来通过海量的就近节点来加速访问。
利用CDN和OSS实现动静分离,灵活的架构可以支持海量用户访问。产品架构如下图所示:
practice-cdn-2.jpg-45.1kB

3 安全策略

3.1 电商平台会面临的安全问题

作为一个b2c多终端的商城,AIY 商城会面临下面的安全问题:

  1. 恶意登录
  2. DDOS攻击
  3. 0元下单
  4. 流量劫持
  5. 信息泄露

3.2 安全解决方案架构

阿里云安全部署架构 (1).png-89.4kB

基于商城所遇到的常见安全问题,AIY商城采用了下面的安全方案:

安全方案 基本作用
DDOS高防IP 防止服务器遭受大量DDos攻击后导致服务不可用,提供应用层抗DDos攻击的能力
Web应用防火墙 对网站业务流量进行恶意特征识别及防护,讲正常、安全流量回源到服务器。提供Web应用攻击防护、缓解恶意CC攻击,解决防刷、防爬等业务安全风险,HTTPS优化
安骑士 主机安全服务,提供主机漏洞检测和修复,高危配置基线检查,黑客入侵检测
态势感知 收集企业原始日志和网络空间威胁情报,利用机器学习还原已发生的攻击,并预测未发生的攻击。提供基础威胁检测,SQL注入、XSS应用漏洞扫描
数据风控 数据风控,专业、实时对抗垃圾注册、刷库撞库、活动作弊等严重威胁互联网业务安全的风险,同时保证正常用户体验顺畅无影响。

方案主要说明:

  1. 使用DDoS高防IP防DDoS攻击及CC攻击,保障业务可用性,尤其在大促活动期间。
  2. 应用层使用WAF,主机层使用安骑士,加上基于大数据分析的态势感知,共同构建纵深的入侵防护体系, 具备防御和感知能力。
  3. 使用数据风控服务防止“羊毛党”、“黄牛党”恶意领用、刷单等欺诈行为,提高营销推广活动效果。

DDOS高仿IP、Web应用防火墙、数据风控、安骑士、态势感知等均基于阿里云提供的安全服务。

3.3 解决方案特点与优势

  1. 业务防护
    使用阿里云提供的业内领先的电商风控引擎,解决交易关键环节存在的欺诈威胁。
  2. 纵深防御
    从网络层到数据层,均部署防护和监测体系,提供全面安全保障能力。
  3. 联动防护
    单点攻击发现,秒级同步,联动触发各层防护体系进行拦截防御。
  4. 安全大数据
    基于阿里云的云端大数据攻击模型建立,可以应对新型攻击和0day威胁,异常情况实时告警。
  5. 弹性可扩展
    支持弹性按天付费,安全防御能力自动弹性扩容,满足业务防护需求。
  6. 实时防御
    云防御系统底层由阿里云专业安全团队运营,及时更新最新防护策略、规则误报低。

4 性能评估

4.1 ECShop性能分析

Ecshop和Magento对比

商城 客户并发数 请求数 错误数 平均响应时间 平均吞吐率
Ecshop 200 2844 0 4.354 47.40
Magento 200 1039 0 8.773 17.20

Ecshop详细分析

使用阿里云4核CPU、8G内存的服务器(Intel Xeon E5-2682 v4 处理器,2.5GHz主频),同样采用CentOS操作系统、Nginx作为web服务器,测试结果如下:

商城 客户并发数 请求数 错误数 平均响应时间 平均吞吐率
Ecshop 200 4730 0 2.475 78.77
Ecshop 300 5402 0 3.410 85.746

使用8核、16G服务器(Intel Xeon E5-2682 v4 处理器,2.5GHz主频)进行测试,测试结果如下:

商城 客户并发数 请求数 错误数 平均响应时间 平均吞吐率
Ecshop 100 5042 0 0.695 142.541
Ecshop 200 8176 0 1.186 146.341
Ecshop 250 9365 0 1.621 151.048
Ecshop 300 9217 0 1.964 151.09
Ecshop 350 9218 0 2.285 151.115

Screen Shot 2018-03-14 at 11.18.38 AM.png-86.7kB

4.2 商城系统机器配置预估

预估AIY商城每天PV达到100万。需要系统平均QPS=11.57(QPS)。

但实际上每天可能会有一段时间集中大部分访问量。假设每天80%的访问量集中在20%的时间,计算峰值QPS的计算公式为:

( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS)

计算每天100万 PV的系统,需要支撑峰值QPS:

( 1000000 * 0.8 ) / (86400 * 0.2 ) = 46.33 (QPS)

按照正常业务量估算,面向AIY商店部署一台服务器足以支撑商城业务。
由于考虑系统稳定性,采用2~3台服务器作为aiy商店的web服务器,避免一台服务器宕机不能访问。
把商店后台管理、对接谷歌文档等其他服务,放在另外的服务器进行部署。总体需要3~4台服务器为商城系统提供服务。

预估商城高峰期客户并发量将达到1000,以每台服务器8核、16G支撑250个并发量计算,至少需要4~5台服务器。
使用阿里云提供的ESS服务可以在高峰期自动扩展服务器数量,而在非峰值情况使用2~3台服务器,避免对服务器资源造成浪费。

假设商城前期会推出秒杀、抢购等营销活动,同一时间在线人数达到1万以上级别。按照现有Ecshop系统架构支撑此类业务比较困难。
对此类业务,采用的方案需要对该系统部分业务进行分拆,例如分拆成单独的抢购系统。采用能支撑高并发的web开发技术(包括语言、框架、数据库等)来对系统进行优化和改造。

5 维护与应急

5.1 业务量扩张

根据后期业务量的扩张,原有的架构不足以支撑更多并发量和海量数据存储。需要对原有架构作以下修改:

5.2 应急方案

有下面几个应急方案保证服务稳定可用:

  1. 负载均衡
    使用多台ECS实例负载均衡,一台ECS宕机时,例外ECS实例可以持续提供业务访问。
  2. 数据安全
    基于阿里云RDS提供的一个主节点、两个备份节点。备份节点同时保证数据安全。
  3. 运维短信预警
    当系统服务器、数据库等出现负载过高情况,利用阿里云服务监控功能发送短信到运维人员,进行及时处理。
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注