Azure实战(场景模拟+规划+创建+管理)

1、模拟场景

Contoso公司已经采购了Azure China服务,计划把现有托管在IDC的企业官网迁移到Azure云平台。该企业官网面向的用户群主要是华东地区的用户。

该企业官网部署需要服务器列表如下:

  • 1台AD服务器
  • 1台Web服务器
  • 1台SQL Server服务器

2、规划

2.1、如何选择Azure数据中心

世纪互联运维的Windows Azure在中国大陆有两个数据中心:

  1. 中国北部,即位于北京的数据中心
  2. 中国东部,即位于上海的数据中心

当我们在选择Azure数据中心的时候,需要从以下两方面进行考虑:

  • 选择的Azure数据中心离最终用户越近越好

考虑到Contoso的企业官网主要的用户群是华东地区,建议Contoso公司将应用部署到Azure在中国东部的数据中心。

  • 如果需要在Azure部署多台应用服务器,则需要将所有的应用服务器放在同一个数据中心

建议用户将Web服务器和SQL Server服务器都部署在Azure中国东部数据中心,不要将Web服务器和SQL服务器部署在不同的数据中心,会产生内部通信的延时。

  • 利用CDN

CDN能将静态内容缓存到离用户最近的CDN节点服务器,提高应用程序的用户体验。

2.2、Azure是如何解决大并发

我们建议使用多台Azure虚拟机,利用横向扩展的方式来解决大量的并发。

单个节点向上扩展是有限的,这是因为受限于现有的CPU制造技术,我们无法将大量的计算资源都堆积到1台300 Core甚至400 Core的计算节点上。对于需要大量的计算资源的情况下,我们可以通过横向扩展的方法来解决。

所谓横向扩展,就是由1个计算节点,横向扩展到多个计算节点上并行计算,比如50个、100个计算节点。比如一个互联网业务需要大量的计算资源,那可以将这些计算需求由100台4 Core的计算节点进行并行计算。

架构图如下:

2.3、选择最合适的虚拟机配置

首先请读者注意,传统的虚拟机化技术,CPU是共享的。Azure虚拟机,除了A0的虚拟机类型,它的CPU是和别的用户共享的。其他类型的虚拟机,比如A1-A7,它的CPU是独占的,不是和别的用户共享的。

目前Azure虚拟机分为A系列和D系列,并且拥有不同的CPU和内存配置。

如果客户在传统IDC托管中已经部署了硬件服务器。则在Azure平台选择最接近的Azure虚拟机配置即可。

如果客户需要部署新的应用,则需要根据并发、性能等多个因素,选择最合适的Azure虚拟机配置。

另外说明一下A系列虚拟机和D系列虚拟机的区别:

  1. 相比A系列单台VM最大8Core/56GB RAM的配置,D系列虚拟机单台最大的配置为16Core/112GB RAM
  2. D系列的CPU性能比A系列提升约60%

2.4、规划好高可用(非常重要)

在Microsoft Azure虚拟机中,用户也可以选择使用一台Azure Virtual Machine部署AD Server,一台Azure Virtual Machine部署Web Application,使用另一台Virtual Machine部署SQL Server。但是这样的场景是没有SLA保障的。

Microsoft Azure Virtual Machine承诺的99.95%的SLA是需要2台或者2台以上的Azure Virtual Machine同时运行,且所有的Virtual Machine都需要在同一个可用性集中。对于上面实例,用户如果想在Azure中实现99.95%的SLA,需要同时部署:

  1. 两台AD Server虚拟机,放在同一个可用性集A中。
  2. 两台Web Server虚拟机,放在另外一个可用性集B中。
  3. 两台SQL Server 虚拟机,采用SQL Server 2012 Enterprise提供的Always-On功能,实现High Availability。且SQL Server所在的Virtual Machine需要在另外一个可用性集C中。
  4. 将具有相同功能的多台VM放置在同一个可用性集下。

这边还需要强调一下:

  1. 可用性集A中的两台AD Server中的内容配置必须完全一致,并且需要进行AD的同步。
  2. 可用性集B中的两台Web Server中的网站在部署的时候,内容必须完全一致。
  3. 可用性集C中的两台SQL Server必须配置SQL Server Always-On或者SQL Mirroring,保证数据库之间的日志同步

对于DB Server,比如SQL Server或者MySQL,需要在两台DB Server进行日志同步:

  1. SQL Server需要在两台VM配置Always-On或者SQL Mirroring,使用日志同步
  2. My SQL可以配置Master-Slave,使用Replication进行复制。
  3. 这样的目的是保证在其中一台Server宕机的情况下,另外一台Server可以正常运行,因为配置了日志同步,可以保证日志不会丢。
  4. 另外还要强调一下,客户端如果调用SQL Server服务的时候,需要正确配置AG Listener,这样保证在一台SQL Server宕机的情况下,AG Listener可以将请求自动发送到另外一台SQL Server上。

2.5、规划好Azure订阅(非常重要)

订阅是进行Azure账单分拆的最小单位。

如果企业内部需要进行内部成本核算,例如IT部门、销售部门、市场部门均需要使用Azure,并且根据不同的部门的Azure实际使用量进行内部成本核算,就需要实现规划好三个不同的Azure订阅。在创建Azure IaaS相关资源的时候,将这些资源创建在不同的订阅下。

2.6、选择订阅(非常重要)

我们就可以筛选一个或者多个订阅。

在一般情况下,笔者建议选择一个订阅,这样就可以把所有的Azure资源创建到这个订阅下。

本文所有的demo内容,就会创建到Marketing_Subscription这个订阅下。

2.7、查看该订阅中可使用的Azure资源

如果您使用的是测试账户,只能有一个订阅,该订阅默认情况下可以使用的Azure资源为

  1. 计算能力:20 Core
  2. Host Service: 即DNS地址,4个
  3. 存储账号:4个

如果测试账户在测试过程中,需要的Azure资源超出测试账号默认提供的资源,请通过微软销售团队,联系Azure PMM Bill Jin。在Bill批准的情况下,再联系世纪互联支持团队,请世纪互联在后台将测试账户的订阅进行扩大。

如果您使用的是正式账户,可以创建无限多个订阅。新创建的Azure订阅默认可以使用的Azure资源为:

  1. 计算能力:100 Core
  2. Host Service: 即DNS地址,20个
  3. 存储账号:20个

如果正式账户在使用过程中,需要的Azure资源超出订阅默认的Azure资源,请不要联系PMM Bill Jin。请直接联系世纪互联支持团队,世纪互联会先审核相关请求,然后会将该订阅的相关资源进行扩大。

举个例子,比如Contoso公司需要在月底进行一次大型的Digital Campaign促销活动,需要使用300个CPU Core,则可以提前联系世纪互联支持团队,让世纪互联运维团队将默认的100 CPU Core提升到300个。

上图中,订阅名称为”Marketing_Subscription”可以使用的Azure资源为

  1. 100个CPU Core
  2. 20个Cloud Service
  3. 20个Storage Account

3、创建Azure虚拟机

3.1、说明

我们在创建Azure服务的时候,可以通过以下两种方式来创建

使用Azure管理界面

优势:

  • 可以通过用户界面的方式,创建相应的Azure虚拟机,方便简单。

劣势:

  • 某些Azure虚拟机的高级功能,比如固定内网IP,固定公网IP,设置虚拟机时区等,都需要借助于Azure PowerShell。Azure管理界面不具备相应的功能。
  • 当用户需要批量创建Azure虚拟机,批量配置虚拟机端口等,通过Azure管理界面就非常麻烦。

我们可以使用Azure PowerShell,创建Azure虚拟机。

Azure PowerShell可以批量创建虚拟机,其他高级功能也需要通过Azure PowerShell来进行配置。

3.2、规划

在我们创建Azure虚拟机之前,首先需要对Azure虚拟机进行规划。规划主要分为:

  1. 创建虚拟网络,规划虚拟机的内网IP地址和IP Rang
  2. 创建存储账号
  3. 选择虚拟机的操作系统及配置

针对这次模拟场景,我们需要规划以下内容:

  1. 数据中心选择中国东部
  2. 虚拟网络
    1. 我们创建Azure虚拟网络,命名为ContosoVNet,同时设置虚拟网络的IP Rang为10.0.0.0 - 10.0.3.255
    2. 设置3个Sub-net

AD-Subnet,IP Rang为10.0.0.0 – 10.0.0.255

Web-Subnet,IP Rang为10.0.1.0 – 10.0.1.255

DB-Subnet,IP Rang为10.0.2.0 – 10.0.2.255

  1. 在中国东部创建2个存储账号contosostor1和contosostor2
  2. 创建6台Azure虚拟机

角色

AD Server

Web Server

DB Server

操作系统

Server 2012 Eng

Server 2012 Eng

Server 2012 Eng with SQL Enterprise

虚拟机类型

D2

D2

D2

虚拟机数量

2台

2台

2台

虚拟机名称

ContosoAD01

ContosoAD02

ContosoWeb01

ContosoWeb02

ContosoDB01

ContosoDB02

云服务名称

ContosoADCS

ContosoWebCS

ContosoDBCS

存储账号

contosostor1

contosostor1

contosostor2

虚拟网络子网

AD-Subnet

Web-Subnet

DB-Subnet

内网IP

10.0.0.4

10.0.0.5

10.0.1.4

10.0.1.5

10.0.2.4

10.0.2.5

可用性集

ADAvbSet

WebAvbSet

DBAvbSet

用户名

AzureAdmin

AzureAdmin

AzureAdmin

密码

Contoso!000

Contoso!000

Contoso!000

我们会在接下来几章详细介绍如何创建Azure虚拟机。

3.3、注意事项

  1. 在一个云服务里,放置多个相同角色的虚拟机
  2. 比如:多个Web Server虚拟机,放在同一个云服务里
  3. 多个SQL Server虚拟机,放在另外一个云服务里
  4. 多个AD Server虚拟机,放在第三个云服务里
  5. 不要把不同角色的虚拟机,比如Web Server和SQL Server,放在同一个云服务里。

3.4、使用Azure管理界面创建虚拟机

我们登陆Azure管理界面,输入相应的Azure账户名称和密码。

3.4.1、创建虚拟网络(非常重要)

  1. 在Azure管理界面的左下角,点击”新建”按钮。
  2. 在弹出的窗口中,点击”网络服务”,”虚拟网络”,”自定义创建”。
  3. 在弹出的窗口中,将名称命名为ContosoVNet,位置我们选择”中国东部”
  4. 下一步,设置DNS地址:

    注意,因为我们需要使用AD Server,这里的DNS就是AD Server的内网IP地址。

    注意: 在Azure云环境,Azure虚拟机的Private IP,DNS Server都必须通过虚拟网络来设置。我们不可以通过远程桌面连接(Remote Desktop),来修改Azure虚拟机的本地TCP/IP地址。如果这样操作的话,Azure虚拟机会运行不正常。

     

    如果用户场景不需要设置AD服务器,则DNS服务器配置页面可以不输入任何信息,直接选择下一步。

  5. 最后,我们设置虚拟网络的IP Rang和Subnet。如下图:

上图中:

  • IP Range为10.0.0.0 – 10.0.3.255
  • 子网AD-Subnet的IP Range为10.0.0.0 – 10.0.0.255。注意每个子网的前4个IP是Azure系统保留的,对于AD-Subnet来说,可用的IP Range为10.0.0.4 – 10.0.0.255
  • 子网Web-Subnet的IP Range为10.0.1.0 – 10.0.1.255。同上,该子网实际可用的IP Range为10.0.1.4 – 10.0.1.255。
  • 子网DB-Subnet的IP Rang为10.0.2.0 – 10.0.3.255。同上,该子网的实际可用IP Rang为10.0.2.0 – 10.0.3.255。

定义了虚拟网络以后,我们创建的Azure虚拟机的内网IP地址,就是在虚拟网络中定义的可用地址范围和子网来定义的。

6.创建完毕后,我们就可以在Azure管理界面上查看到我们创建成功的虚拟网络ContosoVNet。如下图

3.4.2、创建存储账号

我们需要创建2个存储账号:contosostor1和contosostor2。注意存储账号的名称只能是小写英文字符。

1.在Azure管理界面的左下角,点击”新建”按钮。

2.创建存储账号contostor1,位置选择中国东部

复制选项中,我们可以根据自身的需求,选择本地冗余或者地域冗余。

注意: 从成本角度来说,地域冗余的成本会比本地冗余要贵。

3.创建另外一个存储账号contostor2,位置选择中国东部

复制选项中,我们可以根据自身的需求,选择本地冗余或者地域冗余。

4.这样我们在存储栏目里,就可以看到创建成功的两个存储账号,如下图

注意:一个Azure存储账号的IOPS上限为20000,考虑到每块磁盘的最大IOPS为500,笔者建议不要在同一个存储账号保存超过40块磁盘。

3.4.3、创建虚拟机说明

在上面的章节中,我们创建了如下内容:

  1. 虚拟网络,设置了虚拟内网的IP Rang和DNS地址
  2. 存储账号,设置了虚拟机所在的VHD文件保存的数据中心的物理位置及文件的冗余性

接下来的内容,就是创建相应的虚拟机了。

我们会依次创建如下虚拟机:

  1. 2台AD服务器,2台服务器使用同一个云服务,名称为ContosoADCS
  2. 2台Web服务器,使用同一个云服务,名称为ContosoWebCS
  3. 2台SQL Server服务器,使用同一个云服务,名称为ContosoDBCS

从Azure虚拟机的角度来说,云服务只是一个DNS,概念上可以理解为一个容器。这个容器可以同时容纳一个或者多个虚拟机。如下图:

当我们新建一个虚拟机的时候,因为不存在容纳这个虚拟机的容器,所以Windows  Azure会默认创建一个新的Cloud Service,然后将虚拟机加入到这个容器当中去。

当我们创建第2个虚拟机的时候,可以复用这个Cloud Service,然后将第2个虚拟机加入到这个Cloud Service里。

从负载均衡和高可用两个角度来说,笔者强烈建议,将2台或者2台以上具有同样功能的虚拟机,创建在同一个Cloud Service云服务下。

3.4.4、使用管理界面创建Azure虚拟机

注意事项

我们在开始创建Azure虚拟机之前,已经定义了虚拟机网络。在虚拟机网络配置页面里,我们创建了3个子网(Subnet)。并且定义了每个子网的IP Rang。如下图:

接下来,我们需要创建不同的Azure虚拟机,并且将虚拟机加入上面定义的虚拟网络。

注意:

  1. 上图中,IP Rang为10.0.0.0 – 10.0.0.255
  2. 子网AD-Subnet的IP Range为10.0.0.0 – 10.0.0.255。注意每个子网的前4个IP是Azure系统保留的,对于AD-Subnet来说,可用的IP Range为10.0.0.4 – 10.0.0.255
  3. 子网Web-Subnet的IP Range为10.0.1.0 – 10.0.1.255。同上,该子网实际可用的IP Range为10.0.1.4 – 10.0.1.255。
  4. 子网DB-Subnet的IP Rang为10.0.2.0 – 10.0.3.255。同上,该子网的实际可用IP Rang为10.0.2.0 – 10.0.3.255。
  5. 定义了虚拟网络以后,我们创建的Azure虚拟机的内网IP地址,就是在虚拟网络中定义的可用地址范围和子网来定义的。

请注意,使用Azure管理界面创建的虚拟机,是无法固定内网IP地址的。必须通过Azure PowerShell,才能固定虚拟机的内网IP地址。

在Azure云平台是没有DHCP这个概念的。如果我们将第一台虚拟机VM01,通过管理界面进行创建,加入到AD-Subnet的话,这台虚拟机VM01会自动获得第一个可用的内网IP(Private IP),为10.0.0.4。

如果我们在第一台虚拟机VM01不关机的情况下。再次通过管理界面继续创建第2台虚拟机VM02,同样加入到AD-Subnet。因为10.0.0.4这个IP被第一台虚拟机VM01占用。所以第2台虚拟机VM02自动获得下一个可用的内网IP地址,为10.0.0.5。

如果VM01, VM02都不关机的情况下,则第3台新创建的虚拟机VM03加入到AD-Subnet的Azure虚拟机自动获得下一个可用的内网IP地址为10.0.0.6。

还有一个问题需要读者注意。如果我们在上面创建的3台虚拟机,通过管理界面关机了,则这些内网IP地址会被释放。经过一段时间后,第一个通过管理界面开机的虚拟机(无论是VM01,VM02,VM03),会自动获得第一个可用的IP地址。

假设笔者将虚拟机通过管理界面关机。经过一段时间后,将VM03首先通过管理界面开机,则VM03会自动获得第一个可用的内网IP地址,为10.0.0.4。

这个问题非常重要。如果您通过管理界面创建Azure虚拟机,通过管理界面开关虚拟机,内网IP地址会变化。

如果读者需要固定内网IP地址,只有通过PowerShell创建的虚拟机,内网IP地址才是固定的。

另外,使用管理界面创建的Azure虚拟机,默认时区是UTC时区。而我们平时使用的市区是UTC+8(北京时区)

创建第一台AD Server

我们需要创建2台Azure AD Server,配置如下:

角色

AD Server

操作系统

Server 2012 Eng

虚拟机类型

A2

虚拟机数量

2台

虚拟机名称

ContosoAD01

ContosoAD02

云服务名称

ContosoADCS

存储账号

contosostor1

虚拟网络子网

AD-Subnet

内网IP

10.0.0.4

10.0.0.5

可用性集

ADAvbSet

用户名

AzureAdmin

密码

Contoso!000

我们首先创建第一台AD Server。步骤如下:

1.在Azure管理界面。选择新建,计算,虚拟机,从库中。如下图:

2.镜像我们选择Windows Server 2012 R2 Datacenter (en-us)

3.设置虚拟机配置

上图中,我们设置虚拟机名称为ContosoAD01,虚拟机类型为标准。虚拟机配置为D2 (2Core/7GB)。用户名密码按照之前的规划进行设置

4.在接下来配置文件里,我们输入以下信息:

在上面的图片中,我们需要注意以下内容

  • 因为我创建的是第一台AD服务器,所有选择创建新的云服务

  • 在DNS名称中,输入自定义的DNS名称ContosoADCS

  • 在虚拟网络中,选择我们之前创建的虚拟机网络名称ContosoVNet

选择对应的虚拟网络子网AD-Subnet

  • 存储账户,我们选择之前创建的存储账号contosostor1

  • 可用性集,因为我们创建新云服务,所以我们创建新的可用性集,命名为ADAvbSet

在配置页面的下方,还会指定终节点,我们使用系统默认设置。

5.最后我们点击确认,这样就完成创建第一个AD Server。在虚拟机创建列表中就会显示”正在启动(正在配置)”

注意:在客户点击创建的时间点,Azure就开始计费。而不是等到虚拟机创建完毕才开始计费。

 

1.我们等待ContosoAD01这台虚拟机创建完毕,状态为”正在运行”。

然后点击虚拟机名称,如下图红色区域:

2.点击后,页面会进行跳转。我们可以查看到ContosoAD01这个虚拟机的配置信息。如下图:

里面的DNS名称,主机名称和虚拟机大小,就是我们在创建虚拟机的配置页面里进行配置的。

注意:内部IP地址是从AD-Subnet子网中获得第一个有效IP,为10.0.0.4

创建第二台AD Server

我们创建完第一台AD Server之后,从高可用的角度来说,我们需要创建第2台AD Server。步骤如下:

1.选择新建,计算,虚拟机,从库中。如下图:

2.镜像我们选择Windows Server 2012 R2 Datacenter (en-us)

3.设置虚拟机配置。注意虚拟机名称命名为ContosoAD02

4.在接下来配置文件里,我们输入以下信息:

注意,我们创建的第2台AD Server中,与第一台配置稍有不同:

  1. 复用之前我们已经创建的云服务ContosoADCS
  2. 选择对应的虚拟网络和存储账户
  3. 选择我们之前已经创建的可用性集ADAvbSet。

观察AD Server

我们等待第2台虚拟机创建完毕,状态变为”正在运行”。然后我们观察一下Azure管理界面。

上图中,我们可以发现:

  1. 在初始状态,虚拟机和云服务的数量都是0
  2. 我们创建第1台AD Server的时候,新建了一个云服务,同时新建了一个虚拟机。此时虚拟机和云服务的数量都是1
  3. 然后我们创建第2台AD Server,复用之前创建的云服务。所以虚拟机数量为2,云服务数量是1。

我们再复习一下:

从Azure虚拟机的角度来说,云服务只是一个DNS,概念上可以理解为一个容器。这个容器可以同时容纳一个或者多个虚拟机。如下图:

从高可用的角度来说明,我们在创建虚拟机的时候,创建并指定了高可用集。如下图的红色部分区域3的内容。

我们必须把在同一个Cloud Service下的多台Azure虚拟机,保存在同一个可用性集下。

这样,多台Azure虚拟机是部署在不同的RACK上的。

我们点击云服务,选择之前创建的云服务ContosoADCS,然后选择实例。如下图:

上图中,ContosoAD01和ContosoAD02 是在不同的容错域上,分别是0和1。则这2台虚拟机是不是在不同的RACK上,保证高可用。

创建Web Server

我们创建的Web Server信息如下:

角色

Web Server

操作系统

Server 2012 Eng

虚拟机类型

D2

虚拟机数量

2台

虚拟机名称

ContosoWeb01

ContosoWeb02

云服务名称

ContosoWebCS

存储账号

contosostor1

虚拟网络子网

Web-Subnet

内网IP

10.0.1.4

10.0.1.5

可用性集

WebAvbSet

用户名

AzureAdmin

密码

Contoso!000

注意:

1.我们在创建第一台Web Server的时候,需要创建新的云服务。如下图:

2.我们在创建第2台Web Server的时候,需要注意:

  • 复用之前我们已经创建的云服务ContosoWebCS

  • 选择对应的虚拟网络和存储账户,注意子网为Web-Subnet

  • 选择我们之前已经创建的可用性集WebAvbSet。

如下图:

注意创建Web Server的先后顺序,第1个创建成功的Web Server ContosoWeb01,会从子网Web-Subnet中,自动获得第一个可用的内网IP,为10.0.1.4。第2个创建成功的ContosoWeb02,会自动获得第2个可用的内网IP,地址为10.0.1.5。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章