我们目前有一个.Net MVC web应用程序,它有一个SQL server后端数据库和两个web服务,定期在数据库中执行一些计算任务。
我正在考虑为云打包这个应用程序,客户端会将它“实例化”为一个完整的包。这个过程将自动分配运行整个事务所需的部分,即站点、数据库和其他两个服务。
我读了很多关于azure的文章,我很难了解整个azure开发、测试和部署过程,然后升级和应用对现有部署的更改。我习惯于控制所有的棋子。首先,我喜欢把所有的东西都放在我的工作站上。我们使用git,并且有自己的自管理存储库。我觉得在远程云计算机上有一个开发环境是很奇怪的。我认为源代码和数据(数据)一起是公司最有价值的资产之一。
在当前的环境中,我们手动构建应用程序(我知道它远非理想,我们将自动完成这个过程,目前我并不担心),我们只需复制旧版本顶部的新版本即可部署。我们还进行备份,重新编译数据库存储过程,并应用脚本来按摩数据、更改表结构或添加索引等等。在升级完成时,会分配一些停机时间。在部署到生产环境之前,我们将部署到集成和测试环境。
这一切是如何转化成一种蔚蓝的建筑?
这是我的心理模型:
我认为这个应用程序可以有一些小的停机时间。我意识到其他应用程序可能没有这种奢侈,但我现在不想去那里。
总之,这在蔚蓝的世界上可行吗?应该有什么不同的做法吗?在这种模式下,如何收费呢?
谢谢
更新:我正在考虑这个问题,我想另一个模式是构建一个完整的应用程序,允许用户注册该服务(就像电子邮件应用程序),并相应地分配资源。我想在这种情况下,充电模式更容易。缺点是,这个应用程序必须设计成多租户,而且它也有自己的一套挑战。在这种情况下,我仍然不清楚整个开发->测试->生产周期是如何工作的。
发布于 2016-01-22 13:18:55
Azure的部分问题在于,通常有几种方法可以实现相同的结果--在网站的情况下,您的选择范围从achieve到虚拟机。
最好将您的解决方案部署为App -基本上,它曾经被称为Azure网站,听起来像两个Web作业以及一个SQL数据库。
为了使模型保持简单(即与当前的使用相一致),您可以拥有任意数量的模型(在合理的范围内),并在Azure App服务和SQL服务器(弹性数据库池)中进行扩展。
有几个部署模型-在这里详细介绍:将应用程序部署到Azure应用程序服务和类似地,您可以连接到Azure实例,与任何其他方式一样,以执行所需的操作。因此,基本上您可以做同样的事情,即使用FTP复制文件,或者按照相同的思路复制更有创造性的文件(OneDrive/Dropbox)。您可能会以web部署而告终。您绝对不必使用git部署(实际上您可能不想.)
我玩得还不够自信,但你可以对蓝色资源进行分组--我猜这可以在每个客户身上完成,也可以用于测试和qa实例。
如果是我..。我会考虑构建/部署过程--自动化,开始使用构建服务器,让构建服务器生成用于部署的包,通过测试和集成促进这些包,然后部署到客户端实例。同样地,看一下模式更改的自动化--从根本上说,这意味着自动化运行脚本,并确保您按照正确的顺序运行它们,并且每次只运行一次(这基本上是一个解决了的问题,有一些工具.)
在所有这些自动化中,你是朋友-自动化,==可重复性,(主要是)消除了压力。像AppVeyor (构建服务器)和Octopus (一个部署工具)这样的工具理解Azure,并会有所帮助。
https://softwareengineering.stackexchange.com/questions/308035
复制相似问题