本文是更广泛系列的一部分,当你在 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. springboot-28-security(一)用户角色控制

    spring security 使用众多的拦截器实现权限控制的, 其核心有2个重要的概念: 认证(Authentication) 和授权 (Authorization)), 认证就是确认用户可以访问当 ...

  2. WPF中路由事件的传播

    路由事件(RoutedEvent)是WPF中新增的事件,使用起来与传统的事件差别不大, 但传播方式是完全不同的. 路由事件的传播方式 通过RoutingStrategy来定义传播的方式 public ...

  3. ASP.NET MVC HtmlHelper 类的扩展方法

    再ASP.NET MVC编程中用到了R语法,在View页面编辑HTML标签的时候,ASP.NET MVC 为我们准备好了可以辅助我们写这些标签的办法,它们就是HtmlHelper.微软官方地址是:ht ...

  4. Mysql的read_only 只读属性说明 (运维笔记)

    在MySQL数据库中,在进行数据迁移和从库只读状态设置时,都会涉及到只读状态和Master-Slave主从关系设置, 以下针对real_only只读属性做些笔记记录: 1) 对于MySQL单实例数据库 ...

  5. 【K8S学习笔记】Part1:使用端口转发访问集群内的应用

    本文介绍如何使用kubectl port-forward命令连接K8S集群中运行的Redis服务.这种连接方式有助于数据库的调试工作. 注意:本文针对K8S的版本号为v1.9,其他版本可能会有少许不同 ...

  6. 【一个小功能】从js判断ie版本,浅谈navigator对象的appName属性

    判断IE版本主要的是获取两个属性,a.当前浏览器名称,b.当前浏览器版本,为此不得不了解navigator对象. 先贴代码 window.onload = function() { var brows ...

  7. 阿里巴巴FastJSON使用实例

      1. 什么是fastjson? fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到Ja ...

  8. linux下开启、关闭、重启mysql服务

    linux下开启.关闭.重启mysql服务命令 一. 启动1.使用 service 启动:service mysql start2.使用 mysqld 脚本启动:/etc/inint.d/mysql ...

  9. .34-浅析webpack源码之事件流make(3)

    新年好呀~过个年光打游戏,function都写不顺溜了. 上一节的代码到这里了: // NormalModuleFactory的resolver事件流 this.plugin("resolv ...

  10. net 反射30分钟速成

    概述 什么是反射 Reflection,中文翻译为反射.        这是.Net中获取运行时类型信息的方式,.Net的应用程序由几个部分:‘程序集(Assembly)’.‘模块(Module)’. ...