我们在专用服务器上托管了多个网站,其配置如下
现在我几乎没有关于迁移到Azure环境的问题。
首先,我最关心的是会话状态,我想迁移到Azure而不对代码进行任何更改,除非对web.config进行更改吗?
第二我们使用MS SQL SERVER 2012作为数据库,并且我们必须使用Azure SQL数据库,我相信它与MS SQL SERVER不同,我可以使用Azure SQL数据库,或者我仍然应该使用到MS SQL SERVER,因为我在此上运行应用程序并迁移到Azure数据库可能会产生问题?
第三,让我们说我选择网络+移动 - >应用服务标准包(最多附带10个实例)这些实例是什么?个别会话是否会始终连接到同一个实例?
Forth :我有大约20个数据库,其中一个约为6GB&其他数据库大约200MB-700MB,如果我使用Azure SQL数据库,我应该使用哪种服务用于数据库
或虚拟机上的MS SQL SERVER是更好的选择,因为我可以运行基于SQL Server的会话
第五:磁盘空间,让我们说我选择App Service“S2:2核心,3.5 GB RAM,50 GB存储,$ 0.200”,50GB磁盘空间包括操作系统或空间分配给我们上传的文件?
第六:我们的一些应用程序用于向iOS和&发送推送通知。 Android设备我不确定它们是否可以在Azure环境中工作,因为它们需要打开某些端口,并且还需要在服务器上安装某种证书。
我问了太多问题因为我没有明确MS聊天,因为他们刚刚通过链接,这可能会让人感到困惑,我希望我能在这里明白
答案 0 :(得分:3)
问:首先,我最关心的是会话状态,我想迁移到Azure而不对代码进行任何更改,除非对web.config进行更改吗?
如果您的一个问题是代码重构,那么您应该选择的模型是Infrastructure-As-A-Service。在此模型中,无需更改代码,因为Azure上的基础结构可能与您在其中配置虚拟机以运行Windows Server,SQL Server和IIS的内部部署类似。软件版本都是您的选择,没有任何限制。只要在购买新软件许可证时,Microsoft产品生命周期中仍然支持软件版本。
如果您希望自己的Web应用程序现代化,Azure App Service可以成为一个很好的选择目的地。 Azure App Service可以运行针对.NET 4.0 framewor编译的代码。 Azure应用服务中无法保证 InProc会话状态,因此如果使用Azure应用服务,则需要查看替代方案,例如Azure Redis Cache。
问:其次我们使用MS SQL SERVER 2012作为数据库,我们必须使用Azure SQL数据库,我相信它与MS SQL SERVER不同,我可以使用Azure SQL数据库,还是我应该使用MS SQL SQL SERVER,因为我在此上运行应用程序并迁移到Azure数据库可能会产生问题吗?
如果没有影响分析以及数据模型的复杂程度,很难说Azure SQL数据库是否与您的数据库兼容。幸运的是,Microsoft提供了一个名为Data Migration Assistant(DAM)的工具,可帮助您对Azure SQL数据库执行数据库兼容性分析。此链接为您提供有关DAM(https://docs.microsoft.com/en-us/azure/sql-database/sql-database-cloud-migrate)的更多详细信息。从SQL Server迁移到Azure SQL数据库将在高可用性,灾难恢复和可伸缩性方面获得更多好处。通过服务器管理进行管理工作,显着减少了操作系统修补。使用Azure VM中的SQL Server,迁移成本要好得多,因为您只需要移动和提升(配置VM,执行数据库分离/附加或其他备份/恢复方法)。
问:第三,让我们说我选择网络+移动 - >应用服务标准包(最多附带10个实例)这些实例是什么?个别会话是否会始终连接到同一个实例?
不,会话不会在保证模式下维护。选择Azure App Service时,Web应用程序将在运行Windows Server和IIS的虚拟化服务器上运行。术语"实例"是服务器实例。 Azure App Service通过在多个实例之间分配计算资源来帮助您处理扩展,以确保您的应用程序不会因内存和资源不足而崩溃。第一次配置Web应用程序时的默认值为1,但实例数量是可配置的。
问:第四:我有大约20个数据库,其中一个约为6GB&其他数据库大约200MB-700MB,如果我使用Azure SQL数据库,我应该使用哪种服务用于数据库 单个数据库还是弹性? 我可以在弹性模式下创建多个数据库吗? 让我们说如果我选择" 100个eDTU:每个池包含10 GB存储空间,每个池200个DB,每小时0.20美元"我将为弹性池中的所有数据库提供总共10GB的空间,每个池的数量以及我将在此选项中获得的池数。 或者虚拟机上的MS SQL SERVER是更好的选择,因为我可以运行基于SQL Server的会话
选择单个数据库或弹性取决于数据库的性能和峰值负载。当您可以指定DTU(数据事务单元)以获得可预测的性能时,单个数据库用于独立数据库。而弹性池最适合管理池中的数据库集。弹性池是不可预测的性能和使用的选择。
在您的情况下,我建议使用弹性池来挽救性能。无论池中特定数据库需要多少DTU,弹性池都允许您为池设置eDTU。弹性池可以深入监控和执行性能分析,为您提供每个数据库性能的洞察力和整体情况。
说到游泳池,您不必担心每个数据库的存储空间。您也不必担心可以存储在池中的数据库数量。假设您有20个数据库,则只需要一个池。 您需要的eDTU可以通过本网站http://dtucalculator.azurewebsites.net/计算得出。只需运行SQL Server(运行本地数据库)网站上的一个给定脚本来捕获性能指标,然后将Excel文件上传到网站。它会给你一个数字。例如,结果表明共有20个数据库需要100个eDTU。然后,您只需创建一个弹性池并为池调整100 eDTU。但是,如果使用Elastic Pool Basic,每个池只有10 GB,这对于120 GB(20 * 6 GB)来说是不够的,那么您需要Elastic Pool Standard for 100 eDTU才能达到最大750 GB。请注意,您可以选择1,200 eDTU的基本计划,以达到最大156 GB。但是,从不推荐这种方式,因为存储空间比eDTU便宜得多。
简而言之,根据上面的草稿信息,我建议选择100 eDTU的弹性池标准计划。如果不满足20个数据库的性能,可以增加eDTU的数量。调整eDTU编号时不需要数据库停机时间。
仅创建一个游泳池并不是我的推荐。这取决于您的数据库工作负载。例如,在20个数据库中,有5个数据库对ERP或关键业务系统来说是繁重的工作负载,而其余数据库只是普通数据库。在这种情况下,您需要两个弹性池。设置了一个具有大量eDTU的池,另一个池具有较少的eDTU。
问:第五:磁盘空间,让我们说我选择App Service" S2:2内核,3.5 GB内存,50 GB内存,$ 0.200",是50GB磁盘空间包括分配给我们上传的文件的操作系统或空间?
对于Azure App Service,不计入操作系统。直接向应用程序的空间提供50 GB的存储空间(存储映像,编译的DLL,视频,库..)
问:第六:我们的一些应用程序用于向iOS和&发送推送通知。 Android设备我不确定它们是否可以在Azure环境中工作,因为它们需要打开某些端口,并且还需要在服务器上安装某种证书。
Azure通知中心可以帮助您实现推送通知。 Azure Notification Hub允许您使用各种平台的证书(例如iOS来管理设备。如果您熟悉iOS https://docs.microsoft.com/en-us/azure/notification-hubs/notification-hubs-ios-apple-push-notification-apns-get-started,这是一个示例参考。如果您需要,Azure Notification Hub还支持基于令牌的APNS 。
对于每种情况,请提供更多详细信息(例如您的移动方案)以及具体问题(如果可能),以便我和此处的人员详细说明。