--> 甲骨文云-部署Moodle学习管理系统:在Oracle Linux上结合MySQL数据库服务的高效方案
欢迎访问深圳敏捷云计算科技有限公司!

甲骨文云-部署Moodle学习管理系统:在Oracle Linux上结合MySQL数据库服务的高效方案

2024-03-07 原创文章

Moodle是一个免费的开源学习管理系统(LMS),用PHP编写,并在GNU通用公共许可证下发布。基于教学原则开发,Moodle用于学校、大学、工作场所和其他领域的混合学习、远程教育、翻转课堂和其他电子学习项目。

通过可定制的管理功能,您可以使用Moodle创建私有网站,并在线开设课程,供教育工作者和培训师实现学习目标。Moodle允许您使用社区源插件扩展和定制学习环境。


架构

您可以在单节点配置中部署Moodle,或作为多节点、高可用配置的一部分。这个参考架构包括与这两种配置兼容的Terraform自动化。


对于生产级别、高可用架构,请参考以下图表,它展示了一个多节点场景。

上述图表展示了一个简化的高可用性应用环境,部署在OCI上,重点是两个虚拟机实例位于负载均衡器后面。这些实例位于一个可用性域内的两个不同故障域。这种架构利用了OCI文件存储服务;Moodle安装在共享的网络文件系统(NFS)中。文件系统存在于一个专用的私有子网中,该子网配备了网络安全组(NSG),允许所有实例访问挂载目标。


以下图表展示了一个简单的单节点架构。它包括一个轻量级部署,适合于学习目的或用作概念验证。


多节点架构包含以下OCI组件:


租户

  • 租户是Oracle在您注册Oracle Cloud Infrastructure时,在Oracle Cloud中设置的一个安全且独立的分区。您可以在租户内的Oracle Cloud中创建、组织和管理您的资源。租户等同于一个公司或组织。


策略

  • Oracle Cloud Infrastructure身份和访问管理策略指定谁可以访问哪些资源,以及如何访问。授权在组和部门级别进行,这意味着您可以编写一个策略,为一个组在特定部门内或对整个租户提供特定类型的访问权限。


部门

  • 部门是Oracle Cloud Infrastructure租户内跨区域的逻辑分区。使用部门来组织Oracle Cloud中的资源,控制对资源的访问,并设置使用配额。为了控制对特定部门中的资源的访问,您需要定义策略,指定谁可以访问资源以及他们可以执行的操作。


虚拟云网络(VCN)

  • 在OCI中的第一步之一是为您的云资源设置一个虚拟云网络(VCN)。VCN是您在OCI区域内设置的软件定义网络。VCN可以划分为子网,这些子网可以特定于一个区域或一个可用性域。区域特定和可用性域特定的子网可以在同一个VCN中共存。子网可以是公共的或私有的。


可用性域

  • 可用性域是区域内独立的、独立的数据中心。每个可用性域中的物理资源与其他可用性域的资源隔离,提供故障容忍性。可用性域不共享基础设施,如电力或冷却,或内部可用性域网络。因此,一个可用性域的故障不太可能影响该区域中的其他可用性域。


负载均衡器

  • Oracle Cloud Infrastructure负载均衡服务提供了从单个入口点到后端多个服务器的自动化流量分发。


计算实例

  • Oracle Cloud Infrastructure计算让您能够配置和管理计算主机。您可以启动具有满足您资源需求(CPU、内存、网络带宽和存储)的形状的计算实例。创建计算实例后,您可以安全地访问它,重启它,附加和分离卷,并在不需要时终止它。


互联网网关

  • 互联网网关允许VCN中的公共子网与公共互联网之间的流量。


动态路由网关(DRG)

  • DRG是一个虚拟路由器,为本地网络和VCN之间的私有网络流量提供路径,并且还可以用于在同一区域或跨区域的VCN之间路由流量。


网络安全组(NSG)

  • NSG充当您云资源的虚拟防火墙。在Oracle Cloud Infrastructure的零信任安全模型下,所有流量都被拒绝,您可以控制VCN内的网络流量。NSG包含一组入站和出站安全规则,仅适用于单个VCN中指定的一组VNIC。


文件存储

  • Oracle Cloud Infrastructure文件存储服务提供了耐用、可扩展、安全的企业级网络文件系统。您可以从VCN中的任何裸机、虚拟机或容器实例连接到文件存储服务文件系统。您还可以通过使用Oracle Cloud Infrastructure FastConnect和IPSec VPN从VCN外部访问文件系统。




建议

在Oracle Linux上部署Moodle LMS并使用MySQL数据库服务时,以下建议可以作为起点。您的需求可能与此处描述的架构有所不同。

VCN

  • 在创建VCN时,确定每个子网中云资源所需的IP地址数量。使用无类别域间路由(CIDR)表示法,指定一个足够大的子网掩码和网络地址范围以容纳所需的IP地址。使用标准私有IP地址空间内的地址范围。
  • 选择一个不与您的本地网络或任何其他网络重叠的地址范围,以便在必要时可以在VCN和您的本地网络之间建立连接。
  • 设计子网时,考虑您的流量流向和安全要求。将同一层或角色内的所有计算实例附加到同一子网,这可以作为安全边界。

安全性

  • 使用策略限制谁可以访问您公司的OCI资源以及如何访问。使用保险库(Vault)对您的密钥、证书和秘密提供额外保护。
  • 网络服务提供两种使用安全规则控制数据包级别流量的虚拟防火墙功能:安全列表和网络安全组(NSG)。NSG包含一组入站和出站安全规则,仅适用于您在单个VCN中选择的一组VNIC。例如,您可以选择VCN中多层应用的Web层中充当Web服务器的所有计算实例。
  • NSG安全规则的功能与安全列表规则相同。但是,对于NSG安全规则的源或目的地,您可以指定NSG而不是CIDR块。因此,您可以轻松编写安全规则来控制同一VCN中两个NSG之间的流量或单个NSG内的流量。当您创建数据库系统时,您可以指定一个或多个NSG。您还可以更新现有数据库系统以使用一个或多个NSG。


计算

  • 选择具有适当OCPUs和内存组合的形状,并根据需要为每个实例配置本地NVMe和/或块存储。考虑使用可用的灵活形状,它们在组合OCPUs和内存方面提供了更多的灵活性。

数据库

  • 根据计划的工作负载选择Oracle MySQL数据库服务形状。启用MySQL高可用性以支持三个冗余节点。



考虑因素

在Oracle Linux上部署Moodle LMS并使用MySQL数据库服务时,请考虑以下因素:


应用可用性和可扩展性

  • 在此示例中,在高可用架构中,我们展示了同一可用性域内不同故障域中的两个实例。在可用的区域,您可以选择将实例放置在不同的可用性域中,以获得更高的故障容忍性。代表对更具挑战性和变化性能需求的更动态适应的替代方法是使用实例池和自动扩展。实例池允许您在同一区域内根据相同配置预配置和创建多个计算实例。自动扩展允许您根据性能指标(如CPU利用率)自动调整实例池中计算实例的数量。自动扩展有助于在高需求时期为用户提供稳定性能,并在低需求时期帮助您降低成本。


数据库可用性和可扩展性

  • 高可用架构中显示的MySQL数据库系统利用了内置的MySQL高可用选项,它创建了三个实例,并将它们放置在不同的故障域中。


数据库备份

  • MySQL数据库服务支持两种类型的备份:全备份包含数据库系统中的所有数据,增量备份仅包含自上次全备份以来添加或更改的数据。备份以以下方式运行:手动:在控制台中的操作或通过API发出的请求启动备份。手动备份可以保留最少一天至最多365天。自动:自动安排的备份无需任何交互,在用户选择的时间运行。自动备份保留时间在1到35天之间。默认保留值为七天。定义后,您不能编辑自动备份的保留期。


计算备份

  • Oracle Cloud Infrastructure块卷服务允许您对块卷上的数据进行时间点备份。然后您可以立即或稍后将这些备份还原到新卷上。您还可以使用该服务在不中断应用程序或停机的情况下对引导卷进行时间点、一致性崩溃的备份。引导卷备份功能与块卷备份功能相同。


安全策略

  • 使用策略限制谁可以访问您公司拥有的哪些OCI资源以及如何访问。


网络安全

  • 网络服务提供两种使用安全规则在数据包级别控制流量的虚拟防火墙功能:安全列表和网络安全组(NSGs)。NSG包含一组入站和出站安全规则,仅适用于您在单个VCN中选择的一组VNIC。例如,您可以选择VCN中多层应用的Web层中充当Web服务器的所有计算实例。NSG安全规则的功能与安全列表规则相同。但是,对于NSG安全规则的源或目的地,您可以指定NSG而不是CIDR块。因此,您可以轻松编写安全规则来控制同一VCN中两个NSG之间的流量或单个NSG内的流量。当您创建数据库系统时,您可以指定一个或多个NSG。您还可以更新现有数据库系统以使用一个或多个NSG。在这些示例中,实例显示为存在于公共子网中。考虑将它们放在私有子网中以增加安全性。在这种情况下,需要使用堡垒机来访问实例。


文件存储

  • 在此示例中,我们利用了OCI文件存储服务。或者,多节点架构可以在每个OCI计算实例级别提供单独的块存储。在这种情况下,需要一个文件同步过程(例如rsync)。




部署

  • 此参考架构的Terraform代码作为示例堆栈在Oracle Cloud Infrastructure资源管理器中可用。您也可以从GitHub下载代码,并根据您的具体需求进行定制。
  • 使用Oracle Cloud Infrastructure资源管理器中的示例堆栈进行部署:
  1. 点击,如果您尚未登录,请输入租户和用户凭据。
  2. 选择您想要部署堆栈的区域。
  3. 按照屏幕上的提示和指示创建堆栈。
  4. 创建堆栈后,点击Terraform操作,并选择Plan。
  5. 等待作业完成,并审查计划。
  6. 如需进行任何更改,请返回到堆栈详情页面,点击编辑堆栈,并进行所需更改。然后,再次运行Plan操作。
  7. 如果不需要进一步更改,请返回到堆栈详情页面,点击Terraform操作,并选择Apply。


使用GitHub中的Terraform代码进行部署:访问GitHub。克隆或下载仓库到您的本地计算机。遵循README文档中的指南。



开启您的Oracle云之旅:Agilewing - 您的智能云服务伙伴

作为Oracle的高级合作伙伴,Agilewing正重新定义企业体验Oracle云服务的方式。借助于其简化的开户流程和一流的技术支持,Agilewing将复杂的开户和操作流程转化为一种轻松、直观的体验。通过我们的一站式服务,您可以迅速开启并享受Oracle云的全方位服务,从而无缝融入云端世界。


Agilewing的AgileCDN服务,结合了OCI的云基础服务,提供了一流的全球内容加速解决方案。超过2800个全球POP节点和7000个直连点的强大网络,确保了无论您的业务扩展到全球哪个角落,都能保持高效稳定的运行。


利用Oracle云的先进技术,Agilewing致力于简化云服务搭建、云迁移和业务出海的过程。我们的合作模式为客户带来经济高效的解决方案,使他们能够更加专注于核心业务,同时享受Oracle云的高性能和安全保障。


Oracle云服务,作为一个充满潜力的领域,以其高性能、安全性和全球统一的服务标准,为各类企业开启了新的机遇之门。通过Agilewing的专业服务,无论是个人用户还是企业,都能轻松步入这个充满技术革新和高效能的新时代。现在,就让Agilewing引领您开始探索Oracle云服务,打开一个全新的世界大门。