2012 R2 新增功能:面向现代 Web 的 PaaS

9 篇博文系列的第 9 篇。

 

支撑所有 2012 R2 产品的一个重大承诺其实很简单:一致性

用户体验中的一致性、IT 专业人士的一致性、开发人员的一致性,以及云之间的一致性。而实现该一致性的一个重要部分是 Windows Azure Pack (WAP)。上周,我们探讨了服务总线将如何实现跨云连接,而在今天的博文中,我们将介绍更多在 Azure 数据中心内构建和测试,并且现已向 Windows Server 推出的 PaaS 功能。借助 WAP、Windows Server 2012 R2 和 System Center,IT 专业人士可让其数据中心变得更具扩展性、更为灵活且更为安全。

在开发该 R2 版本的整个过程中,我们密切关注了组织需要和希望从云中获得的功能。一个重要的反馈是他们希望能一次构建应用,然后让该应用在任何数据中心或云中上线。这一功能现在首次得以实现。无论您的应用位于私有云、公有云,还是托管云中,您组织中的开发人员和 IT 专业人士都将在各个云中获得高度一致的体验。

我确定将变得格外热门的一个元素是这一 PaaS 的灵活性和便携性。我曾无数次听到客户对这一 PaaS 理念喜爱有加,但是他们并不希望被锁定或局限于仅在特定的数据中心中运行。现在,我们的客户和合作伙伴能够构建 PaaS 应用,并随处运行。这真是奇妙无比!在过去两年中,市场已经开始了解 PaaS 所提供的优势,现在这些优势(自动扩展、敏捷性、灵活性等)已唾手可得,并在 Microsoft 提供的私有云、托管云和公有云间保持一致。

本篇博文将花较多时间介绍 Windows Azure 网站,以及这一高密度的网站托管将如何提供真正下一代的优势、功能和一致性。

Microsoft 几乎是唯一一家能够跨云提供这些类型的功能的公司,我非常自豪地说我们是唯一一家拥有持续的企业级执行跟踪记录的公司。

借助 WAP 所新增的功能,组织现在无需锁定到云即可利用 PaaS。究其核心,这彰显了 Microsoft 切实可行地实现多个云间一致性的承诺。

这就是面向现代 Web 的真正 PaaS。

今天的博文由 Windows Azure 首席项目经理 Bradley Bartz 撰写。欲了解此处所探讨的技术的更多信息,或观看这些功能的实施情况的演示,请查看本博文底部的“后续步骤”部分。

* * *

 

在过去十年中,我们发现开发人员构建应用的方式发生了巨大的转变。现代应用通常驻留于 Web 中,而这一转变催生了采用可扩展、安全、灵活的方式来跨公有云和私有云托管 Web 应用的大量需求。

clip_image002

开发人员和 IT 专业人士的体验

Windows Server 网站包含于 Windows Azure Pack中,为现代 Web 应用提供了平台即服务的功能。其为开发人员提供了功能强大的自助平台,同时可作为 IT 专业人士的一个灵活的托管解决方案。网站采用与 Windows Azure 网站服务高度一致的方式实现了这一点。因此,无论是向公有云还是私有云部署,开发人员和 IT 专业人士都可针对一组通用的运行时、体验和功能编写代码和进行管理。

开发人员和 IT 专业人士通常对 Web 场的配置和管理的复杂性感到烦恼。网站通过提供一个统包解决方案,进而向开发人员提供其所期待的 Web 应用服务,同时简化 IT 专业人士的管理。

灵活

当今的 Web 开发人员通常被称为“精通多种语言的编程人员”。他或她将采用多种语言开发,通常选择最适合解决特定问题的语言、数据库和工具。此外,许多开发人员并不从新应用开始;相反,他们将自定义现有的应用以满足其需求。无论哪种情况,网站都旨在为开发人员提供选择,缩短上市时间,并提高效率。

应用程序库

除了提供从头创建新应用的同类最佳环境以外,网站服务还包括一个应用和模板库,以加速应用上市。包括 DotNetNuke、Umbraco、WordPress、Drupal 和 Joomla 在内的热门开源 Web 应用将包含其中,并已为面向网站云的零代码部署准备就绪。此外,还有大量用于创建新的 .NET、PHP、Node.js 和 Python 应用的模板。

部署库应用

开发人员可通过几次单击从模板创建网站。我们将介绍开发人员使用 WordPress 应用模板创建其博客的示例。要访问库,开发人员只需单击使用者门户中的“新建”,然后选择从库创建新网站。

clip_image004

库中将显示服务提供商允许租户使用的应用列表。开发人员可从列表中选择 WordPress,并提供配置设置来将应用部署到他/她的新网站中。

clip_image006

 

clip_image008

数秒后,网站将在服务器中实例化,该服务器还将托管通过网站 PaaS 共享托管功能提供的其他租户网站。开发人员现在可从“使用者门户”监控、配置和扩展这一新创建的网站。

clip_image010

新创建的 WordPress 博客的 URL 现已显示于“仪表板”选项卡中。如有需要,开发人员可共享该网站的这一 URL,或者将其与自定义域名相关联。

clip_image012

语言选择

网站服务具有“开箱即用”的特性,提供了包括 ASP.net、Classic ASP、Node.js、PHP 和 Python 在内的大量语言支持。此外,如果开发人员偏好使用未包含于其中的语言,那么他或她可在其网站中提供一个用于运行应用的一般 FastCGI 处理程序。宽泛的语言支持已在 Windows Azure 网站中进行实践测试,借助这些支持,私有云现可提供大量语言选项菜单,以满足开发人员的需求。

数据库选择

除了语言和框架以外,Windows Azure Pack 还提供了 SQL 服务器和 MySQL 数据库,并且配置为网站配置和管理体验中一个必不可少的组成部分。由于不同语言通常拥有一个数据库首选项,因此通过一致的用户界面提供数据库选择可让开发人员专注于自然地构建应用。通过将这些数据库作为一项服务提供,开发人员能够专注于编码,而非数据库管理。

工具选择

此外,我们发现开发人员通常偏好使用一组特定的工具来开发和部署。对于.NET,我们面向 Visual Studio 和 WebMatrix 提供了同类最佳的支持。特别是 Visual Studio 用户能够轻松导入一个可进行一键部署应用的发布设置文件。对于 WebMatrix 用户,除了一键部署以外,其还可动态编辑网站,该功能可从服务管理门户中的一个按钮启动。深度工具集成可让网站成为一个高效托管现有的 ASP.NET 和 Classic ASP 网站的最佳场所。

Visual Studio 和 WebMatrix 都采用了 Web 部署发布端点。对于传统文件上载工具,FTP 和 FTP-S 都将受支持。

为了演示 Visual Studio 集成,我们将从在 Windows Azure Pack 和 Visual Studio 中创建一个网站开始说起。您将注意到我们会采用与您为向 IIS 或 Windows Azure 网站部署而构建应用的相同方式来创建网站。

clip_image014

创建了默认页面后,我们将下载发布配置文件,并在 Visual Studio 中配置发布。

clip_image016

接下来,我们将导入下载的发布配置文件。

clip_image018

最后,我们单击“发布”来部署应用。

clip_image020

片刻后,应用构建将完成,发布进程将开始。在 Web 部署同步了本地部署和远程部署之间的更改之后,应用就将上线。

clip_image022

 

推出 DevOps

随着 DevOps 成一种日益常见的现象,我们听闻很多开发人员要求提高其源控制系统和托管操作之间的集成程度。网站运行时能够托管一个 Git 源代码库的副本,以在私有云中进行快速迭代开发(包括回滚到以前版本的应用)。通过使用标准 Git 命令,用户无需特殊集成,即可将本地库中的更改推送到云端。因此,跨云克隆应用将成为一个简单的任务。

为了说明这一点,请查看在 Windows Azure 中创建应用,以及设置源控件部署是多么轻松。在这一示例中,我们开发了一个使用 Git 以 PHP 编写的基本“Hello World”应用。

clip_image024

接下来,在 Windows Azure Pack 中创建一个网站,并从源控件设置部署。在此,Git 工具可被用于将公有云中的网站克隆到私有云中。完成克隆后,应用可被重新部署到私有云中,而无需更改代码。请注意 Azure UI 之间的一致性,此外尽管面向私有云的部署各不相同,但是应用的行为却完全相同。

clip_image026

能够提供这一级别的传递功能得益于大量新功能和改进的功能,其中包括跨平台开发、零锁定、可扩展性、网站模式、水平/垂直扩展、速度和多数据中心支持等。我们将在本篇博文的接下来部分详细介绍这些功能及其应用。

跨平台开发

通过支持 FTP、FTPS、Web 部署和 Git 协议,以及服务管理门户,网站服务可让开发人员从包括 MacOS、Linux 和 Windows 在内的任何客户端操作系统在私有云中部署和管理应用。

零锁定

由于 Microsoft、企业或托管服务提供商均可托管网站运行时,因此开发人员能够自信地部署其应用。当开发人员需要将他或她的应用迁移到一个不同的云中时,他或她可迅速、轻松地完成这一操作,且无需更改代码。对于希望外包 Web 应用托管的客户而言,他们可利用 Windows Azure 或其他第三方托管服务提供商的托管服务。

可扩展

网站提供了高度的可扩展性。通过取消 Web 应用与单一服务器的关系,应用能够在任意时间点,在给定群集中的任何服务器上动态执行操作。这可让网站服务迅速响应不断变化的操作条件。当发生服务器故障时,请求将被平衡负载,并重新路由到场中正常运行的计算机中,以维持应用的可用性。当应用需要额外资源时,开发人员或 IT 专业人士能够迅速、轻松地向 Web 应用分配额外资源,以确保 SLA。

站点模式

网站服务提供了两种站点模式,即共享模式和保留模式。共享模式将从一个单一服务器上的多个租户运行站点,以最大程度地提高密度和降低运营成本。共享模式在开发或测试应用场景中运行良好。保留模式将为一个服务器池中的一个单一租户运行站点,以最大程度提高性能,并改善隔离。通常情况下,保留模式将被用于生产应用。由于执行模式间的切换将被分配给开发人员,因此他/她可迅速选择最适合其应用的执行模式。

水平扩展和垂直扩展

应用扩展策略通常将采用两种模式,即水平扩展和垂直扩展。网站运行时可支持两种模式;开发人员可在共享模式和保留模式中运行多个应用实例。此外,在保留站点模式内部,开发人员可通过在三种实例大小(小型、中型和大型)间选择,进而选择垂直扩展。通过提供多个扩展选项,开发人员和 IT 专业人士都可选择最优方式来托管其应用。

clip_image028

速度和灵活性

由于网站运行时关注提供一项完成的服务(Web 应用托管),应用配置和管理功能要快于基于基础结构的服务。由于应用作为配置元数据和内容的功能而存在,因此创建和发布活动将在数秒,而非数分钟内完成,所有这一切将提高工作效率,并缩短上市时间。

多数据中心支持

随着最终用户利用设备而逐步提高互联的程度,他们对性能的期待值也相应提高。跨国公司希望在全球部署 Web 应用。借助多云支持,服务管理员可向不同地区部署多个网站云。由于这些云将通过同一服务管理门户而被使用,因此开发人员可花费最少的时间和精力在全球轻松部署应用。

安全

由于 Web 应用通常面向 Internet,因此安全性是一个至关重要的设计点。在这一版本中,网站服务得以增强,以通过可靠的 SSL 支持提供一个安全的应用托管体验。此外,基于源的更新机制可让服务管理员确保网站云能够与最新更新同步。

SSL 和 HTTPS

由于网站间安全的信息传输至关重要,因此服务提供了两类 SSL 支持:

  1. 共享的 SSL 支持
    默认情况下,用户可使用共享的证书通过 SSL 访问所有创建的网站。这样一来,开发人员无需进一步交互,即可在网站创建后立即使用 HTTPS。
  2. 自定义的 SSL 支持
    对于使用自定义域的开发人员而言,他们可上载一个自定义的 SSL 证书来加密传输。运行时支持两类 SSL 绑定:
    • SNI SSL,其可提供简化的管理,并可让使用多个证书的多个站点驻留于同一 IP 地址中。SNI SSL 无需进一步配置,具可开箱即用。
    • IP SSL,其可最大程度地扩大与旧浏览器的兼容性。运行时包含内置的功能来跨前端服务器和上游负载平衡器安排 IP SSL。

clip_image030

始终保持最新状态

网站云中包含大量第一方和第三方间的依存关系,以交付统包操作。然而,初始部署仅是整个服务生命周期中的一小部分。通过将 Microsoft Update 与我们基于源的配置进程相集成,Microsoft 能够向 Microsoft 和非 Microsoft 软件部署更新。通过让云始终保持最新状态,Microsoft 有助于您维持一个安全、高度兼容的应用托管环境。

其他 R2 功能

随着 Windows Server、System Center 和 the Windows Azure Pack 2012 R2 版本的推出,我们可确保跨服务器操作系统、管理工具和云运行时开启卓越的全新应用场景。因此,我们推出了几个全新的功能,这些功能将为开发人员提供多个激动人心的方式来构建创新型应用:

  • WebSocket 协议支持
    随着移动设备和交互式应用的普及,我们发现新的应用模型正不断涌现。传统的 Web 应用采用“拉取”模式,浏览器将从服务器拉取信息,而现在我们发现有越来越多“推送”模式的需求,让服务器能够同时向大量客户端推送信息。WebSocket 协议(现已在 Windows Server 网站的 R2 版本中推出)可让开发人员使用全新的通信机制构建丰富、交互式的应用。

  • 64 位工作进程
    当开发人员构建逐渐复杂的 Web 应用时,其通常需要大量内存空间。同时,许多开源语言和框架已面向 32 位进程优化。在这一版本中,我们可让租户选择 32 位或 64 位工作进程来最大程度地满足其需求。

  • IPv6 支持
    随着与 Internet 连接的设备的数量与日俱增,IPv4 地址不足所引发的问题也日益凸显。网站 R2 版本将以透明的方式实施 IPv6 支持,让最终用户通过 IPv4、IPv6 或 IPv4 和 IPv6 轻松访问托管的网站。这一支持不仅包括 HTTP 流量,而且还包括通过 HTTPS 加密的流量。

性能增强

开发人员始终在探寻提高应用性能的方式,特别是不需要更改代码的优化。对于 .NET 开发人员而言,最常见的性能问题是针对空闲应用的首个请求。我们将这称为“冷启动”问题。借助 R2 版本,我们不需要关闭空闲网站,而是寻呼不活动的网站。寻呼不活动的网站需要将不活动的数据从内存移动到磁盘。由于应用可从磁盘被迅速寻呼回内存,而无需重新编译,因此这将通过降低冷启动事件的频率而大幅提高性能。我们还优化了网站云来提高无法避免应用冷启动时的性能。

运行云扩展服务充满挑战,我们接受了从运行 Windows Azure 的过程中所吸取的教训,并将这些教训融入到了 Windows Azure Pack 中。首先,我们构建了一个全分布式的体系结构来提高安全性,并最大程度地增加可扩展性。接下来,我们简化了针对场操作和服务器配置的可视性。最后,我们简化了在网站云中构建管理资源消耗的计划的过程。

体系结构

clip_image031

正如您可在以上体系结构图中看到的,网站服务使用了多个角色来提供服务。每个角色都将起到特定的作用,而这些问题相互分开,以确保高度安全。网站角色包括:

  • 管理服务器
    这是面向服务管理 API 的 REST API 资源提供程序端点。所有来自服务管理 API 的配置和管理请求将通过管理服务器,包括网站配置、扩展和配置任务。
  • 控制器
    控制器作为网站云的“大脑”,将管理软件安装和所有服务器的配置。此外,控制器将执行运行状况检查,并修复操作以维持场的可用性。
  • 前端
    运行应用请求路由,前端将基于云中网站的运行状况和配置,把应用请求动态路由到场中不同的 Web 服务器。
  • Web Workers
    这些服务器将执行客户代码。由于网站配置将存储于运行时数据库中,而网站内容将存储于文件服务器中,因此应用将能够在场中的任意辅助进程中运行。基于辅助进程所支持的执行模式,辅助进程可分为四类(共享、小型保留、中型保留或大型保留)。此外,源控制操作将通过在辅助进程角色上运行的 Git 得以执行。
  • 发布服务器
    用于应用部署的 FTP、FTPS 和 WebDeploy 端点。
  • 文件服务器(可选)
    这将存储网站内容和自定义 SSL 证书。网站安装程序可能部署该服务器来进行开发/测试部署,或为生产部署而向外部提供该服务器。
  • 运行时数据库(外部)
    存储网站云配置和租户网站配置。集中存储配置可动态配置和管理网站,同时允许进行大规模的云部署。

云观点

在构建网站运行时和用户界面时,我们希望为服务管理员提供相同的“单一虚拟管理平台”。我们研究了云管理的日常活动,发现一共存在三大类活动:服务器配置、云运行状况/容量管理,以及云故障排除。为了加速这些进程,我们创建了一些简单的方式来在浏览器中完成这些任务。

云端一览

首先,我们为所有网站角色创建了一个统一视图,这可让服务管理员查看三个关键元素:

  • 网站云中参与的所有服务器
  • 这些服务器的运行状况
  • 不同角色实例的使用情况

通过将这些信息整合到一个单一视图中,IT 专业人士能够迅速确定是否有足够容量,或者服务运行水平是否下降。

clip_image033

 

受管的配置

如果云需要额外的容量,那么管理员能够迅速添加额外的角色实例。网站可充分自动化地将运行时部署和配置到新的计算机中,以无缝解决容量限制问题。为了说明这一功能,我们将演示使用服务层小型保留实例配置额外的小型保留实例,以向开发人员提供额外容量的方式。

首先,单击“添加角色”按钮,然后选择适当的角色类型 (Web Worker)。

clip_image035

接下来,向服务器提供待添加到云的计算机的名称。最后,指定辅助进程类型。

有了计算机名称和角色类型,我们无需进一步干预即可完成设置和配置过程。

clip_image037

计划/加载项的创作

服务管理员还需要定义一个服务目录来管理资源消耗,以及对云使用实施退款/计费。为了推动这一过程,网站服务将提供一个可靠的体验来定义基本服务包(计划)和增量功能(加载项)。获得这一灵活性之后,管理员能够创作一个全面的目录,以符合不同开发人员的不同 SLA 的要求。

创建计划

我们首先从服务管理员仪表板中,选择“新建”,然后选择“计划”。

接下来,服务管理员必须提供计划的名称。

clip_image039

然后,他/她必须选择哪项服务将包含于计划中,并确定针对各项服务的哪个云将包含于计划中。

clip_image041

现在,管理员可向包含于计划中的各项服务自定义配额。我们将为网站服务编辑配额。

clip_image043

当这一步完成后,管理员可定义计划的资源消耗限制。诸如 CPU 时间、内存、带宽和存储等典型资源类型都将包含其中。此外,还可启用或禁用某些特定功能,包括自定义域、SSL、WebSocket 和 64 位支持等。

clip_image045

通过自定义计划和加载项,网站能够让服务管理员严格控制服务使用者使用服务的方式。这将出色控制通过服务目录提供的服务,并管理退款和计费解决方案所使用的使用报告。

* * *

 

 

我们从头开始构建了 Windows Azure Pack 中的网站服务,以向开发人员提供一个灵活、可扩展、安全的平台来托管现代应用。

由于网站采用与 Windows Azure 服务相同的源代码构建,因此 Windows Azure Pack 将提供与 Microsoft 运营的 Windows Azure 网站服务高度一致的体验。对于管理员而言,我们将利用从运营云的过程中所获取的知识来提高运营效率。

立即来试用一下。您可在此处访问相关资料和文档。

- Brad

后续步骤