重要
从 2024 年 9 月 1 日开始,云服务(经典版)对所有客户已停止支持。 从 2024 年 10 月开始,Microsoft 将停止并关闭任何正在运行的现有部署,数据将永久性丢失。 新部署应使用新的基于 Azure 资源管理器的部署模型 Azure 云服务(扩展支持)。
Azure 云服务是 平台即服务 (PaaS)的示例。 与 Azure 应用服务一样,此技术旨在支持可缩放、可靠且经济运行的应用程序。 同样,应用服务托管在虚拟机 (VM) 上,Azure 云服务也是如此。 但是,你对 VM 有更多的控制。 可以在使用 Azure 云服务的 VM 上安装自己的软件,并且可以远程访问它们。
更多控制也意味着更不易于使用。 除非需要更多控制选项,否则,与 Azure 云服务相比,在应用服务的 Web 应用功能中启动和运行 Web 应用程序通常要快速方便一些。
有两种类型的 Azure 云服务角色。 两者之间的唯一区别是他们在 VM 上托管你的角色的方式:
Web 角色:通过 Internet Information Services (IIS) 自动部署和托管应用。
辅助角色:不使用 IIS,并独立运行应用。
例如,简单的应用程序可能只使用一个 web 角色为网站提供服务。 更复杂的应用程序可能使用 Web 角色来处理用户的传入请求,然后将这些请求传递给辅助角色进行处理。 (此通信可能使用 Azure 服务总线 或 Azure 队列存储。
如上图所示,一个应用程序中的所有 VM 都在同一云服务中运行。 用户通过单个公共 IP 地址访问应用程序,而请求会自动在应用程序的 VM 中进行负载均衡。 在 Azure 云服务应用程序中,平台以避免单一硬件故障的方式扩展和部署VM。
即使应用程序在 VM 中运行,理解 Azure 云服务提供的是 PaaS 而非基础结构即服务 (IaaS) 也很重要。 以下办法有助于理解这一点。 使用 IaaS(例如 Azure 虚拟机)时,首先要创建并配置你的应用程序将在其中运行的环境。 然后,将应用程序部署到该环境中。 你要负责执行该环境的大部分管理工作,例如在每个 VM 中部署操作系统的新修补版本。 相反,在 PaaS 中,这样的环境似乎早已存在。 只需部署应用程序。 平台的管理,包括更新操作系统版本,均由我们为您处理。
缩放与管理
使用 Azure 云服务时,你不需要创建虚拟机。 相反,您需要提供一个配置文件,告诉 Azure 您希望有多少个每种类型的角色实例,例如“三个 Web 角色实例”和“两个工作角色实例”。 然后平台将为您创建这些实例。 你仍然可以选择这些后台虚拟机的大小,但并不是由你亲自显式创建它们。 如果应用程序需要处理更大的负载,则可以要求增加 VM,Azure 将创建这些实例。 如果负载降低,则可以关闭这些实例并停止为它们付费。
通常通过两个步骤就能使 Azure 云服务应用程序可供用户使用。 开发人员首先 将应用程序上传到 平台的过渡区域。 当开发人员准备好使应用程序上线后,他们会使用 Azure 门户从过渡环境切换到生产环境。 暂存与生产之间的这种切换无需停机即可完成,这样就可以将正在运行的应用程序升级到新版本,而不会干扰其用户。
监测
Azure 云服务还提供监视功能。 像虚拟机一样,它将检测发生故障的物理服务器,并在新的计算机上重新启动原先在该服务器上运行的 VM。 Azure 云服务不仅检测硬件故障,还检测发生故障的 VM 和应用程序。 与虚拟机不同,它在每个 Web 角色和辅助角色中都存在有代理,因此它能够在发生故障时启动新的 VM 和应用程序实例。
Azure 云服务的 PaaS 特性还具有其他含义。 其中一个最重要的含义是,应编写基于此技术构建的应用程序,以在任何 Web 角色或辅助角色实例出现故障时正确运行。 若要实现这一目标,Azure 云服务应用程序不应该在它自己的 VM 的文件系统中维持状态。 与通过“虚拟机”创建的 VM 不同,对 Azure 云服务 VM 所做的写入不是持久的。 没有什么能与虚拟机数据磁盘相提并论。 相反,Azure 云服务应用程序应将所有状态明确写入到 Azure SQL 数据库、blob、表或其他某种外部存储中。 以这种方式构建应用程序会使它们更易于扩展、抵抗故障的能力更强。 可伸缩性和复原能力都是 Azure 云服务的重要目标。