我们正在为我们的LMS设置一个Moodle,并将其设计为自动缩放。
以下是当前的堆栈规格:
- Moodle 应用程序(应用 + 数据(烘焙到映像中并启动到托管实例组中
- Cloud SQL for database(MySQL 5.7 通过 Cloud SQL Proxy 连接(
-云负载均衡器 - 启用托管实例组作为后端的 HTTPS 负载均衡 + 会话相关性
问题:
-
我的会话还需要 Redis/Memcached 吗?或者负载均衡器会话相关性是否足够?
-
我正在考虑将云文件存储用于数据文件夹。与其他计算引擎相比,这是否值得推荐?
-
我更关心会话缓存和内容缓存,以便将来增加用户。您建议在组合中添加什么?关于CI/CD的任何建议也将有所帮助。
因此,如果没有有关您的用例的更多信息,我将无法正确回答这些问题。无论如何,这是我最好的:)
-
您认为从托管实例组中移除计算机时强制某些用户重新登录有多糟糕?与此相关,您预计流量将有多大?在强制自动缩放程序启动之前,一台计算机可以服务多少用户,并且将在池中添加或删除更多计算机(即,你认为应用需要多动态(?通过回答这些问题,你应该有一个想法。另外,为什么不对用户会话使用数据存储/Firestore?短短的 10 毫秒延迟不应损害应用的活泼感觉。
-
云文件存储使用 NFS,您可能会遇到一些 NFS 特质。你会好好打和处理吗?另外,什么是可接受的延迟?您将保存的 blob 数据有多大?如果它们足够小,那么您对延迟非常敏感,并且您希望在读/写操作中使用 Cloud BigTable。如果延迟不是那么关键,Google Cloud Storage可以为您做到这一点,但您也会失去原子性。
-
Google Cloud CDN似乎是您想要的,前提是您可以正确设置标头。这是一项托管服务,因此无需您动动手指即可拥有所有好东西,而且与从您的应用程序/Google Cloud Storage/...
-
Cloud Builder 似乎是一个简单的选择,除非您想支持尚不支持的更高级的东西。
请提供更多详细信息,以便我可以编辑和集中我的答案。
有关于自动缩放的研究,使用Redis内存存储显示来自缓存服务器的大网络带宽,比较计算引擎安装的Redis。 Google Cloud Platform 上的 Moodle Autoscaling
关于 Moodle 数据,它表明带有 NFS 的计算引擎应该比文件存储具有足够的性能,价格要贵得多,因为速度也取决于磁盘大小。
我使用此拓扑进行实现 GCP 上的自动缩放拓扑 Moodle