本文是更广泛系列的一部分,当你在 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. Android Studio常用设置

    Android  Studio显示行号 File-->Setting(Ctrl+Alt+S),选择Editor-->General-->Appearance,右侧勾选Show lin ...

  2. 全网最详细的Windows系统里PLSQL Developer 64bit安装之后的一些配置(图文详解)

    不多说,直接上干货! 注意的是: 本地若没有安装Oracle服务端,Oracle server服务端64位,是远程连接,因此本地配置PLSQL Developer64位. PLSQL Develope ...

  3. Tensorflow运用RNN注意事项

    一.学习单步的RNN:RNNCell 如果要学习TensorFlow中的RNN,第一站应该就是去了解“RNNCell”,它是TensorFlow中实现RNN的基本单元,每个RNNCell都有一个cal ...

  4. 前端组件化Polymer入门教程(7)——Local DOM

    DOM元素的创建和管理被称为本地DOM(Local DOM) 本地DOM模板 如果你需要使用本地DOM,你们需要用<dom-module>并指定一个相匹配的ID. <dom-modu ...

  5. ptmalloc总结

    内存管理的一般方法 C 风格的内存管理程序主要实现 malloc()和 free()函数. 内存池是一种半内存管理方法.Apache 使用了池式内存(pooled memory),将其连接拆分为各个阶 ...

  6. Golang数组Array

    数组Array 定义数组的格式:var [n], n>0 package main import ( "fmt" ) func main() { //数组的长度也是类型的一部 ...

  7. elasticSearch6源码分析(8)RepositoriesModule模块

    1.RepositoriesModule概述 Sets up classes for Snapshot/Restore 1.1 snapshot概述 A snapshot is a backup ta ...

  8. Windows安装Apache2.4和PHP5.6

    VC11 下载安装http://www.microsoft.com/en-us/download/details.aspx?id=30679 ================= PHP(5.6) VC ...

  9. WinMain函数详解(转载再编辑)

    在Windows应用程序中,我们可以认为 WinMain() 函数是程序的入口,WinMain()的原型如下: int WINAPI WinMain( HINSTANCE hInstance, HIN ...

  10. org.hibernate.HibernateException: Wrong column type

    这个问题一般出现在我们使用定长的字符串作为主键(其它字段也可能)的时候,如数据库中的ID为char(16).虽然很多资料上都说不推荐这样做,但实际上我们在做很多小case的时候自己为了方便也顾不得那么 ...