在 Google Cloud Platform 上自动缩放 Moodle 的架构问题

Posted

技术标签:

【中文标题】在 Google Cloud Platform 上自动缩放 Moodle 的架构问题【英文标题】:Architecture Questions to Autoscale Moodle on Google Cloud Platform 【发布时间】:2019-02-23 03:46:51 【问题描述】:

我们正在为 LMS 设置 Moodle,并将其设计为自动缩放。

以下是当前的堆栈规范:

-Moodle 应用程序(应用程序 + 数据)烘焙到图像中并启动到托管实例组中

-用于数据库的 Cloud SQL(通过 Cloud SQL Proxy 连接的 mysql 5.7)

-Cloud Load Balancer - 以托管实例组作为后端的 HTTPS 负载平衡 + 开启会话亲和性

问题:

    我的会话还需要 Redis/Memcached 吗?或者负载均衡器会话亲和度是否足够?

    我正在考虑将 Cloud Filestore 用于 Data 文件夹。与其他 Compute Engine 相比,这是否值得推荐?

    我更关心会话缓存和内容缓存,以便将来增加用户。你会建议在混合物中添加什么?任何有关 CI/CD 的建议也会有所帮助。

【问题讨论】:

【参考方案1】:

因此,如果没有有关您的用例的更多信息,我无法正确回答这些问题。无论如何,这是我最好的:)

    当计算机从托管实例组中删除时,您认为强制某些用户重新登录有多糟糕?与此相关的是,您预计您的流量会有多高?在强制自动缩放器启动之前,一台机器可以服务多少用户,并且更多的机器将被添加到池中或从池中删除(即,您认为您的应用需要如何动态) ?通过回答这些问题,您应该会有所了解。此外,为什么不将 Datastore/Firestore 用于用户会话?短短 10 毫秒的延迟不会影响您应用的活泼感觉。

    Cloud Filestore 使用 NFS,您可能会遇到一些 NFS 特性。你可以打和处理吗?另外,什么是可接受的延迟?您将要保存的数据块有多大?如果它们足够小,那么您对延迟非常敏感,并且您希望读/写操作具有原子性,您可以使用 Cloud BigTable。如果延迟不是那么重要,Google Cloud Storage 可以为您做到这一点,但您也会失去原子性。

    Google Cloud CDN 似乎是您想要的,前提是您可以正确设置标头。它是一项托管服务,因此您无需费力就能拥有所有好东西,而且与从您的应用程序/Google 云存储/提供内容相比,它更便宜...

    Cloud Builder for 似乎是一个简单的选择,除非您想支持尚不支持的更高级的东西。

请提供更多详细信息,以便我可以编辑并集中我的答案。

【讨论】:

您好 marcyb5st,感谢您的回复。以下是我的答案: 1. 如果在至少一个小时不活动后重新登录,那是可以接受的。注册用户数最多为1000人左右。我预计最多有 100 个并发用户群。对于自动缩放,我会将其基于 70% 的 CPU 负载(尽管我认为 SCORM 文件只会通过 GCE 直接与 Cloud SQL 交互)。至于 Datastore/Firestore,我不想通过额外的编码增加复杂性,因为这将是我们在公司内的第一个 Moodle 部署。 2.我现在对 Cloud Filestore 唯一担心的是基本和标准的最低 1TB 或 2.5TB。与此同时,我们希望将成本保持在最低水平,我预计应用数据不会立即增长到 1TB。 3. 同意这一点。但是,对于会话缓存,您会推荐 Cloud Memorystore (1GB) 吗? 4.我来看看Cloud Builder。你认为使用 Jenkins 是不是有点矫枉过正?模板很少改变。课程是通常添加的课程,我希望将其保存到 NFS 服务器的 appdata 中。【参考方案2】:

有关于自动缩放的研究,使用 redis 内存存储显示来自缓存服务器的大网络带宽,与安装了 redis 的计算引擎相比。 moodle autoscaling on google cloud platform

关于moodle数据,它表明使用NFS的计算引擎应该比文件存储有足够的性能,但要贵得多,因为速度还取决于磁盘大小。

我使用这个拓扑来实现 Autoscale Topology Moodle on GCP

【讨论】:

以上是关于在 Google Cloud Platform 上自动缩放 Moodle 的架构问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Google Cloud Platform 上查看 Dataproc 作业的输出文件

Gitlab私有,在Google Cloud Platform上提供应用程序交付

在 Google Cloud Platform 上自动缩放 Moodle 的架构问题

可以在 Google Cloud Platform 上运行的“perf”替代性能管理工具

如何在 Google Cloud Platform 上部署 GRPC 服务器和客户端?

Google Cloud Platform抢占实例:磁盘发生了什么?