Azure SQL 部署选项
在 Azure SQL 平台范围内,有许多部署选项和选择可以考虑。 这些选项让你能够灵活地获取所需的功能以及灵活地付费。
本单元介绍在选择各种 Azure SQL 部署选项时需要考虑的一些注意事项。 你还将了解其中每个部署选项的技术规范。 此处讨论的部署选项包括虚拟机上的 SQL Server、Azure SQL 托管实例、Azure SQL 数据库、Azure SQL 托管实例池和 Azure SQL 数据库弹性数据库池。
Azure 虚拟机上的 SQL Server
虚拟机 (VM) 上的 SQL Server 是在 Azure VM 中运行的 SQL Server 版本。 它就是 SQL Server,因此,尽管 Azure 可以帮助自动执行备份和安全修补,但你的所有 SQL Server 技能都应能够直接应用。 Azure VM 上的 SQL Server 被称为基础结构即服务 (IaaS)。 你负责更新和修补 OS 及 SQL Server(关键 SQL Server 安全修补程序除外),但你可以访问 SQL Server 的全部功能。
若要以最佳方式部署和管理 VM 上的 SQL Server,需考虑以下注意事项:
从预安装的 Azure 库映像部署特定 SQL Server 和操作系统版本。 如果在 Azure VM 上自行安装 SQL Server,则可以利用 SQL Server IaaS 代理扩展来灵活地获得许可并启用自动备份和更新。
考虑内存优化或存储优化 VM 大小,以实现最佳性能。
使用正确的存储配置,并利用 Azure Blob 存储读取缓存。
使用 Azure 虚拟网络将 VM 集成到本地网络。
利用自动备份、到 Azure Blob 存储的备份以及与 Azure 备份的集成。
Azure 高级文件共享支持 Always On 故障转移群集实例。
Always On 可用性组受到支持,包括 Cloud Witness。
世界各地的公司在 VM 上使用 SQL Server。 其中一个示例是 Allscripts。 Allscripts 是一家领先的医疗保健软件制造商,为医生、医院、健康计划和制药行业提供服务。 为了频繁地转换其应用程序并安全可靠地托管它们,Allscripts 想要快速迁移到 Azure。 在短短三周内,该公司就通过 Azure Site Recovery 将在大约 1,000 个 VM 上运行的数十个已购买的应用程序迁移到了 Azure 中。
IaaS 与PaaS
VM 上的 SQL Server 被视为 IaaS。 Azure SQL 平台中的其他部署选项、Azure SQL 托管实例和 Azure SQL 数据库都是平台即服务 (PaaS) 部署。 这些 PaaS Azure SQL 部署选项包含一个完全托管的数据库引擎,该引擎可自动执行大部分数据库管理功能,例如升级、修补、备份和监视。 下面是 SQL 托管实例和 SQL 数据库的一些关键功能:
业务连续性使你的业务在面临中断的情况下仍能继续运行。
高可用性,可确保数据库在 99.99% 的时间内正常运行, 无需担心维护或故障时间问题。
自动备份,创建自动备份并使用 Azure 读取访问异地冗余存储 (RA-GRS) 提供异地冗余。
长期备份保留让你可以将特定完整数据库存储最长 10 年时间。
异地复制,通过在相同或不同的数据中心(区域)中创建数据库的可读副本实现。
可伸缩性让你可轻松添加更多资源(CPU、内存、存储),无需进行长时间预配。
网络安全功能,保护你的网络数据。 这些功能包括用于限制连接的防火墙、用于确保数据不向 Internet 公开的 Azure 专用链接,以及用于与本地环境连接的虚拟网络集成。
“高级安全”可检测数据库中的威胁和漏洞,并使你能够保护数据。
自动优化,可分析工作负载。 它提供了可以优化应用程序性能的建议:添加索引、删除未使用的索引以及自动修复查询计划问题。
通过内置监视功能,可以深入了解数据库和工作负载的性能,并有助于对性能问题进行故障排除。
内置智能,可自动识别工作负载中的潜在问题,并提供建议以帮助修复这些问题。
无版本数据库服务
IaaS 和 PaaS 之间的另一个显著区别是“无版本 SQL”。 与绑定到特定 SQL Server 版本的 IaaS 不同,SQL 数据库和 SQL 托管实例是无版本的。 SQL Server 引擎代码库的主要“分支”为 SQL Server 2019、SQL 数据库和 SQL 托管实例提供支持。
尽管每隔几年就要发布一次 SQL Server 版本,但 PaaS 服务允许 Microsoft 持续更新 SQL 数据库和实例。 Microsoft 会适当推出修补程序和功能。 作为服务的使用者,你无法对这些更新进行控制,并且 @@VERSION
的结果不会与特定 SQL Server 版本保持一致。 但是无版本 SQL 允许对基础 OS 和 SQL Server 进行无忧安全修补,并且 Microsoft 可以为你提供最新更新。
随着新功能的开发,部分客户可以在特定功能公开发布前获得其访问权限。 这些新功能随后会在公共预览版中提供。 公共预览版允许每个人访问新功能,但所提供的支持通常有限,并经常打折。
SQL 托管实例
SQL 托管实例是 Azure SQL 的 PaaS 部署选项。 它可为你提供 SQL Server 实例,但省去了许多管理 VM 的开销。 SQL 托管实例提供 SQL Server 中可用的大多数功能。 如果客户想要使用实例范围内功能,并且想要在不重新架构应用程序的情况下迁移到 Azure,则此选项是理想选择。 实例范围内功能是绑定到 SQL Server 实例的功能,而不是绑定到 SQL Server 实例中的数据库的功能。
SQL 托管实例的实例范围内功能包括 SQL Server 代理、Service Broker、公共语言运行时 (CLR)、数据库邮件、链接服务器、分布式事务(预览版)和机器学习服务。 SQL 托管实例允许访问实例范围内的功能,但你不必担心,你也无权访问 OS 或下面的基础结构。
让我们看看另一个行业场景,其来自 Komatsu。 Komatsu 是一家生产和销售重型建筑设备的制造公司。 该公司使用多个大型机应用程序来处理不同类型的数据。 Komatsu 希望合并这些应用程序以获取整体视图。 此外,Komatsu 还希望采用某种方法来减少开销。 由于该公司使用了大量 SQL Server 外围功能,因此 IT 决策者选择迁移到 Azure SQL 托管实例。 他们成功地平稳迁移了约 1.5 TB 数据,并获得了自动安全修补和版本更新、自动备份、高可用性以及管理开销减少等好处。 迁移后,Komatsu 报告显示成本降低了约 49%,性能提升了约 25-30%。
SQL 数据库
SQL 数据库是 Azure SQL 的 PaaS 部署选项,可将 OS 和 SQL Server 实例从用户那里抽离。 借助此部署选项,你可以获取数据库并立即开始开发应用程序。 SQL 数据库也是唯一支持需要无限数据库存储(超大规模)和自动缩放不可预测工作负载(无服务器)的方案的部署选项。 SQL 数据库具有业界最高的可用性 SLA。 它提供与监视和性能相关的其他智能功能,部分原因是 Microsoft 管理实例。
AccuWeather 是使用 SQL 数据库的一个很好的例子。 AccuWeather 已对天气进行超过 55 年的分析和预测。 该公司希望访问 Azure 的大数据、机器学习和 AI 功能。 AccuWeather 希望将重点放在生成新模型和应用程序上,而不是放在管理数据库上。 该公司选择将 SQL 数据库与其他服务(例如 Azure 数据工厂和 Azure 机器学习)配合使用,以快速轻松地部署新的内部应用程序以进行销售和客户预测。
弹性数据库池
现在,你已经了解 Azure SQL 中的三个主要部署选项:虚拟机、托管实例和 SQL 数据库。 对于 SQL 数据库和 SQL 托管实例,如果有多个实例或数据库,则还有其他选项。 这些选项称为弹性数据库池。 借助弹性数据库池,你可在多个实例和数据库之间共享资源并优化成本。
借助 SQL 数据库弹性池,你可以在一组预配的 SQL 数据库资源中托管许多数据库。 此选项是软件即服务 (SaaS) 应用程序或提供程序的理想选择,因为可以通过简化方式管理和监视许多数据库的性能。
SQL 托管实例池允许托管多个托管实例并共享资源。 你可以预配置计算资源。 这样做可减少总体部署时间,从而使迁移更加轻松。 你还可以在实例池中托管较小的托管实例,而不仅仅是在单个托管实例中托管。 此产品/服务目前提供公共预览版。
Paychex 公司是使用 SQL 数据库弹性数据库池的一个很好例子。 Paychex 是一家人力资本管理公司,为美国和欧洲超过 65 万家企业提供服务。 Paychex 需要一种方法来为每个客户分别进行时间和支付管理并削减成本。 该公司选择了 SQL 数据库弹性数据库池,这可以简化管理并在不同的数据库之间实现资源共享,从而降低成本。
Azure SQL 部署选项
下图汇总了 Azure SQL 的部署选项。 接下来,你将了解如何部署和配置 Azure SQL,以及这种方式与部署和配置 SQL Server 有何不同。