案例分析与架构设计
案例分析:大卫公司电子商务网站案例研究
大卫公司是北京的一家媒体和出版公司,拥有约2000名员工。它有一个成功的直接面向消费者的电子商务网站,使用.NET构建,并使用SQL Server来存储客户资料和订单信息。
•桌面为内部和面向客户的应用程序提供单一数据中心。大多数服务器都是在VMware上虚拟化的。应用程序服务器主要运行Microsoft服务器软件,包括Active Directory(AD)域服务和许多AD集成服务(包括Exchange 2013)以及多层,内部AD集成的基于Microsoft Internet Information Services(IIS)的Web应用程序与SQL Server 2016作为数据库平台。
•桌面电子商务网站由于雷击,最近经历了多天的停电,数据中心的主要和次要冷却系统都导致16小时停机而冷却系统被修复。
▪当前的灾难恢复策略
经典的备份/恢复。
不提供异地热备用机器。
备份被转储到文件共享,然后备份到磁带并发送到异地。
没有自动化,所有操作步骤都是手动的。
灾难现场依靠从主机设施租用的临时硬件。
故障转移从未经过测试,由于成本和复杂性。
由于没有归档策略的大表,维护作业运行时间过长。
▪客户要求
全面的多站点灾难恢复解决方案,要求:复杂度低、故障切换联动、数据丢失接近零。
具有跨站点灾难恢复的高可用性容错SQL Server服务。
随着环境的发展,能够无缝扩展容灾站点基础设施。
数据存档可使数据库大小更易于管理,并可减少数据库维护所需的时间。
在不到两个小时的时间内保护异地备份。
▪客户关注要点:
解决方案必须支持协调故障转移,以便故障转移不需要全部动手进行。
解决方案必须支持现有的VMware基础架构。
灾难恢复基础架构必须易于扩展,以支持工作负载的变化。
主站点和灾难恢复站点都必须具备高可用性。
使用Azure对案例架构设计
本项目用到的Azure技术:
Traffic Manager,使用目的:将客户端发过来的请求进行流量分发。默认都分发到主站点。
Virtual Network,使用目的:用于网络隔离。
Virtual Machines,使用目的:承载应用。
Azure AD Service,使用目的:故障切换后,用户信息、密码、权限等不变。
LoadBalancer:使用目的:应用的负载均衡。
Express Route,使用目的:构建On-Premises和Azure Cloud之间的隧道。
Availability Set:用于保证VM的高可用。
Scale Sets,使用目的:让虚拟机实现弹性伸缩。
Site Recovery,使用目的:主站点发生灾难时,自动触发灾难恢复。
Storage Backup,使用目的:将主站点的SQL Server数据备份到备站点。
Blob Storage,使用目的:用于Azure上存放SQL Server归档数据。
Disk storage,使用目的:为SQL Server提供存储空间。
可选:SQL Server Stertch Database。使用目的:如果客户对SQL Server的高可用要求非常高,那么使用分布式SQL server技术。如果要求相对较低,则使用上面提到的data backup备份主站点的SQL Server数据,到备站点恢复(从大卫公司的要求看,不必使用SQL Server Stertch Database,因为价格较高)。
整体架构:
在方案中,有两个站点:
On-Premises是主站点,本地数据中心的VMware虚拟机。里面运行了IIS Server和SQL server。
Azure Cloud是备站点,用于VMware环境的灾备。
站点之间:
1.Site Recovey监控整个VMware环境,并在本地发生灾难的时候,向Azure上进行切换;
2.Traffic Manager负责流量的发送,默认所有流量都发向On-Premises环境;
3.ADConnect负责将On-premises AD的信息同步到Azure AD;
4.通过Date Backup技术,将VMware中SQL server的数据,备份到Azure上的Disk storage上。
5.两个站点间的互通,通过Express Route实现,它可以加快data backup的速度。如果使用SQL Server Stertch Database,也需要Express Route做跨站点的数据同步。
备站点Azure Cloud:
1. Traffic Manager链接Load balancer,它后面链接IIS集群。IIS集群在一个Scale Set中。IIS和后面的SQL server位于两个不同的Vnet。对IIS设置Avaliable Set。
2. IIS连接SQL Server,SQL server访问后端的数据。上面已经提到,这些数据是从VMware的SQL Server数据中备份过来的。对SQL Server设置Avaliable Set。SQL server所在的Vnet需要和IIS所在的Vnet配置peer。
3. 为了避免以后数据量太大,对SQL Server的数据设置归档策略,归档到blob 存储。
在正常情况下,客户端的请求,都被Traffic Manager转发到主站点。主站点的SQL Server数据被异步拷贝到备站点。
当主站点发生灾难以后,Site Recovery触发IIS虚拟机和SQL Server VM的切换。SQL Server将访问备份过来的数据。客户端的请求,都被Traffic Manager转发大到备站点。
基本概念与实验展现
一、Azure学习笔记系列
本周笔者参加了公司安排的Azure培训。本系列文章仅为笔者的学习笔记,仅用于技术讨论,不代表任何厂商的官方观点。
二、Azure的概况
Azure目前全球有38个region。目前在中国有两个:中国北部和中国东部。目前Azure中国是由世纪互联运营的。
Azure的底层Hypervisor是Hyper-V。需要注意的是,Azure的Hyper-V和Windows中的Hyper-V虽然名字一样,但功能区别很大。Azure虚拟机的数据文件是.vhd
的(vSphere是vmdk)。
笔者在做实验过程中,在Azure China可以申请一元适用订阅(绑定信用卡或使用支付宝),有效期是一个月。
三、Azure的存储服务
Azure提供的存储服务有几种类型:Blob、Files、Tables、Queues。
Azure的存储服务中,有一个很重要的概念:Storage Account。它是Azure存储服务的namespaces。
一个Azure的用户,最多有20个Storage Account,每个Storage Account最多有500TB的空间。
Storage Account的复制技术有四种:
在创建storage account的时候,可以指定存储的复制技术:
接下来,在创建好的Storage Account中,选择Blob Service:
然后创建一个container(方便按照存储内容的细分。如可以有日志、大数据等类型的数据,就可以分成不同的container):
从本地上传一个文件:
然后复制这个文件的链接:
https://savidsa.blob.core.chinacloudapi.cn/clt-container/%E6%BC%94%E8%AE%B2%E9%A2%98%E7%9B%AE1%EF%BC%9A%E5%AE%B9%E5%99%A8%E5%9C%A8%E4%BC%81%E4%B8%9A%E4%B8%AD%E7%9A%84%E5%BA%94%E7%94%A8.pdf
就可以通过浏览器访问URL浏览、下载文件了:
接下来,我们再看一个创建文件存储的示例:
然后查看VM如何通过SMB方式挂载共享,点击connect:
net use Z: \\dedevstore.file.core.chinacloudapi.cn\azurefileshare /u:AZURE\dedevstore X6l5+VUL8kmC7PmbF9rI34tttK2s4u1ntY/7UqM2Plobs1bMNi/wDj5Ll8Mec334jaVwyajvmWRVzDjSb65GXQ==
映射网络驱动器:使用上一步粘贴出来信息中的凭证:
映射成功:
四、Azure的网络服务
为了避免赘述概念,我们通过一个实例大致讲述Azure的网络。
在Azure中国的北区和东区,分别有两个虚拟网络:Vnet1和Vnet2。
Vnet1的网段是:10.0.0.0/16; Vnet2的网段是:20.0.0.0/16;
Vnet1中有一个subnet,网段是:10.0.0.1.0/24; Vnet2也有一个subnet,网段是:20.0.1.0/24;
Vnet1-subnet1中有个虚拟机VM1,IP是10.0.1.4;
Vnet2-subnet1中有个虚拟机VM2,IP是20.0.1.4;
我们如何让VM1和VM2进行通讯?
第一步,在两个Vnet中创建subnet gateway:
第二步,为两个跨Region的通讯准备两个public IP:
第三步,创建vnet gateway,创建过程中,会和public ip、subnet gateway创建关联关系。
第四步:创建vnet gateway之间的connection。
至此,分别位于两个区域的两个VM,就可以通过通讯了。当然,需要VM上的Network interface的Network security group放行相关的网络策略。
接下来,我们看一下实验环境。
先看一下Vnet之间的connection(双向的):
查看第一个connection,它将RG1的vnet gateway和RG2的vnet gateway建立了关联:
查看第二个connection,它将RG2的vnet gateway和RG1的vnet gateway建立了关联:
查看第一个vnet gateway,它和vnet1进行了关联。
在查看vnet1,可以看到有两个VM和它进行了关联:
查看vnet1的subnet,可以看到subnet的gateway:
subnet gateway的信息:
查看VM的网卡安全组策略:
至此,大家应该都够大致了解Azure的网络架构。
五、VM Scale Set的配置与验证
Scale Set是用于设置VM的横向扩展的。通过设置阈值,当Scale Set中的VM CPU利用率变高或者变低时,触发虚拟机的弹性扩展。
创建Scale Set:
指定VM用的模板,VM数量。
设置Auto Scale的阈值:
接下来,对Scale set中的VM进行CPU加压:
然后在scale set中可以看到,虚拟机实例已经增加:
当CPU利用率下降以后,虚拟机实例进行了自动缩减:
随后,再度触发CPU压力,新的虚拟机实例被创建:
六、同步On-premise AD和Azure AD的信息
Azure上有AD service服务。但很多用户都有本地的AD,因此需要将本地AD信息与Azure AD的信息同步。本步骤通过实验展示这个步骤。
首先,数据中心本地有个AD:mastercloud.net。这个AD的管理员是:harits。在创建几个普通用户:曹操、杨过、小龙女等。
接下来,在Azure AD中添加本地的域:mastercloud.net:
然后,在本地AD的windows中,用Azure ADConnect添加Azure AD的Global Account:davidsajarewei.partner.onmchina.cn.
添加成功以后,可以在本地windows上看到本地AD已经和Azure AD创建了同步关系:
然后在Azure AD中,就可以看到本地AD中的用户了:
七、创建Recovery Service并保护一个VM
在Azure上选择Backup and Site Recovery:
然后选择backup服务,并设置保护本地系统的文件和目录:
接下来,下载Recovery Services Agent,安装到被保护的系统中。然后下载认证文件,在配置agent的时候导入:
将Agent安装完毕:
接下来,在Azure上查看被保护的系统:
已经可以看到一个:
接下来,在被保护的系统上创建backup任务:
也可以手工触发,完成backup:
八、配置VM的定时自动启动和关闭
本步骤将使用Azure上的Automation服务。
选择runbooks,通过gallery添加自动启动和停止的脚本:
分别对两个脚本对现有虚拟机进行测试,确保成功:
测试关闭VM脚本的效果:
很快,虚拟机开始释放资源:
过一会,虚拟机被关闭了。
用同样的方法,测试启动脚本,确保可以执行成功。
然后将两个runbook发布。
接下来,设置计划任务:
然后关联虚拟机:
用同样的方法,再创建一个定时启动VM的任务。
九、配置Hadoop Insight Cluster
创建HD Insight Cluster,也就是创建一个Hadoop集群以及hadoop集群的监控:
添加对Hadoop集群的监控:
设置Hadoop集群的规模:
创建完毕后,可以监控Hadoop的信息,应该说信息还是比较丰富的:
查看Cluster dashboard:
还可以给Hadoop扩容:
可以为hadoop增加app:
可以增加脚本:
十、配置机器学习
链接:https://studio.azureml.net。
本实验将展示通过Azure上的机器学习,通过输入原始数据,进行汽车价格预测。
原始的数据表如下,这个表格列出了全美93个地区的信息。第一列是该地区的名称、第二列表示当地的基尼系数、第三列表示2014年该地区的人口、第四列表示地区面积、第五列表示人口趋势、第六列表示人口密度。
开始试验:
点击新建:
点击New,选择dataset,从本地上传数据文件:
选择从本地上传数据文件:
数据导入成功:
将数据进行可视化查看:
再增加一个模块:
创建两者的数据关系:
设置Transformation method:
确认选择的 COLUMNS是如下几个:
选择run select
然后查看可视化数据:
添加新的模块:
继续添加:
为Train clustering Model:
对数据进行可视化:
再增加两个模块,并连接拓扑:
然后点击运行:
对最终结果进行可视化:
最终形成结果: