2017-01-26 95 views
12

Mam pytanie dotyczące najlepszych praktyk przy użyciu kontenerów doków.Wiele kontenerów dokowania dla mysql lub jednej instancji z wieloma bazami danych

Potrzebuję jednej bazy danych dla każdej aplikacji, którą opracuję. Teraz moje pytanie brzmi, czy powinienem użyć jednej instancji dockera mysql z wieloma bazami danych wewnątrz czy też powinienem utworzyć jedną instancję dla każdej bazy danych. Wadą, jaką widzę przy tworzeniu jednej instancji na bazę danych, jest to, że nie mogę mieć użytkownika, który ma dostęp do całej bazy danych. Wiem, że jest to pro ze względów bezpieczeństwa, ale kiedy próbuję wykonać kopię zapasową od klienta, niż muszę przejść w każdym przypadku do tworzenia kopii zapasowych. I nie jest wielokrotną instancją używającą dużego nakładu zasobów (chociaż mysql może zużywać mniej zasobów, ale użycie ex instance mssql, który jest większy, może spowodować problemy z zasobami później)

Moje pytanie brzmi, jaki jest powszechny sposób to z dockerem i czym są plusy i contras?

Odpowiedz

7

Docker jest szczególnie dostosowany do wdrażania mikroserwisów. Poniższe linki omówić dwie strategie w odniesieniu do korzystania z baz danych:

  1. Database per service
  2. Shared database

Osobiście preferują zastosowanie jednej bazie danych za obsługę i rozszerzenia, które do rozmieszczenia oddzielny wystąpienia serwera bazy danych. To zapewnia, że ​​usługi są luźno powiązane, jeśli jedna usługa zostanie uszkodzona przez DB, nie wpłynie to na inne.

+0

dzięki za odpowiedź. Podczas gdy ty rozwijasz pakiet usług (nie w produkcji), ty też używasz tego podejścia? –

+0

@BukharovSergey Z pewnością. W moim przypadku nie ma trudności w rozpoczynaniu pojedynczej instancji DB, z którą łączy się wiele kopii kontenera aplikacji. –