概述

Web应用是我们最常见的应用程序,用户只需要有浏览器便可以访问,不需要安装其他软件。Web应用分为静态网页和动态网页,静态页面通常用HTML或CSS来编写;动态网页还需要用到的技术有C,JAVA,PHP,XML,数据库,以及JS,ASP等脚本语言。 Web应用框架(Web application framework)是一种开发框架,用来支持动态网站、网络应用程序及网络服务的开发。其类型有基于请求的和基于组件的两种框架。 web框架可以分为基于请求的(request-based)和基于组件的(component-based)两大阵营。前者的代表有Struts和Spring MVC等,后者的成员则有JSF、Tapestry等等。具体技术在这里不做详述。 您将获得:
  1. OA web站点云架构
  2. 电商web站点云架构

OA WEB站点架构

应用场景

  • 企业OA平台
  • PV约1-10万
  • 具有高可用弹性
  • 数据备份恢复
  • 服务器安全
(注:不同行业的情况有差别,以上估算数值仅作为参考!)

企业诉求

通常OA系统的业务访问量不是很多,基本都是内部访问,对服务器的配置要求也不是非常高,但是仍旧需要考虑以下几点问题: 1) 系统的安全稳固,不能轻易的被攻击篡改; 2) 系统的业务要连续可靠,不能因为服务器和数据库的原因导致业务中断,影响业务运营; 3) 在保证系统安全的情况下,还需要满足用户正常访问的体验; 4) 对应用系统的定期备份。

云架构

标准 Web 云架构 - 图1

  1. 负载均衡服务消除单点故障,后端应用服务器使用两台云服务器,保证高并发时系统的健壮性。。
  2. 结构化数据通过云数据库存储,云数据库的主备架构,避免会核心数据的单点风险。
  3. 通过云安全产品安骑士和态势感知等组合可以保护web业务免受常见WEB攻击,提供服务器的入侵防护和安全管理的功能。
  4. 在小规模的电商企业中,由于成本等问题前期并不会考虑到同城或异地的灾备,因此我们推荐使用云计算的快照备份策略对数据进行定期的备份。

电商WEB站点架构

应用场景

  • 企业电商平台
  • PV约5-30万
  • 需要提高总体性能
  • 需要解决安全问题(WEB防火墙、DDOS、CC攻击等)
(注:不同行业的情况有差别,以上数值仅作为参考)

企业诉求

1) 用户规模可能快速发展,需要架构灵活以支撑大量用户的访问; 2) 为了提高知名度和用户引流,通常会做一些推广活动,活动期间跟平时的业务有明显的波峰波谷,在高并发的情况下,避免造成用户的体验不好,出现访问页面的等待时间过长甚至无法访问等情况下·; 3) 累积的数据增加,此时应该如何对数据进行备份,怎样的备份更加的安全合理; 4) 业务发展中遇到恶意注册、刷单和活动作弊等问题,如何有效降低企业经济损失; 5) 企业的名气大了“友商”或者黑客,有针对性的对系统进行DDOS攻击,让业务瘫痪,这种情况应当如何解决。

云架构

标准 Web 云架构 - 图2

  1. 网络访问侧,采用DNS云解析技术,将域名指向SLB(负载均衡),并通过防火墙,DDOS等保证访问安全性。
  2. 负载均衡服务消除单点故障,保证高并发时系统的健壮性。应用服务器承接业务应用,支持弹性扩容。当推广类业务带来数十倍于平常的流量时,能够根据交易、促销等业务需求的变化动态扩展云服务器实例,应对推广、促销等业务峰值。
  3. 核心系统包含应用服务器集群和云数据库集群,当业务量较大时云数据库集群可采用只读实例和数据库主从方案,来确保数据库性能和安全性。云数据库Redis版提供在线存储服务,为商品主数据等热点数据提供快速响应能力。
  4. 对象存储提供海量、安全和高可靠的云存储服务,存储容量和处理能力可以按需弹性扩展。提供图片处理、音视频转码等数据处理服务,满足电商企业海量图片处理需求。并可以与阿里云CDN无缝融合进行内容加速分发。
  5. 云下,企业内部可以通过VPN或者专线的方式接入到云上网络。
如有本地文件的备份或本地数据灾备的需求,则可以配置本地存储的服务器,与云上OSS存储打通并实时同步。

域名解析

需要购买并拥有一个域名,只要是用于网站服务的服务器,都需要进行备案(约需 20 个工作日)。只有备案成功,网站才可以正常使用。您需要在服务器上绑定您的域名(主机域名绑定),同时将域名指向您的网站(即通过域名解析将域名与服务器 IP 地址绑定)。

绑定网站域名

设置域名解析

负载分配层:

负载均衡的概念很广泛,所述的过程是将来源于外部的处理压力通过某种规律/手段分摊到内部各个处理节点上。我们需要根据业务形态设计一种架构方式,将来自外部客户端的业务请求分担到每一个可用的业务节点上。如下图所示:

标准 Web 云架构 - 图3

数据缓存层:

对于一个电商系统,缓存是重要组成部分,而提升系统性能的主要方式之一也是缓存。它可以挡掉大部分的数据库访问的冲击,如果没有它,系统很可能会因为数据库不可用导致整个系统崩溃。 可以放缓存的数据:
  • 不需要实时更新但是又极其消耗数据库的数据。比如网站首页的商品销售的排行榜,热搜商品等等,这些数据基本上都是一天统计一次,用户不会关注其是否是实时的。
  • 需要实时更新,但是数据更新的频率不高的数据。
  • 每次获取这些数据都经过复杂的处理逻辑,比如生成报表。

数据存储层:

数据库的主从架构应该是最基础的,随着业务的演进,可能会需要更加复杂的数据库集群,例如读写分离; 对于一个电商网站,单台的数据库服务器可能难以支撑大的访问压力,升级服务器性能成本又太高,所以必须要横向扩展。还有就是,单库的话,读、写都是操作一个数据库。数据多了之后,对数据库的读、写性能就会有很大影响。同时对于数据安全性和系统的稳定性也是挑战。 数据库的读写分离的好处:
  • 将读操作和写操作分离到不同的数据库上,避免主服务器出现性能瓶颈;
  • 主服务器进行写操作时,不影响查询应用服务器的查询性能,降低阻塞,提高并发;
  • 数据拥有多个容灾副本,提高数据安全性,同时当主服务器故障时,可立即切换到其他服务器,提高系统可用性。

图片存储服务:

在当前这个互联网的时代,不管何种网站,对图片的需求量越来越大。尤其是电商网站,几乎都会面临到海量图片资源的存储、访问等相关技术问题。 一般现在通过云计算的对象存储服务,将图片服务器和应用服务器进行分离,通过对象存储功能来替代独立图片服务器的功能,有如下的优点:
  • 将图片服务和应用服务分离,缓解应用服务器的I/O负载。
  • 可以避免多服务器之间同步相关的问题。
  • 相对来讲很灵活,也支持扩容/扩展。。
  • 这种方式是性价比高,符合目前互联网的“短平快”的开发模式。

通过反向代理和 CDN 改善用户体验

随着业务不断发展,用户规模越来越大,由于中国复杂的网络环境,不同地区的用户访问时,速度差别也极大。有研究表明,访问延迟和用户流失率正相关,访问越慢,用户越容易失去耐心而离开。 为了提供更好的用户体验,留住用户,需要加速网站访问速度。主要手段有使用 CDN 和反向代理。 CDN的使用可参考 CDN的应用场景 ### 安全规划 标准 Web 云架构 - 图4 1. 系统部署在专有网络内,进行子网规划并设置访问权限。考虑系统安全,对系统访问都需通过负载均衡,专有网络内的应用服务器无公网IP。 2. 许多应用系统会涉及到与第三方的支付系统或与企业内部的系统进行接口调用或数据传输,这里我们建议通过阿里的VPN网关产品实现云上与云下的互访。VPN网关是一款基于Internet,通过加密通道将企业数据中心、企业办公网络、或Internet终端和专有网络安全可靠连接起来的服务。 3. 云服务器的安全组特性提供了类似防火墙的访问控制功能,通过设定各安全组之间的安全规则,可搭建多层访问控制体系,达到系统整体安全。可以设置类似如下的安全组及规则,从而达到安全访问控制的目的。为了安全,建议将业务数据库同应用进行分离,数据库放入数据层安全组。 4. WAF、安骑士和态势感知的组合可以保护web业务免受常见WEB攻击,提供服务器的入侵防护和安全管理的功能,DDOS高防解决流量攻击等问题