使用相同的cloudControl MySQLd插件与多个应用程序

时间:2012-12-03 17:09:26

标签: cloudcontrol

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

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

有人可以帮我理解一个MySQLd实例是否可以与cloudControl上托管的多个应用一起使用?

1 个答案:

答案 0 :(得分:2)

cloudControl PaaS有两个概念。应用程序和部署。应用程序基本上只是将开发人员和部署组合在一起。每个部署都是与部署名称匹配的分支的应用程序的独特运行版本。有关详细信息,请参阅Apps, Users and Deployments documentation

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

因此,部署之间的分离很有意义。通常,您的开发部署也不需要与生产部署相同的数据库能力。因此,您可以轻松地使用较小的计划甚至共享数据库(例如MySQL)进行开发。您可以在Add-on documentation

中详细了解如何在代码中使用此功能

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

最后但并非最不重要的一点是,从不同存储库中的两个不同代码库连接到同一个数据库通常是非常糟糕的做法,这就是拥有第二个应用程序的原因。这会导致各种潜在的冲突和依赖关系,这些冲突和依赖关系会使代码更改和数据库迁移在一段时间内难以维护。建议的方法是仅拥有一个代码库所拥有的数据,并提供API以从第二个代码库访问该数据。

所有这些说法,技术上可以将多个部署甚至应用程序连接到相同的附加组件(数据库或其他任何东西),但强烈建议不要。

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

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