并行运行数千个容器的云计算服务



是否有任何提供程序提供开箱即用的此类选项?我需要运行至少 1K 个无头 Web 浏览器 (firefox( 的并发会话(docker 容器(进行复杂的 UI 测试。我有一个 Docker 映像,我只想在几秒钟内部署并扩展到 1000 个 1CPU/1GB 实例,没有花时间维护服务器集群(我需要在作业完成后将它们全部关闭(,只需专注于代码。到目前为止,我发现最接近的东西是 Amazon ECS/Fargate,但它们的限制对我来说毫无意义("在生产中运行容器化应用程序"-> 最大限制:50 个任务 ->生产 -> ok(。我错过了什么吗?

我认为AWS Batch可能是您的使用案例的更好解决方案。定义提供特定容量级别的"计算环境",然后提交在该计算环境中运行的任务。

我不认为您会找到任何可以在"一秒钟"内启动环境并部署大量任务的东西:根据我的经验,Batch 大约需要一两分钟的启动时间,尽管一旦机器启动并运行,它们就能够快速对作业进行排序。您还应考虑同时运行所有 1,000 个作业是否有意义;这将取决于您试图从测试中得到什么。

您还需要了解可能受到限制的任何地方(例如,从 AWS 参数存储中检索配置(。去年纽约峰会的演讲涵盖了演讲者在部署数千个并发任务时遇到的一些问题。

您可以使用lambda层来运行无头浏览器(我知道github上有几种铬/硒的实现,不确定Firefox(。

或者,您可以尝试联系 AWS 团队,了解 Fargate 上的并发任务限制可以提高多少。正如您在文档中看到的那样,50 任务是一个软限制,可以提高。

请注意,如果您通过 Fargate 启动,则每秒的请求数有一些 API 限制。您需要确保限制 API 调用或使用 ECS 创建服务。

无论如何,启动 1000 个任务都需要 1000 秒,这可能不是您所期望的。

如果您使用 ECS,则不存在这些限制,但在这种情况下,您需要管理集群,因此探索 lambda 选项可能是个好主意。

最新更新