一个虚拟化客户上云的需求分析&架构设计-大卫的Azure学习笔记大全

案例分析与架构设计

案例分析:大卫公司电子商务网站案例研究

大卫公司是北京的一家媒体和出版公司,拥有约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。

  • Blob是对象存储。适合存放:图片、视频、文件、日志文件、大数据等。
  • Files是文件存储。为应用提供文件系统的服务。
  • Tables是为非结构化数据提供存储的,它是一个Key-Value的方式,支持NOSQL,不支持RDBMS。
  • Queues用于存放通过http/s协议发请求类服务的查询消息。
  • Disk storage:为VM提供高性能的持久存储,包含SSD和HDD。

Azure的存储服务中,有一个很重要的概念:Storage Account。它是Azure存储服务的namespaces。

一个Azure的用户,最多有20个Storage Account,每个Storage Account最多有500TB的空间。

Storage Account的复制技术有四种:

  • LRS(Locally Redundant Storage):数据三个副本都存在于一个Region。
  • ZRS(Zero-Redundant Storage):数据的三个副本跨1-2个region。
  • GRS(Geo-Redundant storage):数据六个副本,三个在第一个region,另外三个在第二个region。第二个region的数据是静态不能被修改的(在主备region发生切换前,第二个region的数据不可读写)。
  • RA-GRS(Read-Access Geo-Redundant storage ):在GRS基础上,第二个 region的数据是可读的。

在创建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:

对数据进行可视化:

再增加两个模块,并连接拓扑:

然后点击运行:

对最终结果进行可视化:

最终形成结果:

原文发布于微信公众号 - 大魏分享(david-share)

原文发表时间:2018-02-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

Web APP编程模型和IO策略

现代大型高性能网站诸如淘宝,京东,微博,FB,知乎等等,网站架构涉及很多知识。像业务分层,软件分割模块化,分布式部署,集群服务器,负载均衡等技术可以帮助架构师将...

37170
来自专栏北京马哥教育

每个极客都应该知道的Linux技巧

检查不是由你运行的程序 难度:高级 应用程序:bash(译注:UNIX或者LINUX的shell) 想象下这个场景-你已经准备好了要和同事在办公室里对战一局快速...

315100
来自专栏阮一峰的网络日志

编译器的工作过程

源码要运行,必须先转成二进制的机器码。这是编译器的任务。 比如,下面这段源码(假定文件名叫做test.c)。 #include <stdio.h> int m...

32960
来自专栏FreeBuf

手机没Root?你照样可以渗透路由器

和Metasploit差不多,RouterSploit是一个强大的漏洞利用框架,用于快速识别和利用路由器中的普通漏洞,它还有个亮点,就是可以在绝大多数安卓设备上...

56640
来自专栏IT技术精选文摘

LVS集群的体系结构

1.引言 在过去的十几年中,Internet从几个研究机构相连为信息共享的网络发展成为拥有大量应用和服务的全球性网络,它正成为人们生活中不可缺少的 一部分。虽...

27880
来自专栏企鹅号快讯

ajax轮询在压测平台中的应用

新书 速递 吴老的java版《selenium webdriver 实战宝典》和python版《selenium Webdriver 3.0 自动化测试框架实战...

44470
来自专栏SDNLAB

OpenNF-支持网络功能控制创新

作者简介:刘宏岩,福州大学数计学院2016级计算机科学与技术(实验班)本科生,主要研究方向为软件定义网络SDN、网络功能虚拟化NFV。

15930
来自专栏北京马哥教育

记一次Linux系统被入侵的排查过程

事件起因 一天晚上,我准备与朋友通话,突然发现电脑上QQ自动离线,然后又自动登录,还以为QQ被盗了。 电话完后,发现是网络不稳定引起的,由于小区宽带上个月才进...

47190
来自专栏Timhbw博客

关于网站后期速度优化的一些坑

2016-06-0109:12:42 发表评论 231℃热度 由于网站已经迁移完成,所以昨天在优化服务器和WP,加快读者们的访问速度,毕竟有强迫症的我不能忍受...

30440
来自专栏数据和云

故障恢复:从未知错误ORA-600 [3712]以猜测推理达成恢复

李真旭 Oracle ACE,云和恩墨技术专家 个人博客:www.killdb.com 在Oracle数据库的日常维护中,我们可能经常会遇到一些从未见过的错误,...

31560

扫码关注云+社区

领取腾讯云代金券