‫¿Cuál es la mejor estrategia para retrasar sus contenedores con el fin de mantenerlos en un orden específico como
‫hacer D. SEGUNDO. Webb conejo y demás.
‫Entonces, la cosa número uno es que ni siquiera es un desarrollador OP que dice que es una cosa de computación
‫distribuida.
‫Supongo que está hablando de producción, no de flujo de trabajo de desarrollo local con algo
‫como Docker compose.
‫Pero estás hablando de producción, todas tus aplicaciones tienen que poder fallar o volver a intentarlo.
‫Por lo tanto, si todo esto es antes de Docker, básicamente, sea lo que sea que esté usando allí, tiene
‫que recuperarse de alguna manera de no poder hablar con otros servicios fuera de los suyos.
‫Y este es un principio central de la informática distribuida.
‫De hecho, si miras cuál sería un recurso aquí, 12 factor doce factor punto neto es una especie de conjunto de principios de hace una década en torno a la
‫mentalidad de la computación nativa y distribuida en la nube, esos son dos tipos diferentes pero similares
‫de cosas que realmente se trata de si tengo un montón de servidores o un montón de cosas con las que mis
‫servidores tienen que hablar, ¿cómo puedo organizar todos los que estén disponibles cuando
‫necesiten estar disponibles?
‫Y la respuesta es que no puede controlar el inicio correctamente porque el inicio es solo una parte del problema.
‫Cuando tiene que reemplazar un contenedor si los otros contenedores pierden la conexión debido a que un contenedor o cualquier otro
‫servicio deja de funcionar por un segundo, todos los otros servicios que lo están utilizando
‫deben recuperarse.
‫Y así, a diferencia de los viejos tiempos, donde teníamos un solo servidor y poníamos la base de datos en
‫el sitio web en el mismo servidor y eso siempre estaba disponible y en línea hasta que se caía, eso era fácil.
‫Pero ahora en este mundo hemos distribuido la computación de sus contenedores y todos sus servicios tienen que tener
‫eso en cuenta.
‫Por lo tanto, o bien deben volver a intentarlo, lo que, si está haciendo desarrollo, la mayoría lo desarrolla, lo siento.
‫La mayoría de los controladores de bases de datos tienen reintentos integrados diseñados en ellos, por lo que en realidad volverán a
‫intentarlo como Mongo D. SEGUNDO. y nodo. js incluso tiene un protocolo de búfer en
‫el que no se puede conectar, mantendrá los comandos un poco para esperar a que la base de datos vuelva a estar en línea.
‫Está integrado en el controlador para su lenguaje en desarrollo, por lo que hay muchas cosas por
‫ahí.
‫Y si su aplicación no hace algo así, entonces simplemente falla.
‫Lo bueno si está utilizando la orquestación de contenedores es que parte de ese trabajo de ese
‫orquestador es si el contenedor simplemente se bloquea porque pierde la conexión de algo, entonces el orquestador se
‫reiniciará, básicamente comenzará una nueva copia de eso en otro lugar.
‫Y esa es una forma de recuperarse del fracaso.
‫Es un poco más limpio y menos exigente para sus sistemas si solo vuelven a intentarlo, pero otra
‫forma de hacerlo en Docker es dejar que sus aplicaciones se bloqueen esencialmente y luego Docker las reiniciará según su
‫configuración.
‫Así que sé que probablemente no sea el pequeño botón de clic.
‫Responde mucho
‫La gente puede simplemente responder Oh, necesitas agregar un reintento a la composición de tu médico o algo así, pero
‫esa no es una solución de producción porque solo tiene que ver con el inicio original y
‫si incluso buscas en Google algo como Espera, guiones que no Realmente no resuelves todo el problema porque vas a una
‫de las cosas: si vas a comenzar a usar contenedores, los
‫actualizarás más a menudo, eso es parte del progreso de la implementación de la mentalidad de los desarrolladores. las cosas se actualizarán
‫más a menudo que en el pasado porque ese es uno de los principales inquilinos de
‫las operaciones de desarrollo que evoluciona y mejora continuamente.
‫Entonces, cuando comienzas a hacer eso, eso significa que cualquier pieza de tu rompecabezas debe ser capaz de manejar cualquier otra pieza
‫del rompecabezas que se caiga y realmente no puedes hacerlo con el orden de inicio si sabes a lo que
‫me refiero.
‫Espero que eso ayude.
‫Es un problema difícil de resolver si se trata de aplicaciones heredadas, pero es un continuo.
‫Debe trabajar continuamente para continuar con el proceso de conseguir que todas sus aplicaciones manejen las fallas.
‫Esencialmente, no es un problema fácil en el interior.
‫Es un proceso por el que pasar.