我们有一个由.NET前端和SQL后端组成的web应用程序。我们也有一个移动应用程序连接到.NET前端使用WebAPI。目前,我们已经在美国的物理服务器上托管了应用程序。我们有来自世界各地的多个客户端从web浏览器和移动设备登录到应用程序。
我们有不少客户要求提供两种方案:
我们在前端代码中使用Github进行更改管理。部署网站代码相当容易,因为我们已经构建了一个同步实用程序,允许我们从Git存储库更新生产服务器。但是,从我们的测试服务器更新SQL生产服务器更像是一项手动任务(模式、存储过程等等)。我知道外面有软件(redgate,等等)这允许使用SQL进行类似的更改管理,但这不是我的问题。
大多数公司如何处理从多个地理位置托管应用程序的问题,考虑到一些客户端希望将其数据仅托管在一个位置(出于安全原因),而其他客户端则希望将其数据托管在一个、多个或所有共享的位置,以便能够连接到最近的服务器。作为一个补充细节,我们经常对代码进行更改(每天),因此将代码和SQL更改推到多个隔离主机环境中,并确保所有内容都是同步的,这有点麻烦。
如前所述,我们目前托管在数据场中的物理服务器上。使用AWS、Azure等会使这项任务变得更容易吗?
发布于 2016-11-15 21:29:41
我认为你真的面临着两个问题:
您希望您的应用程序位于多个位置,这是云提供商(如Azure或AWS )将提供帮助的地方,您可以在多个区域部署,而无需在那里存在。您可以使用内置的负载平衡工具在单个区域中实现故障转移,也可以使用Azure流量管理器等工具跨越多个区域。您可以根据流量和负载平衡配置文件将用户分配到单个区域或多个区域。
第二个问题是如何部署应用程序,特别是在多个区域中有很多实例。这不是一个真正的云问题,而是一个工具和过程问题。如果您打算扩展到多个区域和多个区域中的多个实例,那么流程的任何部分的手动部署都不会再减少它。您需要能够安全和快速地部署到所有区域(或某些区域),并且知道它们都将是相同的,特别是在负载平衡的情况下。实现这一目标的唯一方法是查看您的流程,以消除复杂性,或者使用工具来处理它。这里有手动SQL部署的解决方案,您可以提到Redgate,但是还有其他的解决方案,visual甚至有一个数据库版本控制工具。
https://serverfault.com/questions/815066
复制相似问题