sql >> Databáze >  >> RDS >> Mysql

Spouštění migrací s Rails v kontejneru Docker s více instancemi kontejneru

Zejména s Rails nemám žádné zkušenosti, ale podívejme se z pohledu dockeru a softwarového inženýrství.

Tým Docker obhajuje, někdy až agresivně, že kontejnery jsou o přepravních aplikacích. V toto opravdu skvělé prohlášení Jerome Petazzoni říká, že je to všechno o oddělení starostí. Mám pocit, že to je přesně ten bod, na který jste již přišli.

Spuštění kontejneru rails, který spouští migraci nebo nastavení, může být dobré pro počáteční nasazení a pravděpodobně často vyžadováno během vývoje. Když se však pustíte do výroby, měli byste skutečně zvážit oddělení obav.

Takže bych řekl, že máte jeden obrázek, který používáte ke spuštění kontejneru N rails a přidejte kontejner nástrojů/migraci/nastavení, který používáte k provádění administrativních úkolů. Podívejte se, co vývojáři z oficiálního obrázku rails říci o tomto:

Když se podíváte na tento obrázek, není tam žádný příkaz k nastavení nebo migraci. Je zcela na uživateli, jak jej využije. Takže když potřebujete spustit několik kontejnerů, pokračujte.

Z mé zkušenosti s mysql tohle funguje dobře. Můžete spustit kontejner pouze pro data pro hostitele dat, spustit kontejner se serverem mysql a nakonec spustit kontejner pro administrativní úlohy, jako je zálohování a obnova. Pro všechny tři kontejnery můžete použít stejný obrázek. Nyní máte volný přístup ke své databázi řekněme z několika Wordpress kontejnery. To znamená jasné oddělení obav. Když použijete docker-compose není tak těžké spravovat všechny ty kontejnery. Jistě již existuje mnoho kontejnerů a nástrojů třetích stran, které vám také pomohou s nastavením komplexní aplikace sestávající z několika kontejnerů.

Nakonec byste se měli rozhodnout, zda docker a architekturu mikroslužeb je to pravé pro váš problém. Jak je uvedeno v tomto článku existuje několik důvodů proti. Jedním z hlavních problémů je, že přidává zcela novou vrstvu složitosti. To je však případ mnoha řešení a myslím, že jste si toho vědomi a jste ochotni to vynechat.



  1. PHP - Náhodně změněné porty v aplikaci Azure mySQL

  2. Chyba při přejmenování sloupce v MySQL

  3. Monitorování zabezpečení databáze pro MySQL a MariaDB

  4. Úvod do dolování dat