0

因此,我的应用程序由几个单独的 .NET 组件组成,这些组件都在 Azure 中运行。为了让您了解所涉及的内容:

  • 作为 Azure 网站运行的主要 ASP.NET MVC5/Web API 2 REST 服务(我认为他们将这些重命名为 Web 应用程序?)。
  • 主要 REST 服务使用的 SQL 数据库。
  • 主 REST 服务与之通信的另一个内部 Web API REST 服务作为 Azure 网站运行。
  • 内部 Web API REST 服务使用的 Azure 存储表。
  • 3 个预定的作业(只是 .NET exe)在后台工作并与主 SQL 数据库对话。

所有这些现在都在 Azure 中运行良好。我的问题是自动化部署和配置。

现在都是手动的。我右键单击并从 Visual Studio 发布这两个 Web 应用程序。我建立并通过 FTP 建立网络作业。数据库和 Azure 存储已经存在,所以我不必重新设置它们。

但是说发生了一些不好的事情——数据中心出现故障或其他情况。我希望能够以最小的努力启动我的应用程序(包含所有这些组件)的新版本。

我对 Azure 的世界还很陌生,所以我不知道从哪里开始。我有哪些选择?

4

3 回答 3

1

您希望在 Azure 中实现自动化部署。我建议使用ElasticBox来解决它。

为了实现自动化,您需要为需要部署的每个不同服务或组件创建一个盒子(盒子是用于定义在任何云中部署服务或应用程序的安装和配置的抽象单元)。

还可以基于 VM 实例、VM 角色或 Worker 角色创建盒子,还可以自动部署 Microsoft SQL Server。假设 Azure 提供的几乎所有选项。

然后完成这些框(可以自定义并重用之前手动安装的旧代码),您可以部署多个虚拟机,几乎无需手动干预,只需单击一下或使用一些参数的命令。

一个框包括部署所需的变量(您可以为这些变量设置默认值)和旧脚本(在这种情况下可能是 PowerShell,但它们可以是 bash、python、perl、java 或任何其他语言)

当你部署你的盒子时:

  • 在您选择的位置并使用您预配置的 Azure 配置创建云服务或 VM。它负责在您的 Azure 提供商或市场上任何其他云提供商附近配置 vm。

  • 使用您指定的变量安装、配置文件并执行您定义的 SQL 或 Web 服务。

与服务交互的其他方式:

  • Jenkins 的插件可用于构建 CI 环境,将您的代码更新或拉取请求与 Azure 或任何其他公共云中的自动部署连接起来。

  • 命令行工具,可以对你的盒子进行虚拟机部署,你也可以用它管理你部署的虚拟机实例。

于 2015-05-29T14:44:59.720 回答
1

Azure 资源管理器(ARM) 旨在准确解决您描述的问题。

基本思想是您使用 JSON 模板来描述您的所有服务。然后,您可以将该模板提供给 ARM,它将创建模板中定义的服务。如果您想进行更改,而不是强制执行(通过 powershell 或在门户中手动),只需更新您的模板,将其传递给 ARM,它将进行任何必要的更改以使服务与您的模板匹配。

一些资源:

于 2015-05-29T17:42:34.763 回答
0

我认为您正在寻找可以帮助您处理部署到 Windows Azure 服务器的东西。如果是这种情况,我建议查看Jenkins CI。在让 Jenkins 和 Azure 协同工作方面,您可以查看许多在线资源。

于 2015-05-28T18:13:23.147 回答