‫De acuerdo, ahora que hemos aprendido todo sobre el escalado de enjambre con redes superpuestas y malla de enrutamiento, quiero que
‫realices el proceso de creación de los activos, o los objetos, que necesitas desplegar en un
‫escenario de Swarm.
‫Así que ya no estamos usando el comando de ejecución de la ventana acoplable, pero la red
‫y los volúmenes son similares, pero ligeramente diferentes.
‫Quiero darte un escenario del mundo real de una aplicación de varios niveles, y vamos a usar la aplicación de votación distribuida
‫de Docker.
‫En realidad se llama la aplicación de votación de ejemplo.
‫Puede haberlo visto en las notas magistrales de Docker, o en otros laboratorios o tutoriales.
‫Es una aplicación bastante común, y creo que excelente, porque tiene al menos cinco roles o
‫contenedores diferentes que debe implementar.
‫Y todos cumplen una función especial y en realidad están haciendo cosas que realmente funcionan, en realidad hacen lo que se
‫supone que deben hacer.
‫Y así puede jugar con él y tiene componentes de arquitectura distribuidos muy típicos, como la interfaz web
‫y el backend del trabajador, y
‫el valor clave en una base de datos. Creo que es realmente útil hacerlo. a utilizar el directorio swarm-app-1.
‫En este caso, vas De hecho, está en nuestro repositorio del curso. En él no hay nada
‫más que un archivo Léame y una imagen. A partir de ese archivo Léame, vas a necesitar crear el volumen y un par
‫de redes y cinco servicios que se necesitan para que esta aplicación funcione completamente.
‫Puede ayudarlo a probar algunos de estos comandos localmente, o realmente escribirlos en su editor de texto y componerlos, porque van
‫a ser un poco complejos, ¿verdad? Cuando hagas ese servicio de
‫Docker Create, tendrás que conectarlo a una red específica, abrir los puertos y llamarlo con
‫un nombre específico, y usar una imagen específica. Por lo tanto, podría ser más fácil editarlo localmente y luego simplemente
‫cortar y pegar en tu caparazón, donde sea que esté tu Swarm.
‫Pero solo soy yo.
‫Todo va a utilizar imágenes de Docker Hub porque en el Swarm de producción no quiere estar compilando.
‫Ese no es un proceso que desee en su Enjambre de producción, por lo general.
‫Por lo general, desea hacer su construcción ya sea a través de un servicio en línea automatizado como
‫Docker Hub o Docker Cloud, o en algún lugar de su tubería CI / CD que no está consumiendo recursos en su Enjambre de producción.
‫En este escenario, podemos imaginar que nuestras imágenes se están construyendo en otro lugar y
‫almacenadas en Docker Hub y solo tenemos que reducirlas, sean cuales sean las últimas versiones, en nuestro Swarm.
‫Y solo diré esto, como muchas cosas en Informática, esta es una mitad de ciencia, una mitad de arte.
‫Sus comandos podrían ser en órdenes totalmente diferentes, o tener órdenes de opción totalmente diferentes a las mías.
‫Puede llamar a sus redes cosas diferentes.
‫Esta bien.
‫El resultado final es que la aplicación funciona, que pueden comunicarse entre sí de la manera
‫adecuada, que tiene todos los puertos publicados y que tiene los datos protegidos en un volumen.
‫Echemos un vistazo rápido a lo que enfrenta.
‫Imagine que tiene que diseñar los comandos y la arquitectura para esto.
‫Y esto es lo que el desarrollador le daría a usted que escribió esta aplicación.
‫Bueno, en este caso, es probable que haya muchos desarrolladores que escribieron esta aplicación, ¿verdad?
‫Debido a que en realidad tenemos un frontend web que está en Python, tenemos un backend web que
‫se ejecuta en Node.
‫Tenemos un proceso de trabajo que se está ejecutando. NET y luego tenemos un almacén de valores clave
‫de Redis y una base de datos PostgreSQL.
‫Esto es realmente algo que veo cada vez más a menudo, donde diferentes equipos escriben diferentes partes
‫de una solución, y pueden elegir el idioma que creen que es mejor para ese escenario.
‫Y en el mundo de los contenedores, este tipo de aplicación realmente brilla. las dependencias de Python o lo que sea.
‫Debido a que
‫nuestras aplicaciones están todas segmentadas, todavía pueden ejecutarse técnicamente en la misma máquina pero están
‫todas protegidas entre sí para que no termines con el Nodo en conflicto con
‫También notará aquí el flujo de tráfico, y la aplicación de votación no lo tiene, pero debería tener una
‫pequeña flecha que indique que aquí es donde entrarían los usuarios en la parte de la
‫aplicación de votación.
‫Y puede ver que la aplicación de votación en realidad tiene que presionar sus votos para esta aplicación que, dicho sea de
‫paso, va a votar por gatos y perros.
‫Impulsará eso a Redis y luego el trabajador realmente revisará el sistema Redis para ver si hay
‫algo en la cola y luego empujará los resultados a Postgres, que luego se mostrará en un servidor de
‫WebSockets que en realidad se actualiza en vivo a medida que avanza votación.
‫Si ingresamos al directorio rápidamente, he agregado algunas notas aquí para ayudarlo en el camino porque hay
‫algunas cosas que son un poco diferentes y nuevas.
‫Sin embargo, el área de servicios se escribiría como si fuera de alguien que conocía su aplicación, pero
‫no sabía cómo implementarla en Docker. Y ese es un escenario bastante común.
‫imagen debe implementar, el nombre real que debe darle, porque esos son importantes.
‫Puede ver que en los servicios he enumerado qué
‫Estas son imágenes que, desafortunadamente, están codificadas para qué nombres van a buscar en la red.
‫Idealmente, querría aplicaciones que pudiera configurar sobre la marcha para lo que necesitan hacer para los nombres, pero,
‫en este caso, el voto buscará específicamente un registro DNS llamado redis. Puedes ver que en realidad hay
‫dos redes aquí. Tenemos una interfaz y una red back-end. Es bastante típico también de una
‫aplicación más grande en la que tal vez desee proteger su base de datos en una red backend para
‫que la aplicación del usuario frontend no tenga acceso directo a ella.
‫Y eso es lo que mostramos aquí y notará que el trabajador en realidad está conectado a dos redes.
‫Entonces, cuando use su comando de creación, recuerde que está utilizando el servicio de docker create not docker run.
‫Por lo tanto, cuando use el servicio de su docker create command, necesitará especificar la
‫red --network dos veces, una para el frontend y otra para el back-end.
‫Obviamente, usted sabe para crear sus redes primero.
‫Entonces, algo de eso se especifica aquí. Y si necesita la imagen de nuevo, el diagrama de la arquitectura
‫también está aquí, por si acaso eso ayuda conceptualmente con la forma en que va a implementar esto.
‫Y, por supuesto, vas a tener la documentación de Docker. Es posible que necesite usar --help en el
‫comando de creación del servicio que le dará todas las opciones que pueda necesitar.
‫Solo vas a necesitar tres o cuatro de esos. Si se queda atascado con los comandos en
‫sí, es posible que desee revisar la documentación real, que pondré en los recursos de esta sección.
‫Pero este documento en particular bajo Swarm en realidad va a crear servicios y configurar servicios.
‫Entonces, es un poco prolijo, pero tiene mucha información que podría ayudarte si te quedas
‫atrapado aquí.
‫En el próximo video voy a ver todo esto yo mismo como si fuera usted.
‫Buena suerte y diviértete.