Moodle 是一个开源学习管理系统,需要高吞吐量、低延迟访问存储。 许多 Moodle 部署需要易于伸缩性才能适应不断增长的需求。 本文介绍如何在 Azure 虚拟机规模集上使用 Azure 服务部署 Moodle,以及如何将用户可访问的学习数据文件存储在Azure NetApp 文档中。 本文介绍用于高可用性和跨区域复制的区域性部署,并提供单区域部署的示例。
体系结构
为获得最佳用户体验,Moodle 需要一致的低延迟访问可缩放的共享存储,以满足使用该服务的办公和家庭工作者的需求。 随着需求的变化,虚拟机规模集和Azure NetApp 文档容量池和卷可以调整大小。
下载此体系结构的 Visio 文件。
除了 Moodle 部署,体系结构还使用Azure NetApp 文档跨区域复制将数据卷复制到次要区域。 跨区域复制 使用可用性区域提供区域中的高可用性,并复制到同一区域中的不同区域。 使用标准服务级别的容量池可以在正常操作期间托管目标数据卷。
使用此方法时,无需启动安装程序的某些组件,例如计算和辅助服务,在正常操作期间。 因此,这些组件不会产生任何运营成本。 还可以将虚拟机规模集缩减为最小值。
只有在灾难恢复方案中,才应该启动和纵向扩展必要的组件,以使用复制的数据卷继续服务。 此时,可以根据需要将目标Azure NetApp 文档卷的服务级别升级到高级或超级服务级别。
恢复主区域后,复制方向将相反。 主区域使用故障转移期间应用的更改进行更新,并且可以故障回复服务。 用户通过Azure 流量管理器重定向到故障转移区域,该Azure 流量管理器在 DNS 层运行,以便根据所选的路由方法快速高效地定向传入的 DNS 请求。
Workflow
学生通过Azure 应用程序网关访问 Moodle 应用程序数据,在那里他们可以使用虚拟机规模集构建可缩放的计算平台来运行 Moodle 应用来托管用户。 Azure NetApp 文档为 Moodle 应用提供内容数据。 使用 Redis 缓存进行用户会话缓存、锁定和密钥感知。 将学习内容、学生进度和内部数据存储在 MySQL 数据库中。
直接从客户数据中心通过安全的 VPN 网关插入学习内容。
学生通过安全应用程序网关通过部署在虚拟机规模集上的应用程序访问内容。
可以通过在规模集中添加或删除虚拟机和调整Azure NetApp 文档卷服务级别,根据需求纵向扩展或缩减解决方案。
组件
Moodle 是最受欢迎的、广为采用的免费开源学习管理系统之一。
Azure Database for MySQL 是由 MySQL 社区版提供支持的关系数据库服务。 可以使用 Azure Database for MySQL 灵活服务器在 Azure 中托管 MySQL 数据库。
Azure Redis 缓存是一个安全的数据缓存和消息传送代理,可提供对应用程序的数据的高吞吐量、低延迟访问。
使用 Azure 虚拟机规模集创建和管理一组负载均衡的 VM。 可以根据需求或定义的计划自动增加或减少 VM 实例数。
Azure NetApp 文档是一项 Azure 服务,可用于迁移和运行云中要求最高的企业文件工作负载,例如本机 SMBv3、NFSv3 和 NFSv4.1 文件共享、数据库、数据仓库和高性能计算应用程序。
备选方法
可以使用任何基于 NFS 的共享文件服务来部署 Moodle 服务,以满足低延迟、每秒高输入或输出操作的要求,以及吞吐量,尤其是对于更多并发用户。 可以使用基于一组 Linux VM 构建的 NFS 服务,但此配置可能会导致可管理性、可伸缩性和性能挑战。 Azure NetApp 文档提供最低的延迟、最佳性能和可伸缩性,以及对 NFS 共享存储的安全访问。
使用 Azure NetApp 文档 替代部署
此图捕获单区域部署的示例:
此单区域设置提供对 Moodle 应用程序和其他配置组件的高可用性访问。
方案详细信息
该解决方案适用于 Moodle 部署。 使用 Moodle 的组织跨越了包括教育、商业、IT 和财务在内的行业。
本文概述了一种满足 Moodle 的需求的解决方案。 解决方案的核心是Azure NetApp 文档,这是 Azure 存储服务。 可以使用此服务在云中迁移和运行要求最高的企业级文件工作负载:
- 本机服务器消息块 (SMB) 版本 3、NFSv3 和 NFSv4.1 文件共享
- 数据库工作负载
- 数据仓库工作负载
- 高性能计算应用程序
注意事项
这些注意事项实施 Azure 架构良好的框架的支柱原则,即一套可用于改善工作负荷质量的指导原则。 有关详细信息,请参阅 Microsoft Azure 架构良好的框架。
可靠性
可靠性可确保应用程序符合你对客户的承诺。 有关详细信息,请参阅可靠性设计评审核对清单。
Azure NetApp 文件构建在由冗余固态硬件组成的裸机群上。 即使是在维护操作期间,服务也不会中断运行。 有关复原能力的详细信息,请参阅 Azure NetApp 文件中的容错、高可用性和复原能力。
Azure NetApp 文档为存储的数据提供高可用性。 有关 Azure NetApp 文件的可用性保证,请参阅 Azure NetApp 文件的 SLA。
安全性
安全性针对蓄意攻击及滥用宝贵数据和系统提供保障措施。 有关详细信息,请参阅可靠性设计审查检查表。
对于所有部署选项,需要提供有效的安全外壳 (SSH) 协议 2 (SSH-2) RSA 公钥-私钥对。 长度应至少为 2,048 位。 Azure 不支持 ED25519 和 ECDSA 等其他密钥格式。 Azure NetApp 文档同时支持客户管理的密钥和平台管理的密钥。 这些解决方案提供对存储数据的无限制访问权限、满足合规性要求并提高数据安全性。 有关Azure NetApp 文档安全性的信息和最佳做法,请参阅Azure NetApp 文档的安全常见问题解答。
成本优化
成本优化是关于寻找减少不必要的费用和提高运营效率的方法。 有关详细信息,请参阅成本优化设计评审核对清单。
对于大约 5,000 个具有 10% 并发率的中型 Moodle 部署,建议的吞吐量约为 500 MB/秒。 此部署可以构建在基于 Linux 的 Standard_D32s_v4 VM 基础结构上,该基础结构使用 8 TB 的 P60 托管磁盘。
Azure NetApp 文档提供了一个更具成本效益的解决方案,该解决方案使用 4 TiB 的超级服务级别容量。 对于需要更多Azure NetApp 文档容量的大规模应用程序,高级和标准服务级别都提供足够的性能。 使用高级或标准服务级别来提高成本效益。
使用 Azure 定价计算器根据特定要求估算 Azure 资源的成本。 有关详细信息,请参阅Azure NetApp 文档成本模型。
有关计算Azure NetApp 文档性能和总拥有成本(TCO)的计算器,请参阅Azure NetApp 文档性能计算器。 使用此计算器可在容量、性能和成本之间找到最佳平衡。
卓越运营
卓越运营涵盖了部署应用程序并使其在生产环境中保持运行的运营流程。 有关详细信息,请参阅设计卓越运营的审查清单。
性能效率
性能效率是指工作负荷能够以高效的方式扩展以满足用户对它的需求。 有关详细信息,请参阅性能效率设计评审核对清单。
可以根据需要纵向扩展或缩减此解决方案:
虚拟机规模集提供了自动缩放资源的功能。 有关详细信息,请参阅 Azure 虚拟机规模集的自动缩放概述。
可以轻松且无干扰地缩放Azure NetApp 文档容量池和卷,以满足需求。 有关详细信息,请参阅调整容量池或卷的大小。
可以调整 Azure NetApp 文件卷服务级别,该级别可以是“标准”、“高级”或“超高性能”。 选择的级别会影响具有自动服务质量的卷的吞吐量限制。 有关详细信息,请参阅 Azure NetApp 文件的性能注意事项。
部署此方案
有关 Azure NetApp 文件上的 Moodle 部署指南,请参阅使用 NFS 的 Azure NetApp 文件实现 Moodle 存储。
作者
本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。
主要作者:
- Arnt de Gier | 技术营销工程师