为 MySQL 应用选择合适的托管选项

已完成

如果要开发新应用或对现有应用进行现代化改造,选择正确的托管选项对于优化性能、安全性和成本效益至关重要。 传统上,应用托管在 Internet Information Services (IIS)、Apache 或 NGINX 等 Web 服务器上,这些服务器位于物理或虚拟化的本地硬件上。 虽然此选项具有让基础结构团队完全控制环境的优势,但它在管理开销、前期成本、可用性、可伸缩性、复原能力、安全性和合规性方面需要额外的努力。

如果将应用部署到云中,就无需管理这些方面。 在云中托管应用可降低总体设置成本,通过业务连续性和灾难恢复 (BCDR) 选项提高可用性和可靠性,让你可以按需缩放应用资源,并提供高级安全性。

Microsoft Azure 提供了一系列可自定义的应用托管选项,以满足应用的体系结构要求和用例。

图中显示了 MySQL 应用程序的类型和相应的 Azure 服务。

其中许多应用托管选项都可以与 Azure Database for MySQL 灵活服务器无缝集成,这是一种特别有效的后端数据库服务,因为它具有良好的可伸缩性、性能和可管理性。 本单元将探讨一些常见的 MySQL 应用体系结构和 Azure 服务,帮助你确定最适合应用工作负载的托管选项。

Azure 应用服务上的 Web 应用

MySQL 是开发 Web 和移动应用最热门的数据库之一,因为它具有可移植性、速度、可伸缩性和可靠性,而且成本较低。 通过在后端使用 Azure Database for MySQL 灵活服务器,可以更轻松地构建轻型或任务关键型 LAMP (Linux-Apache-MySQL-PHP) 堆栈 Internet 规模应用。 还可使用热门的 CMS(如 WordPress、Drupal 或 Joomla)、学习管理系统(如 Moodle)和电子商务平台(如 Magento)进行开发,所有这些都与 Azure Database for MySQL 灵活服务器兼容。

开发人员可使用 Azure 应用服务(这是一种基于 HTTP 的平台即服务 (PaaS) 解决方案,用于托管 Web 应用、REST API 和移动后端)在 Windows 或 Linux 环境中部署这些 MySQL 支持的 Web 和移动应用。 借助 Azure 应用服务,可以减少管理开销、使用自己喜欢的语言进行开发、自动执行应用部署、快速纵向扩展和缩减,甚至“Docker 化”应用,以托管自定义 Windows 或 Linux Docker 容器。

Azure Kubernetes 服务或 Azure 容器应用上的容器化应用(微服务体系结构)

最近,具有微服务体系结构的应用因其效率、复原能力、可伸缩性和易于部署而越来越受欢迎。 与传统的整体式应用不同,每个微服务或容器都独立运行,无需重新部署整个应用即可进行更新。

在 Azure 上,可以将这些微服务部署到 Azure Kubernetes 服务 (AKS),这是一项完全托管的 Kubernetes 服务,可帮助你快速轻松地定义、部署、调试和升级甚至是最复杂的容器化应用。

除了 AKS,Azure 容器应用 (ACA) 还提供无服务器容器托管服务,非常适合从微服务生成的新式应用。 ACA 简化了容器的部署和缩放,无需管理虚拟机或 Kubernetes 群集等底层基础结构。 它与 Azure 逻辑应用和 Azure Functions 完美集成,实现了事件驱动体系结构,支持快速缩放和管理应用组件。 ACA 尤其适用于需要敏捷操作和快速迭代的应用,可基于 HTTP 流量或事件驱动的触发器提供动态缩放选项。 此服务同时支持 Windows 和 Linux 容器,让你能够无缝部署在各种编程环境中开发的微服务。

通过结合使用 ACA 与通过 AKS 实现的传统 Kubernetes 部署,可以更灵活地协调、缩放和管理其容器化应用。 这种方法不仅最大限度地提高了运营效率,而且还增强了快速应对市场变化和客户需求的能力。

使用 Azure Functions 和 Azure 逻辑应用的事件驱动无服务器应用

无服务器应用使用事件驱动模型来加速开发,该模型通过触发器自动执行代码以响应事件,并通过绑定无缝集成其他服务。 你只需为执行代码所用的时间和资源付费。

Azure Functions 和 Azure 逻辑应用是 Azure 上的无服务器解决方案,可帮助构建系统以响应一系列关键事件。

  • Azure Functions Azure Functions 是一种高度灵活的无服务器计算服务,它能够根据各种触发器来执行代码,例如 HTTP 请求、计时器事件(cron 作业)或 Azure 服务事件(例如来自 Azure 存储队列或服务总线的消息)。 其灵活性让你能够生成实时响应变化的应用,且无需管理服务器基础结构。 Azure Functions 支持多种编程语言,包括 C#、Java、JavaScript、Python 和 PowerShell,因此可供不同的开发人员群体使用。 这些函数还可与其他 Azure 资源交互。
  • Azure 逻辑应用提供了一种无服务器设计体验,有助于在应用之间和跨企业自动执行和协调任务、流程和工作流。 使用 Azure 门户或 Visual Studio 中的可视化设计器,可以设置工作流,只需编写很少的代码就可以自动执行复杂的业务场景。 这些工作流协调了一系列称为“操作”的函数或步骤,执行这些函数或步骤的目的是完成复杂任务,例如处理批量订单和聚合结果

Azure 还提供 Azure 事件网格、Azure 服务总线和 Azure 事件中心等服务,用于中继和管理可在事件驱动的工作流中触发无服务器应用的事件和消息

Azure VM 上的整体式旧版应用程序

某些组织可能在使用具有整体式体系结构的旧版应用,这些应用与业务流程紧密耦合,难以实现现代化。 可以使用直接迁移模型将这些应用迁移到 Azure,并将它们托管在 Azure 虚拟机上,这是一种基础结构即服务 (IaaS) 服务。

虽然 Azure 的优点包括能够实现备份和还原服务、磁盘加密以及无需前期成本的缩放选项,但你仍需要投入人力来部署、维护和管理 Azure VM 上的应用。