-1

我不清楚 cloudControl MySQLd 插件是如何工作的。我对 MySQLd 的理解是它是一个 MySQL 服务器,可以/将与无限的应用程序一起工作。

但由于所有插件都仅基于应用程序,这也可能意味着我不能在多个应用程序上使用相同的 MySQLd 服务器。

谁能帮助我了解一个 MySQLd 实例是否可以与 cloudControl 上托管的多个应用程序一起使用?

4

1 回答 1

2

cloudControl PaaS 有两个概念。应用程序和部署。应用程序基本上只是将开发人员和部署组合在一起。每个部署都是应用程序的不同运行版本,来自与部署名称匹配的分支。有关这方面的更多详细信息,请参阅应用程序、用户和部署文档

所有附加组件始终按部署进行。我们这样做是因为这样我们可以提供所有凭据作为运行时环境的一部分。这意味着您不必在版本控制文件中拥有凭据。在分支之间合并时,这是一个巨大的好处,因为您不会冒着意外与开发部署中的实时数据库交谈的风险。此外,附加凭据可以随时根据附加提供商的判断进行更改。

出于这个原因,部署之间的分离很有意义。例如,通常您的开发部署也不需要与生产部署相同的数据库功能。因此,您可以轻松地使用较小的计划甚至共享数据库(例如 MySQL)进行开发。您可以在附加组件文档中阅读有关如何在代码中使用此功能的更多信息。

同样如前所述,附加凭据始终作为运行时环境的一部分提供。现在,凭据可以随时根据附加提供商的判断进行更改。这些更改会自动在环境中提供,并且应用程序进程会重新启动。如果您按照第二个应用程序的要求对凭据进行了硬编码,这意味着该应用程序可能会遇到停机时间。

最后但同样重要的是,从不同存储库中的两个不同代码库连接到同一个数据库通常是非常糟糕的做法,这将是拥有第二个应用程序的原因。这会导致各种潜在的冲突和依赖关系,使代码更改和数据库迁移随着时间的推移极难维护。推荐的方法是让数据只属于一个代码库,并提供一个 API 来从第二个代码库访问该数据。

尽管如此,技术上可以将多个部署甚至应用程序连接到同一个附加组件(数据库或其他任何东西),但强烈建议不要这样做。

如果您有充分的理由将两个应用程序/部署连接到同一个数据库,我建议您在 Amazon 手动启动一个 RDS 实例(MySQLd 基于 RDS),并通过自定义配置插件为您的两个应用程序提供凭据应用程序/部署。

我希望这能回答你的问题并解释原因。

于 2012-12-03T18:47:46.743 回答