何时使用 Azure Database for MySQL

已完成

在本单元中,你将了解如何确定 Azure Database for MySQL 是否适应应用程序体系结构和开发过程。 作为开发人员,专注于核心应用程序,而不是数据库管理的复杂性(例如 VM 特征、版本控制和安全配置)可以缩短开发周期。 作为托管服务,Azure Database for MySQL 通过处理复杂的数据库管理任务实现此重点的切换,从而使开发人员将精力投入到实现高效工作和创新目标中。

对于需要 Azure Database for MySQL 灵活服务器不支持的特定 MySQL 版本的场景,或者必须对数据库环境进行更有力控制的场景,Azure VM 上运行的 MySQL 提供了有价值的替代方法。 此基础结构即服务 (IaaS) 解决方案允许对数据库进行详细的自定义和管理,使其适用于依赖特定 MySQL 功能的专用应用程序或旧应用程序。

让我们根据关键决策标准(如管理工作量、成本和高可用性选项)详细评估这些选项,以确定最适合你的特定需求的选择。

决策条件

若要确定是使用 Azure VM 上的 MySQL 还是 Azure Database for MySQL,必须了解每个选项在管理工作量、成本和高可用性选项方面如何与组织需求保持一致。 下表显示可了帮助指导决策的详细比较:

条件 Azure Database for MySQL Azure VM 上的 MySQL
管理工作 需要最少的管理工作量,因为它是完全托管的服务。 Azure 处理所有维护、更新和备份,让开发人员能够专注于应用程序开发而不是数据库管理。 尽管该服务是完全托管的,但你仍可以灵活地控制数据库管理功能、配置设置和计划的维护时段。 需要大量的管理工作,因为它涉及管理 VM、操作系统和数据库引擎。 这包括系统更新、安全修补程序和备份等任务,它提供完全控制和自定义功能,但也提高了责任。
成本 提供一系列适合不同需求(从轻型应用程序到企业级解决方案)的定价层。 成本因所选层级而异,资源按用量计费,可能会通过托管服务节省成本。 Azure Database for MySQL 支持通过 Azure 免费帐户进行试用。 它还提供成本控制功能,例如停止不再使用的服务器,以及 IOPS 自动缩放。 通常涉及 VM 和存储的成本以及维护基础结构的额外开销。 此外,与内置这些功能的 Azure Database for MySQL 不同,实现高可用性 (HA)、备份和其他管理任务等功能会产生额外的成本。
高可用性选项 提供内置的高可用性解决方案,包括无需额外配置的区域冗余部署。 由于高可用性由 Azure 管理,这简化了它的实现,确保了数据库在发生故障时可复原并具有最短停机时间。 必须手动配置和维护高可用性,包括设置故障转移机制和潜在的其他 Azure 服务。 这提供了灵活性和定制性,但增加了复杂性和潜在的安装和维护挑战。

比较见解

管理工作

  • 控制力与便利性:Azure VM 上的 MySQL 适用于需要对其数据库环境进行深度控制的组织,以实现合规性、旧版兼容性或特定性能优化。 在自定义和直接管理控制优先于操作便利性的情况下,此模式更适用。
  • 降低管理负担:Azure Database for MySQL 提供了一个托管环境,其中 Azure 可承担维护物理服务器、操作系统和基本数据库管理任务的运营负担,这可以显著减少管理时间和资源,使团队能够专注于为业务增加更多价值的战略任务。
  • 灵活性和可伸缩性:这两种模型尽管机制不同,但都提供可伸缩性选项。 Azure VM 提供按需手动缩放和调整资源的灵活性,而 Azure Database for MySQL 提供通过 Azure 门户进行管理的便利的可伸缩性选项,减少了资源管理所涉及的复杂性。 此外,Azure Database for MySQL 灵活服务器还允许对数据库管理功能和配置设置进行精细控制和灵活操作,从而在微调性能和行为方面具有关键优势。

选择哪种模型取决于组织的需求、专业知识和优先级。 如果需要广泛的控制和自定义,Azure VM 上的 MySQL 可能是更好的选择。 相反,如果易于管理和减少管理开销更为关键,则 Azure Database for MySQL 会很有用。

成本

选择 Azure Database for MySQL 通常会降低管理成本和复杂性,因为它消除了直接管理数据库软件和操作系统的需求。 对于不需要在 VM 上运行 MySQL 所提供的深度自定义选项的企业,此托管服务模型通常更具成本效益。

另一方面,由于需要进行更多动手管理,Azure VM 上的 MySQL 可能会产生更高的成本,但它提供了对数据库和操作系统的更大控制,这对于托管平台不支持的特殊需求是有益的。

这两个选项都提供可伸缩性,但灵活服务器能够动态调整资源并仅根据实际使用情况收费,可以在工作负载多变的条件下提供成本优势。 了解这些差异将帮助你根据具体要求和预算限制选择最佳选项。

高可用性

高可用性 (HA) 可确保应用程序在系统故障或维护事件期间以最少的停机时间保持可访问性。

在 Azure VM 中实现高可用性涉及相当多的手动设置。 你负责配置多个组件,例如设置故障转移群集、复制和负载均衡。 此方法提供了高度的自定义性,使你可以定制 HA 体系结构以满足特定要求。 但是,它需要对 Azure 基础结构和 MySQL 都有深入的了解,并且由于管理可靠的 HA 设置所需的额外 VM 和网络组件的复杂性,通常会产生更高的成本。

另一方面,Azure Database for MySQL 提供内置的高可用性,无需额外的设置或成本。 此服务会自动处理向不同可用区域中的备用副本的故障转移,确保即使一个区域出现故障,数据库服务也能继续运行。 Azure Database for MySQL 提供的托管 HA 解决方案大大减少了管理开销,因为复制、故障转移和网络配置都由 Azure 处理,使开发人员能够更专注于应用程序开发而不是基础结构管理。

总结

选择 Azure Database for MySQL 还是 Azure VM 上的 MySQL 通常取决于应用程序的特定要求以及组织在控制、成本和管理开销方面的偏好。 对于那些标准 MySQL 功能就能满足要求且重视管理便利性的应用程序,Azure Database for MySQL 通常是最佳选择。 相反,如果应用程序需要特定的 MySQL 配置,或者你需要对数据库环境进行广泛优化,则 Azure VM 上的 MySQL 可能更合适。

在做决策时,不仅要考虑当前需求,还要考虑应用程序的潜在规模和发展变化,以确保所选的数据库解决方案可以随业务进行扩展并适应业务的要求。

总之,请参阅以下指导。

在以下情况下,选择“Azure VM 上的 MySQL”

  • 希望避免采购新的本地硬件所耗费的时间和支出。
  • 需要灵活服务器不支持的特定 MySQL 版本。
  • 需要对 Azure 数据库不支持 MySQL 服务的 MySQL 引擎进行完全控制和自定义。

在以下情况下,选择“Azure Database for MySQL”

  • 需要区域冗余或相同区域高可用性。
  • 需要最大控制,并能够选择计划的维护时段。
  • 需要使用自动备份和时间点还原对数据进行长达 35 天的保护。
  • 希望对基础硬件、操作系统和数据库引擎进行自动修补和维护,以保证服务的安全和最新状态。
  • 需要使用非独占即用即付定价提供可预测性能。
  • 需要在数秒内实现弹性缩放。
  • 使用低成本可突发 SKU 和停止/启动服务器的功能寻求成本优化。
  • 需要企业级安全性、行业领先的符合性和隐私性,以保护静态和动态敏感数据。
  • 希望通过监控和自动化来简化大规模部署的管理和监控。
  • 需要更好地控制和自定义应用开发。
  • 需要使用只读副本以最小的开销实现水平缩放。
  • 重视行业领先的支持体验。