Tenemos alrededor de 12 servicios y otras aplicaciones como presto.
Estamos pensando en construir contenedores Docker para cada servicio y aplicación. ¿Es correcto dockerizarlos todos?
¿Cuándo un contenedor Docker no sería la solución ideal?
No hay problema con la dockerización de múltiples servicios. Creo que también debes considerar las siguientes cosas.
Debe pensar en cómo guardar los datos que ha utilizado dentro del contenedor. De forma predeterminada, los datos dentro del contenedor se destruirán cuando el contenedor se apague. Es posible que deba montar un volumen para mantener los datos de forma permanente.
Es posible que no pueda obtener el rendimiento básico cuando se ejecuta en la ventana acoplable.
En mi opinión, no es una buena opción si va a ejecutar todas las aplicaciones en Docker a menos que necesite aprovechar la ventaja de la contenedorización. Pero es fácil ejecutar aplicaciones y servicios sin estado con docker.
Debe contener todos los servicios basados en Linux que no tienen estado y requieren actualizaciones/cambios/parches frecuentes. Estos incluyen todos los tipos de servidores front-end y de aplicaciones.
Las bases de datos/almacenes de datos, por otro lado, son un caso más complejo, ya que hay problemas de rendimiento y persistencia/integridad de datos. Además, las bases de datos no se actualizan/parchean con tanta frecuencia como las aplicaciones front-end.
*Los contenedores de Windows solo se ejecutarán en Windows.
PROS:
local de integration , staging y production . Esto se hace más fácilmente cuando los servicios están en contenedores y, la mayoría de las veces, con solo un cambio de VARIABLES DE ENTORNO.CONTRAS: Realmente no le veo muchas desventajas, pero aquí hay una que se me ocurre.
ALGUNAS PREOCUPACIONES:
¡Espero que esto ayude!
Docker es una receta para la consistencia y la reproducibilidad.
Para hacer una buena taza de té, necesitas agua hirviendo, ponle una bolsita de té y déjala reposar durante tres minutos. Cómo logras hervir el agua es absolutamente irrelevante.
Ahora imaginemos que necesita servir 12 tazas de té. ¿Su personal sabe cómo hacer una cerveza adecuada? ¿Su personal sabe cómo usar una tetera o una sartén? ¿Qué garantía tienes de que cada taza de té será la misma?
Podría dedicar mucho tiempo a capacitar a las personas y asegurarse de tener todos los electrodomésticos que necesita. O puede invertir en una máquina que producirá la misma taza de té una y otra vez.
La analogía puede parecer estúpida, pero mi punto es que los problemas relativamente comunes ya tienen soluciones bien conocidas.
A menos que sea un escenario único o tenga restricciones adicionales que no conozcamos, ¿qué razones tiene para no considerar Docker?