Pregunta

Puedo entender los benfits detrás de la atracizaje de los servicios sin estado, como servidores web, aplicaciones, equilibradores de carga, etc. Si está ejecutando estos servicios en un grupo de máquinas, es muy fácil mover estos contenedores con bajogastos generales.¿Aunque no entiendo, sin embargo, es el propósito detrás de las bases de datos en contenedor?Las bases de datos están conectadas a un volumen de datos que es persistente en un disco duro específico.Debido al estado, no es fácil, y no es eficiente en realidad mover el contenedor de la base de datos.Entonces, ¿alguien puede ver por qué atracar una base de datos puede ser útil en absoluto?

¿Fue útil?

Solución

"Entonces, ¿puede alguien ver por qué la expulsión de una base de datos puede ser útil en absoluto?"

buena pregunta keeto. Una de las razones principales para la conservación de sus bases de datos es para que pueda tener el mismo entorno consistente para toda su aplicación, no solo las piezas sin estado, a través de Dev, la puesta en escena y la producción. Un entorno consistente es una de las promesas de Docker, pero cuando su base de datos vive fuera de este modelo, hay una gran diferencia que no se puede contabilizar en sus pruebas. Además, al contener la conservación de su base de datos, así como el resto de su aplicación, es más probable que pueda mover toda su aplicación entre proveedores de alojamiento (digamos de AWS a Google Compute). Si usa Amazon RDS, por ejemplo, incluso si puede mover los nodos web a Google, no podrá mover su base de datos, lo que significa que usted depende en gran medida de su proveedor de la nube.

Otra razón para el servicio de datos de contenedores es el rendimiento. Esto es particularmente cierto para los proveedores de servicios (toda la base de datos como ofertas de servicio, por ejemplo, Bases de datos de nube de rackspace - Ejecutar en contenedores), debido a que los contenedores le permiten proporcionar garantías de servicio que no son posibles utilizando la virtualización, y ejecutar una base de datos por máquina física no es financieramente viable. Lo más probable es que no esté ejecutando un servicio de alojamiento de datos, pero esta analogía tiene un sentido similar si está funcionando en metal desnudo y desea utilizar los contenedores para el aislamiento del proceso, en lugar de VMS. Obtendrá un mejor rendimiento para sus bases de datos debido al conocido golpe de E / S que toma cuando se ejecuta un DB en una máquina virtual.

No estoy diciendo que debe contener su base de datos, pero estas son algunas de las razones por las que tendría sentido.

Divulgación completa, trabajo para Clusterhq, ese nuevo proyecto que marca O'Connor mencionado en su respuesta. Tenemos un proyecto de OpenSource llamado Flocker que hace que sea mucho más fácil migrar bases de datos y sus volúmenes entre los hosts para que los beneficios que mencioné anteriormente no estuvieran completamente superados por los negativos que recaudó en su pregunta.

Otros consejos

No estoy seguro de estar de acuerdo con su comentario sobre la eficiencia ... Es mucho más fácil de descargar y ejecutar un contenedor de la base de datos, en comparación con la instalación de forma nativa. La documentación de Docker describe cómo implementar una separación lógica limpia entre un contenedor de estado y sus datos:

Pero ... usted es correcto que un contenedor de estado estaría vinculado a su servidor host, a menos que haya algún mecanismo para abrir los datos también.

Una solución obvia es montar un volumen de almacenamiento compartido en todos los hosts que pueden estar ejecutando su base de datos.

El siguiente artículo analiza una solución muy innovadora donde se utiliza un cliente similar a un bittorrent para replicar un contenedor de datos entre hosts.

Finalmente, un nuevo proyecto llamado Flocker está intentando resolver este problema al administrar los contenedores de estado y sus volúmenes ZFS asociados:

Este es un buen hilo, y el progreso reciente en la clonación de SQL Server agregaría capacidades adicionales para el uso de contenedores con clones.Esto aborda algunos de los problemas de working con grandes conjuntos de datos.Divulgación completa, trabajo para Windocks, donde hemos lanzado 2.0 con contenedores SQL Server con clonación de base de datos integrada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top