我应该在Google Cloud Run上运行mysql吗?(或任何数据库)

Fel*_*des 1 mysql serverless google-cloud-run

我一直在研究在Google Cloud Run中运行Docker容器的新选项,但是,似乎没有关于是否应在Cloud run上运行MySQL的建议,显然,我知道它不是Web服务,并且我在GCP的官方Google文档中了解到,Google可能只是告诉人们请使用Cloud SQL(他们的SQL产品),但我没有在网上找到有关“在云运行中运行mysql”的任何建议,所以我想在这里问。冷启动的启动时间会降低解决方案的性能吗?(假设使用存储桶存储东西)

Dou*_*son 5

运行SQL数据库不太适合Cloud Run。

首先,已部署的容器与Cloud Run之间的契约是容器需要在端口8080上运行HTTP服务器。这并不是MySQL的工作方式。

第二,容器将限于容器映像中包含的文件系统。服务处理负载时,将多次实例化同一张图像。将无法持久保存写入MySQL的数据。您可能在该图像中存储了只读数据,这些数据仅在发布新图像时才会更改,但这并不是使用关系数据库所希望的。

Cloud Run非常擅长以无服务器且可扩展的方式操作HTTP / Web服务。这些网络服务通常利用部署到Google Cloud的其他API和服务或第三方服务。并不是要提供持久的,可扩展的,符合ACID的数据库服务-这是一种完全不同的问题空间。

  • 我认为有人希望在 Cloud Run 中运行数据库的原因之一是成本优化。例如,您可以在此类服务上运行开发环境(很少使用),然后您只需为使用时间付费。或者也许还有其他选择使用 CloudSQL 并且仅按使用时间付费? (4认同)
  • + felipe-valdes为什么要在Cloud Run上运行数据库?正如Doug解释的那样,Cloud Run被设计为主要运行Web应用程序。据了解,由于可扩展且易于管理,您希望将Cloud Run用作数据库服务器,但是Google提供了一些可扩展的数据库解决方案,例如Datastore,BigTable或Spanner。 (2认同)