《Windows Azure Platform 系列文章目录》
1.用户场景:
C公司是全球大型跨国连锁餐厅,在世界上大约拥有3万间分店。其IT系统主要部署其海外数据中心,或者租用其他IDC托管机房。因为国内外网访问Internet的连通性问题,或者是由于IDC托管机房的互联网带宽不够。在国内的消费者访问其官方网站的速度非常不理想。
客户急需一个稳定且快速的平台,能够保证消费者快速访问其官方网站,获得该公司的最新资讯。
2.架构设计
C公司官网技术平台采用流行的开源技术。Web服务器采用是Linux操作系统,开发语言是PHP,数据库服务器采用的是MySQL。
在海外数据中心,主要的问题有以下几点:
(1)Web服务器和数据库服务器都是单台服务器,会出现单点故障
(2)Web服务器没有负载均衡
(3)Web服务器没有自动备份功能
(4)MySQL数据库没有高可用设计,没有数据库备份功能
通过将C公司官网做升级改造,主要修改了以下内容:
(1)将Web服务器由Linux VM改造为Azure Web App,PHP代码基于Web App进行重构
(2)Azure Web App可以实现自动横向扩展功能,可以自动扩展多个实例,以应用高峰访问需求。在访问低谷期的时候,可以横向收缩以节省成本
(3)将静态资源,比如文件、图片、照片等,保存到Azure Storage云存储中
(4)将MySQL VM迁移到Azure MySQL PaaS平台
3.客户收益
客户收益主要有以下几点:
(1)自动横向扩展和自动横向收缩
由于客户的官网访问量是有高峰期和低谷期的,如下图:
可以看到在白天8点以后,访问量会逐渐上升。而在夜间23点的时候,访问量会达到低谷。
通过Azure Web App内置的横向扩展功能,可以在访问高峰期的时候,使用3台实例做横向扩展,以应对业务高峰。在访问低谷期的时候,使用2台实例做横向收缩,以节省成本。
如下图所示,为业务高峰期的自动扩展功能,采用3个实例实现负载均衡。
下图是业务低谷期的自动收缩功能,采用2个实例实现负载均衡。
(2)Web代码自动备份
Azure Web App内置自动备份功能,可以实现将PHP代码每天全备份到Azure Storage云存储中。这样当官网的PHP代码产生逻辑问题的时候,可以直接从Azure Storage云存储中,将代码进行还原,如下图:
(3)使用Azure Storage,降低Web Server互联网带宽压力
客户的官网包含很多静态资源,如文件、图片、照片。一般的实现方式是把这些静态资源包含在项目源代码中,通过本地调用的方式直接访问。但是这样需要Web服务器具有比较好的互联网带宽水平。
通过把这些静态资源保存到Azure Storage中,可以减轻Web Server的互联网带宽压力。
如上图所示,整个官网的静态内容,在过去7天内产生的出口流量为5.29TB。但是由于Azure Storage访问速度非常快,官网页面打开速度还是非常流畅的。
上图中,Load: 1.48s
(4)MySQL PaaS数据库高可用
我们将MySQL虚拟机迁移到Azure MySQL PaaS。因为MySQL PaaS本身就提供了数据库的高可用功能,与传统MySQL VM主备模式来说,使用MySQL PaaS成本更低,而可靠性更高。
(5)MySQL PaaS数据库自动备份
MySQL PaaS还提供最长35天的数据库自动备份功能。当发生数据库逻辑问题,可以通过使用MySQL PaaS数据库还原功能,将MySQL数据库还原到上一个正常的版本。
(6)更低的成本
与客户之前部署在海外数据中心的成本相比,采用Azure Web App自动横向扩展和MySQL PaaS数据库的新一代企业官网的Azure使用成本,比之前降低90%。
同时还降低了IT人员的维护成本,同时提高了企业官网的整体可用性。