本文是更广泛系列的一部分,当你在 Azure 中构建应用程序基础结构时,这些系列向你提供设计注意事项和准则。 用户可以查看系列中的其他主题。 尽管用户可以在 Azure 中快速地构建出开发/测试环境,但在实现生产就绪、高度可用且安全的环境时,有一些其他注意事项。

本文逐步讲述如何构建示例应用程序基础结构。 我们详细介绍如何设计简单在线商店的基础结构,此在线商店可将关于命名约定、可用性集、虚拟网络及负载均衡器的所有准则和决策聚集在一起;以及如何实际部署你的虚拟机 (VM)。

示例工作负荷

Adventure Works Cycles 想要在 Azure 中生成一个在线商店应用程序,该应用程序包含:

  • 位于 Web 层中、用于运行客户端前端的两个 IIS 服务器
  • 位于应用程序层中、用于处理数据和订单的两个 IIS 服务器
  • 位于数据库层中、用于存储产品数据和订单、具有 AlwaysOn 可用性组的两个 Microsoft SQL Server 实例(两个 SQL Server 和一个多数节点见证)
  • 位于身份验证层中、用于客户帐户和供应商的两个 Active Directory 域控制器
  • 所有服务器皆位于两个子网中:
    • Web 服务器位于前端子网中
    • 应用程序服务器、SQL 群集和域控制器位于后端子网中

当客户浏览在线商店时,传入的安全 Web 流量必须在 Web 服务器之间进行负载均衡。 来自 Web 服务器的 HTTP 请求形式的订单处理流量必须在应用程序服务器之间进行负载均衡。 此外,基础结构必须设计为具有高可用性。

生成的设计必须引入:

  • Azure 订阅和帐户
  • 单个资源组
  • Azure 托管磁盘
  • 包含两个子网的虚拟网络
  • 具有类似角色的 VM 的可用性集
  • 虚拟机

以上各项都会遵循以下命名约定:

  • Adventure Works Cycles 使用 [IT 工作负荷]-[位置]-[Azure 资源] 作为前缀

    • 在本示例中,IT 工作负荷名为 azos(Azure On-line Store,Azure 在线商店),位置为 che(China East,中国东部)
  • 虚拟网络使用 AZOS-CHE-VN [number]
  • 可用性集使用 azos-che-as-[role]
  • 虚拟机名称使用 azos-che-vm-[vmname]

Azure 订阅和帐户

Adventure Works Cycles 使用名为 Adventure Works 企业订阅的企业订阅为此 IT 工作负荷提供计费。

存储

Adventure Works Cycles 确定其应使用 Azure 托管磁盘。 创建 VM 时,会使用两种存储可用的存储层:

  • 标准存储用于 Web 服务器、应用程序服务器和域控制器及其数据磁盘。
  • 高级存储用于 SQL Server VM 及其数据磁盘。

虚拟网络和子网

由于虚拟网络不需要持续连接到 Adventure Work Cycles 本地网络,因此,他们决定选择仅限云的虚拟网络。

他们通过 Azure 门户使用以下设置创建了仅限云的虚拟网络:

  • 名称:AZOS-CHE-VN01
  • 位置:中国东部
  • 虚拟网络地址空间:10.0.0.0/8
  • 第一个子网:
    • 名称:FrontEnd
    • 地址空间:10.0.1.0/24
  • 第二个子网:
    • 名称:BackEnd
    • 地址空间:10.0.2.0/24

可用性集

为了维护其在线商店的所有四个层的高可用性,Adventure Works Cycles 决定使用四个可用性集:

  • azos-che-as-web 用于 Web 服务器
  • azos-che-as-app 用于应用程序服务器
  • azos-che-as-sql 用于 SQL 服务器
  • azos-che-as-dc 用于域控制器

虚拟机

Adventure Works Cycles 决定为其 Azure VM 使用以下名称:

  • azos-che-vm-web01 用于第一个 Web 服务器
  • azos-che-vm-web02 用于第二个 Web 服务器
  • azos-che-vm-app01 用于第一个应用程序服务器
  • azos-che-vm-app02 用于第二个应用程序服务器
  • azos-che-vm-sql01 用于群集中的第一个 SQL Server
  • azos-che-vm-sql02 用于群集中的第二个 SQL Server
  • azos-che-vm-dc01 用于第一个域控制器
  • azos-che-vm-dc02 用于第二个域控制器

这是生成的配置。

此配置引入以下项:

  • 包含两个子网(FrontEnd 和 BackEnd)的仅限云虚拟网络
  • 同时具有标准磁盘和高级磁盘的 Azure 托管磁盘
  • 四个可用性集,每个在线商店层一个
  • 四个层中的虚拟机
  • 用于从 Internet 到 Web 服务器的基于 HTTPS 的 Web 流量的外部负载均衡集
  • 用于从 Web 服务器到应用程序服务器的未加密 Web 流量的内部负载均衡集
  • 单个资源组      立即访问http://market.azure.cn

适用于 Windows VM 的 Azure 示例基础结构演练的更多相关文章

  1. Azure 元数据服务:适用于 Windows VM 的计划事件(预览)

    计划事件是 Azure 元数据服务中的其中一个子服务. 它负责显示有关即将发生的事件(例如,重新启动)的信息,使应用程序可以为其做准备并限制中断. 它可用于所有 Azure 虚拟机类型(包括 PaaS ...

  2. 使用 Azure PowerShell 模块创建和管理 Windows VM

    Azure 虚拟机提供完全可配置的灵活计算环境. 本教程介绍 Azure 虚拟机的基本部署项目,例如选择 VM 大小.选择 VM 映像和部署 VM. 你将学习如何执行以下操作: 创建并连接到 VM 选 ...

  3. 微软开放技术开发了适用于 Windows Azure 移动服务的开源 Android SDK

     发布于 2014-02-10 作者 陈 忠岳 为进一步实现连接微软与非微软技术的目标,微软开放技术有限公司开发了适用于 Windows Azure 移动服务的 Android SDK,由Scot ...

  4. 如何使用 Azure PowerShell 在 Azure Marketplace 中查找 Windows VM 映像

    本主题介绍如何使用 Azure PowerShell 在 Azure Marketplace 中查找 VM 映像. 创建 Windows VM 时使用此信息来指定 Marketplace 映像. 确保 ...

  5. 将 Windows VM 移到其他 Azure 订阅或资源组

    本文逐步说明如何在资源组或订阅之间移动 Windows VM. 如果最初在个人订阅中创建了 VM,现在想要将其移到公司的订阅以继续工作,则在订阅之间移动 VM 可能很方便. Important 不可在 ...

  6. 关于 Azure Windows VM 的磁盘和 VHD

    就像其他任何计算机一样,Azure 中的虚拟机将磁盘用作存储操作系统.应用程序和数据的位置. 所有 Azure 虚拟机都至少有两个磁盘,即 Windows 操作系统磁盘和临时磁盘. 操作系统磁盘基于映 ...

  7. 如何在 Azure 门户中将托管数据磁盘附加到 Windows VM

    本文介绍了如何通过 Azure 门户将新的托管数据磁盘附加到 Windows 虚拟机. 在开始之前,请查看以下提示: 虚拟机的大小决定了可以附加多少个磁盘. 有关详细信息,请参阅虚拟机大小. 对于新磁 ...

  8. 如何使用 Jenkins、GitHub 和 Docker 在 Azure 中的 Linux VM 上创建开发基础结构

    若要将应用程序开发的生成和测试阶段自动化,可以使用持续集成和部署 (CI/CD) 管道. 本教程介绍如何在 Azure VM 上创建 CI/CD 管道,包括如何: 创建 Jenkins VM 安装并配 ...

  9. 排查在 Azure 中新建 Windows VM 时遇到的部署问题

    尝试创建新的 Azure 虚拟机 (VM) 时,遇到的常见错误是预配失败或分配失败. 当由于准备步骤不当,或者在从门户捕获映像期间选择了错误的设置而导致 OS 映像无法加载时,将发生预配失败. 当群集 ...

随机推荐

  1. C++学习知识点

    所谓的学习,知识只是一部分,理解知识是如何被抽象和提炼的过程,才是更重要的 1.c++代码里面的\(反斜杠) C语言的宏要求只能在同一行,是不能跨行的.这里的反斜杠就是告诉编译器,我这里虽然换行了,但 ...

  2. 【转】获取到元素的 offsetLeft 、offsetTop属性不正常的解决方法。

    原地址:http://hi.baidu.com/huidust520/item/85da006981a6c635ad3e834e 我在工作中遇到个问题: 在ie7下和360浏览器下获取到的  offs ...

  3. Spring Boot + Spring Cloud 实现权限管理系统 后端篇(四):集成 MyBatis 框架

    引入依赖 Spring Boot对于MyBatis的支持需要引入mybatis-spring-boot-starter的pom文件. <dependency> <groupId> ...

  4. [Python学习笔记-002] lambda, map, filter and reduce

    1. lambda lambda, 即匿名函数,可以理解为跟C语言的宏类似.例如: >>> max = lambda x, y: x if x > y else y >& ...

  5. C++关于vector、queue、stack、priority_queue的元素访问

    vector.queue.stack.priority_queue对元素进行元素访问时,返回的是对应元素的引用.

  6. MySQL中的三中循环 while 、 loop 、repeat 求 1~n 的和

    -- MySQL中的三中循环 while . loop .repeat 求 1-n 的和 -- 第一种 while 循环 -- 求 1-n 的和/* while循环语法:while 条件 DO 循环体 ...

  7. 使用clamav模块对数据流进行病毒检测

    准备工作:linux下安装clamav成功,启动clamav并打开本地socket监听"/tmp/clamav.socket" clamav开源工程目录:/usr/local/ 修 ...

  8. [转]DevOps解决方案-腾讯云

    本文转自:https://cloud.tencent.com/solution/devops 什么是 DevOps?   DevOps 集文化理念.实践和工具于一身,可以提高企业高速交付应用程序和服务 ...

  9. 配置Windows 防火墙,允许SQL Server的远程连接

    在运行SQL Server的服务器上,我们要找到哪些是SQL Server正在侦听的端口,并将其添加到Windows防火墙的入站例外. 首先,我们需要添加 SQL Server 服务侦听 Window ...

  10. [日常] Go语言圣经-Goroutines和线程

    Goroutines和线程: 1.动态栈: 1)线程都有一个固定大小的内存块(一般会是2MB)来做栈 2)一个goroutine会以一个很小的栈开始其生命周期,一般只需要2KB,不是固定的:栈的大小会 ...