IT系统
去年11月11日,也就是我们俗称的“双十一”当天,淘宝集市、淘宝商城天猫联手创造了交易额达191亿的销售神话。然而,即便是这种神话也还不足以成为留传至今的佳话,其中最为重要的原因就是支撑电子商务的后台IT系统在“双十一 ”抢购热潮中出现了不少弊端。
一般来说,电子商务网站对于IT系统的依赖程度不亚于其他任何系统部门。电子商务网站的IT系统包括电子商务订单在线交易、后台管理,供应链管理、物流管理和产品数据库、客服系统等等,都需要有一个高可靠性、高性能并具有良好弹性扩展的IT系统的良好支撑。
而相比日常的电子商务交易,在“双十一”这种特殊的购物期间,IT系统往往会面临来自不可预测的海量用户因高并发访问带来的巨大考验。不可预知、突发性的高并发访问往往容易导致服务器过载、在线交易系统反应迟滞甚至瘫痪。
各类“双十一”促销海报
双十一购物狂欢,但背后的IT系统其实往往扮演着更为重要的作用(相比平日)。在高密度,高效率的电子商务运营中,没有IT系统几乎寸步难行。这几年电子商务发展迅猛,为了支撑电商的迅猛发展,IT系统渗入到业务的细节越来越深,从行业情报分析,引流广告投放,消费者接待,促销规则设定,订单处理,发货速度,会员营销,甚至员工的绩效考核,都依赖于系统的支撑。更重要的是这些系统内数据关联融通,会给企业更多的数据挖掘的机会,从而指导业务,进行决策分析。
我们将这种基于电商后端的IT系统,可以将它们抽象为整个电商的基础架构。这套基础架构涵盖软硬件和涉及到雇员、客户和商家的电商服务相关数据内容。下面,我们首先为大家介绍电商基础架构下,其主要衡量的指标和关键要素。
2电商基础架构衡量指标和要素
大家都知道,电子商务和传统商务最大的区别就是“电子化”,而这种电子化的背后,其实主要依赖于当前的IT技术和产品。这几年电商发展迅猛,IT系统渗透到电商各分支业务越来越细致、深入。从广告投放、促销规则、产品陈列、订单处理、会员管理甚至员工绩效考核、客服系统等等,都与IT有着紧密的关系。对于电商来说,作为支撑其IT架构的核心之一——服务器,在支撑这些业务系统方面有什么不同?在涉及在线交易的哪些环节,对服务器的考验最为苛刻?
在企业上网应用及实施电子商务的过程中,服务器作为网络的节点,存储、处理网络上80%的数据、信息,因此也被称为网络的灵魂。网络终端设备如家庭、企业中的微机上网,获取资讯,与外界沟通、娱乐等,必须经过服务器,因此也可以说是服务器在“组织”和“领导”这些设备。而在电商领域,其基础架构中的服务器不仅要有传统服务器在IT系统中所具有的高可靠性、高可用性、高扩展性和可维护性以外,还需要特别注重电商平台承载的网络流量、负载量、灵活性以及其他相关功能。鉴于高可靠性、高可用性、高可维护性、高扩展,我们在相关的文章中提及多次,这里我们主要为大家介绍更能体现电商应用特点的流量、负载、灵活性等要素。
电商IT架构
流量
也就是指用户网站的访问数量(即一个月内允许用户网站被调用数据的总和),和服务器托管不同的,电商往往都有自己独立的数据中心。这种情况下,其对于“双十一”期间的高并发访问请求,往往要能最大化地呈现其潜能。对此,采用高性能服务器和更大网络带宽,并根据访问人数和网络流量的监控,来实现实时、动态的访问请求优化,这方面往往对服务器的性能、网络带宽、编程语言和数据库的效率有着较高要求。
负载
它的重要性要远远高于空间容量,虽然虚拟主机业务应用的前提是建立在多个用户共同分享一台独立服务器资源的基础上实现的,但是商家用户在进驻电商平台时候,其很多产品数据、销售数据都是寄存在电商服务器平台上的,与其他商家共享服务器资源。但如果共享过多的话,会容易引起服务器超量负载,导致服务器的稳定性变差,进而影响到服务器的整体性能。对于此类负载量过载的问题,通常可以采用负载均衡的方案来实现。
比如一种廉价有效透明的方法以扩展现有网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的来实现的,在DNS中为多个地址配置同一个名字,因而查询这个名字的客户机将得到其中一个地址,从而使得不同的客户访问不同的服务器,达到负载均衡的目的。关于更多负载均衡的相关话题,可以参考《灵活调配更高效 析服务器负载均衡技术》
灵活性
灵活性分两方面,一方面是指现有的服务器平台能否支撑不同的操作系统平台,尤其是在不额外增加预算开支的情况下,是否可以满足不同工作负载对于系统平台切换、容量递增的需求;另一方面是指现有的服务器平台能否很好地兼容、支持平台的平滑升级。对于目前应用较为广泛的x86架构来说,其灵活性整体会比其他架构的服务器灵活得多。
相关功能
相关功能主要是由于电商在后续发展过程中,开发出的新的模块功能,会对底层的基础设施提出更高的要求,有些要求会特别具有针对性。比如电商开发一套基于Hadoop大数据的数据挖掘和用户行为分析系统,该系统会结合现有的用户数据库和交易数据进行海量、深入的数据查询、汇总、统计、分析,并基于某种标量来对这些数据进行分类并呈现可视化的结果。这些都会对数据库系统尤其是服务器节点和存储节点之间的I/O提出更高要求,这些要求相比原有的服务器承载的业务量,会凸显出对IO、网络带宽的特殊需求。
前面我们介绍了,电商服务器需要特别注重稳定性、性能、扩展性和可维护性性,同时还需要能满足对于负载、灵活部署和行业属性的需求。因此,接下来我们将探讨电商服务器的部署和设计的一些原则和事项。
电商服务器通常会根据子系统而对其进行分类设计。通常来说,电商服务器包括有下载服务器、Web服务器、数据库服务器、素材处理服务器、缓存服务器等。WEB服务器集群系统与下载服务器系统分离,可以利用集群的形式解决单台服务器处理能力有限的问题,随着机器数量的增加,群集系统的WEB处理能力可以线性增长。同时具有解决单点故障的容灾能力,某台服务器的故障不会影响系统的运行,增加了系统的高可用性。
电商平台功能
对于数据库服务器来说,可以采用双机热备的方案来解决数据库服务器的性能和高可用性方面的问题。条件成熟的可以考虑配置光纤存储设备和全闪存阵列解决系统的磁盘I/O性能问题,并以磁盘阵列的方式进行对数据的保护。当然了,为了确保各大服务器之间的高可用性和高数据传输,可对服务器网络端口和交换机网络设备同时进行冗余设计,并引入专线网络带宽,满足各大服务器和存储、服务器、交换机等设备之间网络连接的需要。
电商平台常见应用
软件层面,尤其是在服务器操作系统方面,目前主流的还是基于Linux的各大发行版,以及Windows Server 2012等系统。如果是基于非x86的服务器(比如IBM的RISC服务器Power系列产品),还可以选择基于Unix变种的各大类型操作系统。
电商架构中的各类开发开放接口
值得关注的是,目前的SDX趋势越来越明显,对于这种具有周期性变化的“双十一”促销,其带来的海量用户和对电商系统的压力考验,与其事先对硬件、软件架构分层部署和设计,不如将现有的IT基础设施以分布式计算、融合价格、工作负载为导向的方式来设计。目前来说,可探讨的一般考虑软件定义网络、存储、数据中心等形式,进而通过软件定义和优化的方式来呈现对于高并发访问、在线订单处理等一系列的业务应用。
IT系统的更多相关文章
- 2012高校GIS论坛
江苏省会议中心 南京·钟山宾馆(2012年4月21-22日) 以"突破与提升"为主题的"2012高校GIS论坛"将于4月在南京举行,由南京大学和工程中心共同承办 ...
- 在Openfire上弄一个简单的推送系统
推送系统 说是推送系统有点大,其实就是一个消息广播功能吧.作用其实也就是由服务端接收到消息然后推送到订阅的客户端. 思路 对于推送最关键的是服务端向客户端发送数据,客户端向服务端订阅自己想要的消息.这 ...
- 数据库优化案例——————某市中心医院HIS系统
记得在自己学习数据库知识的时候特别喜欢看案例,因为优化的手段是容易掌握的,但是整体的优化思想是很难学会的.这也是为什么自己特别喜欢看案例,今天也开始分享自己做的优化案例. 最近一直很忙,博客产出也少的 ...
- ABP文档 - 通知系统
文档目录 本节内容: 简介 发送模式 通知类型 通知数据 通知重要性 关于通知持久化 订阅通知 发布通知 用户通知管理器 实时通知 客户端 通知存储 通知定义 简介 通知用来告知用户系统里特定的事件发 ...
- win7安装时,避免产生100m系统保留分区的办法
在通过光盘或者U盘安装Win7操作系统时,在对新硬盘进行分区时,会自动产生100m的系统保留分区.对于有洁癖的人来说,这个不可见又删不掉的分区是个苦恼.下面介绍通过diskpart消灭保留分区的办法: ...
- iOS---iOS10适配iOS当前所有系统的远程推送
一.iOS推送通知简介 众所周知苹果的推送通知从iOS3开始出现, 每一年都会更新一些新的用法. 譬如iOS7出现的Silent remote notifications(远程静默推送), iOS8出 ...
- (系统架构)标准Web系统的架构分层
标准Web系统的架构分层 1.架构体系分层图 在上图中我们描述了Web系统架构中的组成部分.并且给出了每一层常用的技术组件/服务实现.需要注意以下几点: 系统架构是灵活的,根据需求的不同,不一定每一层 ...
- Hyper-V 激活Windows系统重启后黑屏的解决方法 + 激活方法
异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 服务器相关的知识点:http://www.cnblogs.com/dunitia ...
- Beanstalkd一个高性能分布式内存队列系统
高性能离不开异步,异步离不开队列,内部是Producer-Consumer模型的原理. 设计中的核心概念: job:一个需要异步处理的任务,是beanstalkd中得基本单元,需要放在一个tube中: ...
- [APUE]系统数据文件与信息
一.口令文件 UNIX口令文件包含下表中的各个字段,这些字段包含在 由于历史原因,口令文件是/bin/passwd,而且是一个文本文件,每一行都包括了上表中的七个字段,字段之间用":&quo ...
随机推荐
- Mongodb是用Sum 和Where条件
Sum 按照条件求和 db.aa.aggregate([ { $group: { _id: null, total: { $sum: "$value" } } }, //$valu ...
- 如何使用ODBC搭配dsn链接数据库
{ OdbcConnection cn; OdbcCommand cmd; string MyString; MyString="Select * from Customers"; ...
- C++生成斐波拉其数列
该方法作为一种演示功能左右,运行较慢. #include <iostream> using namespace std; class Fibonacci{ public: int a, b ...
- create-react-app的使用及原理分析
create-react-app 是一个全局的命令行工具用来创建一个新的项目 react-scripts 是一个生成的项目所需要的开发依赖 一般我们开始创建react web应用程序的时候,要自己通过 ...
- javascript基础拾遗(二)
1.对象定义 定义属性 var language = { name:'javascript', score:9.0 }; console.log(language.name) console.log( ...
- 【多线程】死锁与Java栈跟踪工具
今天面试有一道题,写一个死锁的程序,自己也是短路了,没写出来,回来写下. 死锁常见的情况是A线程持有a锁.阻塞于b锁,B线程持有b锁,阻塞于a锁,形成一个循环阻塞的状态. import java.ut ...
- DIOCP3 - 关于接收数据
DIOCP3支持两种方式接收数据, 第一种是原始的流数据, 最通用的一种方式,客户端发啥,这边就收到啥.需要自己处理粘包问题. 可以在TCilentContext或者TIocpTcpServer的 ...
- vue 的事件冒泡
一.事件冒泡 方法一.使用event.cancelBubble = true来组织冒泡 <div @click="show2()"> <input type=&q ...
- ostream_iterator的可能实现
当我们要输出一个容器的内容时,可以使用std::copy函数,如下: vector <string> myvector; std::copy(myvector.begin(), myvec ...
- LeetCode: Construct Binary Tree from Preorder and Inorder Traversal 解题报告
Construct Binary Tree from Preorder and Inorder Traversal Given preorder and inorder traversal of a ...