如何将具有多个组件的应用程序部署到Azure
本文关键字:应用程序 部署 Azure 组件 | 更新日期: 2023-09-27 17:51:05
所以我的应用程序是由几个独立的。net组件组成的,它们都在Azure中运行。让你了解一下所涉及的内容:
- 一个主ASP。. NET MVC5/Web API 2 REST服务作为Azure网站运行(我认为他们将这些重命名为Web应用程序?)。
- 主REST服务使用的SQL数据库。
- 另一个内部Web API REST服务,主REST服务与它对话,它作为Azure网站运行。
- 内部Web API REST服务使用的Azure存储表。
- 3个预定的作业(只是。net exe),在后台工作,也与主SQL数据库通信。
所有这些现在都在Azure中运行得很好。我的问题是自动化部署和配置。
现在都是手动的。我右键单击并从Visual Studio发布两个web应用程序。我创建并上传网络作业。数据库和Azure存储已经存在,所以我不必重新设置它们。
但是如果发生了不好的事情——数据中心坏了什么的。我想能够旋转我的应用程序的新版本(与所有这些组件),准备去与最小的努力。
我对Azure的世界很陌生,所以我不确定从哪里开始。我有什么选择?
您希望在Azure中实现自动化部署。我建议使用ElasticBox来解决它。
要实现自动化,您需要为需要部署的每个不同的服务或组件创建一个盒子(盒子是用于定义在任何云中部署服务或应用程序的安装和配置的抽象单元)。
还可以基于VM实例、VM角色或Worker角色创建盒子,并自动部署Microsoft SQL server。比如说Azure提供的几乎所有选项。
然后完成这些盒子(可以自定义和重用以前手动安装的遗留代码),您可以部署多个虚拟机,几乎不需要人工干预,只需单击一下或使用带有一些参数的命令。
一个方框包含部署所需的变量(您可以为这些变量设置默认值)和遗留脚本(在本例中可能是PowerShell,但它们可以是bash、python、perl、java或任何其他语言)
当你部署你的盒子:
-
在您选择的位置使用您预配置的Azure配置创建云服务或VM。它负责在您的Azure提供商或市场上任何其他云提供商中配置vm。
-
使用您指定的变量安装、配置文件并执行您定义的SQL或Web服务。
与服务交互的其他方式:
-
Jenkins' Plugin可以用来构建一个CI环境,连接您的代码更新或Pull Request与Azure或任何其他公共云的自动部署。
-
命令行工具,使您的机器的VM部署,也可以管理您的部署VM实例与它。
Azure资源管理器(ARM)旨在解决您所描述的问题。
基本思想是使用JSON模板来描述所有的服务。然后,你可以将该模板交给ARM,它将创建模板中定义的服务。如果你想做一个改变,而不是强制地做(通过powershell或在门户中手动),只需更新你的模板,将其传递给ARM,它会做出任何必要的改变,使服务匹配你的模板。
一些资源:- ARM在MS Ignite 2015的演讲
- ARM模板语言参考 GitHub上的快速入门模板
- Azure资源管理器-查看现有资源的ARM模板
- Visual Studio中的资源组部署项目
我想你正在寻找一些东西来帮助你处理部署到windows Azure服务器上。如果是这样的话,我建议调查一下Jenkins CI。关于如何让Jenkins和Azure协同工作,网上有很多可用的资源。