2012-12-03 67 views
-1

我不清楚如何cloudControl MySQLd插件的作品。 我對MySQLd的理解是,它是一個MySQL服務器,可以/將使用無限的應用程序。使用相同的cloudControl MySQLd插件與多個應用程序

但是,由於所有插件僅基於應用程序,這也意味着我無法在多個應用程序上使用相同的MySQLd服務器。

任何人都可以請幫我理解一個MySQLd實例是否可以與cloudControl上託管的多個應用程序一起使用?

回答

2

cloudControl PaaS有兩個概念。應用程序和部署。應用程序基本上是將開發人員和部署組合在一起。每個部署都是與匹配部署名稱的分支不同的正在運行的應用程序版本。有關這方面的更多詳細信息,請參閱Apps, Users and Deployments documentation

所有插件都是每次部署。我們這樣做是因爲這樣我們可以提供所有憑據作爲運行時環境的一部分。這意味着您不必在版本控制文件中擁有憑證。當分支合併時,這是一個巨大的好處,因爲您不會冒險無意中與來自dev部署的實時數據庫。附加組件憑據隨時可以由附加組件提供商自行決定更改。

由於這個原因,部署之間的分離很有意義。例如,通常您的開發部署也不需要與生產部署相同的數據庫功能。因此,您可以輕鬆使用較小的計劃,甚至可以使用共享數據庫(例如MySQL)進行開發。您可以在Add-on documentation的代碼中詳細瞭解如何使用此功能。

同樣如前所述,附加憑證始終作爲運行時環境的一部分提供。現在,憑證可隨時由附加組件提供商自行決定更改。這些更改將在環境中自動提供,並且應用程序進程將重新啓動。如果您對第二個應用程序所需的憑據進行了硬編碼,則這意味着該應用程序可能會遇到停機時間。

最後但並非最不重要的是,從不同存儲庫中的兩個不同代碼庫連接到同一個數據庫通常是非常糟糕的做法,這將是獲得第二個應用程序的原因。這會導致各種潛在的衝突和依賴性,導致代碼更改和數據庫遷移極其難以維護。推薦的方法是僅擁有一個代碼庫所擁有的數據,並提供一個API來訪問第二個代碼庫中的數據。

所有這一切都表明,從技術上來說,將多個部署甚至應用程序連接到相同的附件(數據庫或其他任何東西),但強烈建議不要。

如果您有充分理由將兩個應用程序/部署連接到同一個數據庫,我建議您在亞馬遜上手動啓動RDS實例(MySQLd基於RDS)並通過自定義配置附件提供憑據到你的兩個應用程序/部署。

我希望這能回答你的問題,並解釋原因。

+0

關於從cloudcontrol直接連接到RDS,您可以請回答以下問題:http://stackoverflow.com/questions/13687835/access-our-own-aws-rds-instance-from-cloudcontrol-apps 我不希望我們的RDS實例公開可用。使用安全組帳戶ID和名稱從EC2服務器訪問RDS實例有更好的方法。您能否幫助我在AWS控制檯中插入所需的信息,以便cloudcontrol中只有服務器可以訪問我的RDS實例? – Risul

+0

我不會說從多個應用程序使用自己的數據庫連接到相同的數據庫服務器是不好的做法。我們正在開發一個SaaS應用程序,其中所有租戶都將擁有自己的數據庫,這實際上是一個非常好的做法,而不是使用prefix/sufix(wordpress方式)製作大量表格,或者僅在每個表格中添加租戶列。 將有一個前端(爲我們的客戶客戶)和一個後端(爲我們的客戶)。因此我們將使用相同的數據庫部署兩個應用程序。 – Risul

+0

我回答了不同的問題。我知道你希望有一個客戶面對前端和後端來管理客戶關係。我不認爲在不同的應用程序中擁有這個功能是很有價值的。您可以輕鬆地將內部管理員安裝在sudbomain或子目錄中,並通過某些訪問控制手段保護內部管理員,但仍將代碼保存在同一個存儲庫中。我同意多個客戶的多個數據庫方法。這很好。 – pst

相關問題