Descarga la aplicación para disfrutar aún más
Esta es una vista previa del archivo. Inicie sesión para ver el archivo original
1 00:00:04,340 --> 00:00:09,770 Solo relájense un momento y escúchenme, porque esto es una presentación corta en la cual vamos a explicar 2 00:00:09,770 --> 00:00:11,450 que es Docker y por qué debo de saberlo. 3 00:00:12,020 --> 00:00:17,480 Primeramente, antes de Docker, cuando venía un nuevo desarrollador a nuestro proyecto, nosotros le 4 00:00:17,480 --> 00:00:23,570 pedimos Por favor instala estas herramientas que estamos hablando de María de Ready y también necesito 5 00:00:23,570 --> 00:00:25,100 una base de datos de Mongo, de B. 6 00:00:25,670 --> 00:00:27,650 Entonces el programador llega, los instala. 7 00:00:27,800 --> 00:00:28,860 Pero sabes qué? 8 00:00:28,880 --> 00:00:30,080 Se me olvidó decirte algo. 9 00:00:30,080 --> 00:00:32,660 Yo necesito que instales estas versiones en específico. 10 00:00:32,870 --> 00:00:33,280 Por qué? 11 00:00:33,350 --> 00:00:35,090 Porque esa aplicación es Legacy. 12 00:00:35,090 --> 00:00:37,520 Porque esta aplicación está usando la versión antigua de Reddit. 13 00:00:37,550 --> 00:00:42,170 Porque esta versión, a pesar de que estamos en la última versión de Mongo, la verdad es que todavía 14 00:00:42,170 --> 00:00:44,950 tenemos interacciones que no hemos migrado de María de V. 15 00:00:44,960 --> 00:00:51,410 Entonces hay ciertas cosas en las cuales ocupamos estas versiones en específico para trabajar y luego 16 00:00:51,410 --> 00:00:53,860 viene algo un poco más complicado. 17 00:00:53,900 --> 00:00:58,850 Resulta que el desarrollador tiene dos computadoras, le damos una desktop para cuando él viene a la 18 00:00:58,850 --> 00:01:04,460 oficina y tiene una laptop que él se lleva a su casa para seguir trabajando allá, suponiendo de que 19 00:01:04,460 --> 00:01:09,440 la computadora en la oficina es Linux y la computadora que él se llevó, o la laptop que se lleva es 20 00:01:09,440 --> 00:01:10,070 Windows. 21 00:01:10,310 --> 00:01:13,970 Eso implicaría que podemos tener diferentes puntos de errores. 22 00:01:14,330 --> 00:01:18,350 Es decir, si estamos en Windows, puede ser que la versión x x x no es compatible. 23 00:01:18,560 --> 00:01:21,440 Si nos dieran una Mac puede que el software ni siquiera exista. 24 00:01:21,440 --> 00:01:27,380 O sea, no existe nada similar para la Mac y en Linux puede que esa versión que nosotros queramos instalar 25 00:01:27,380 --> 00:01:29,990 no es compatible con la distribución de Linux que tengo. 26 00:01:30,980 --> 00:01:36,890 Esto ya hace bastante complicada la instalación y que una persona empieza a ser productiva rápidamente. 27 00:01:37,340 --> 00:01:44,420 Luego viene un tercer problema aún más feo, el cual es que nosotros tenemos otra aplicación dos, es 28 00:01:44,420 --> 00:01:48,830 decir, una aplicación dos tres, que la persona también va a tener que darle mantenimiento, la cual 29 00:01:48,860 --> 00:01:51,770 usa versiones diferentes de estas tecnologías. 30 00:01:52,100 --> 00:01:56,060 Y aunque ustedes digan pero esto no va a pasar, esto casi nunca sucede, Esto es muy raro. 31 00:01:56,270 --> 00:01:58,040 Esto es más común de lo que ustedes creen. 32 00:01:58,430 --> 00:02:02,840 Entonces nosotros tenemos ahora una aplicación doble en la cual el programador tiene que darle nuevamente 33 00:02:02,840 --> 00:02:07,940 seguimiento y mantenimiento y actualizarla, la cual usa la última versión en este momento, la última 34 00:02:07,940 --> 00:02:12,230 versión, de manera que puede que el día de mañana ya no sea la última versión, la versión siete de 35 00:02:12,230 --> 00:02:16,850 redes y la versión cuatro de Mongo, porque todavía no hemos migrado a la versión cinco de Mongo por 36 00:02:16,850 --> 00:02:18,800 ciertas características que son incompatibles. 37 00:02:19,340 --> 00:02:25,070 Esta tarea parece ser imposible si nosotros estamos trabajando en nuestra computadora y mantener esto 38 00:02:25,070 --> 00:02:26,120 en dos computadoras. 39 00:02:26,120 --> 00:02:29,570 Tres computadoras es realmente un verdadero infierno. 40 00:02:30,540 --> 00:02:34,460 También más de uno dice Bueno, pero una solución sería que nosotros trabajemos con máquinas virtuales. 41 00:02:34,460 --> 00:02:39,170 No voy a hacer mucho énfasis en las máquinas virtuales aún, pero si nosotros no podemos, las máquinas 42 00:02:39,170 --> 00:02:43,640 virtuales son muy pesadas, es decir, porque nosotros estamos emulando la capa de aplicaciones y el 43 00:02:43,640 --> 00:02:47,930 kernel del sistema operativo, y esto incluye muchas cosas que nosotros no ocupamos. 44 00:02:47,930 --> 00:02:54,680 No ocupamos los juegos que pueden venir en el sistema operativo preinstalado, no ocupamos toda la interfaz 45 00:02:54,710 --> 00:02:57,710 visual porque solo queremos los procedimientos corriendo. 46 00:02:58,100 --> 00:03:02,570 También son más lentas porque cambiarlas, iniciarlas, ejecutarlas y transferirlas. 47 00:03:02,840 --> 00:03:09,230 Esto es algo que funciona mucho tiempo, sin contar que también hay muchos recursos que tener. 48 00:03:09,230 --> 00:03:11,000 Estas máquinas virtuales requieren. 49 00:03:11,010 --> 00:03:15,350 Imagínese que es tener una máquina virtual con cada una de esas configuraciones que yo les mencioné. 50 00:03:15,710 --> 00:03:20,990 La verdad es que se va a requerir bastante poder computacional para simplemente correr la aplicación, 51 00:03:20,990 --> 00:03:22,070 no para desarrollarla. 52 00:03:22,550 --> 00:03:25,160 Con Docker esto ya es una revolución. 53 00:03:25,160 --> 00:03:30,560 Básicamente lo que nos permite a nosotros manejar imágenes, entiéndase una imagen por ahora, que vamos 54 00:03:30,560 --> 00:03:37,340 a entrar en detalle y cada una de las cosas como una fotografía de la versión de cada una de estas tecnologías 55 00:03:37,340 --> 00:03:42,470 totalmente funcional que hicieron los mismos autores de esas tecnologías. 56 00:03:42,620 --> 00:03:46,190 Claro, también hay imágenes que son de terceros, pero ya hablaremos de eso. 57 00:03:46,580 --> 00:03:47,510 En pocas palabras. 58 00:03:47,810 --> 00:03:52,730 Yo ahora puedo tomar estas imágenes, que sería todo lo que yo necesito para correr. 59 00:03:52,730 --> 00:03:53,460 María de V. 60 00:03:53,480 --> 00:03:59,540 En la versión 10.3 y esa imagen la monto en un contenedor, el cual es algo aislado. 61 00:04:00,410 --> 00:04:01,730 Lo mismo voy a hacer con Ready. 62 00:04:01,760 --> 00:04:05,570 Lo mismo voy a hacer con Mongo y no importa en qué sistema operativo esté. 63 00:04:05,810 --> 00:04:11,330 Docker se encarga de asegurarse de que va a funcionar exactamente igual en cada uno de estos sistemas 64 00:04:11,330 --> 00:04:16,940 operativos y con cada una de esas versiones que yo estoy seleccionando, lo cual es increíblemente útil. 65 00:04:17,240 --> 00:04:22,010 Luego resolver el problema que nosotros teníamos de las versiones específico para la aplicación uno 66 00:04:22,010 --> 00:04:26,540 y dos es exactamente el mismo proceso, porque nosotros vamos a poder tener identificado cada una de 67 00:04:26,540 --> 00:04:29,630 las versiones que yo necesito para esa aplicación en particular. 68 00:04:30,020 --> 00:04:36,650 La ventaja de trabajarlo de esta manera es que con Docker nosotros tenemos nuestros nuestras imágenes 69 00:04:36,650 --> 00:04:39,430 o contenedores totalmente aislados entre sí. 70 00:04:39,860 --> 00:04:44,760 Es decir, ustedes van a poder tener inclusive varias instancias de la misma base de datos o varias 71 00:04:44,780 --> 00:04:50,450 instancias de la misma imagen, corriendo al mismo tiempo en la misma computadora sin ningún inconveniente 72 00:04:50,450 --> 00:04:52,910 y también sin hacer configuraciones adicionales. 73 00:04:53,270 --> 00:04:58,100 Con un solo comando podemos descargar, levantar y correr todo lo que necesitamos, todos esos montón 74 00:04:58,100 --> 00:05:00,920 de tecnologías para poder continuar desarrollando una aplicación. 75 00:05:01,310 --> 00:05:03,320 Cada contenedor contiene todo lo que se. 76 00:05:03,390 --> 00:05:07,260 Necesita para ejecutarse de manera al abrigo de la caja, por decirlo así. 77 00:05:07,710 --> 00:05:13,380 Y también es indiferente del sistema operativo host en el cual nosotros estamos corriendo esos contenedores. 78 00:05:13,800 --> 00:05:18,540 A diferencia de las máquinas virtuales, los contenedores se levantan en milésimas de segundo o segundos 79 00:05:18,540 --> 00:05:21,690 dependiendo de los procesos o si hay que hacer algún tipo de descarga. 80 00:05:22,470 --> 00:05:25,140 Analizamos un flujo de trabajo utilizando Docker. 81 00:05:25,470 --> 00:05:30,210 Nosotros empezamos a crear nuestra aplicación, la cual utiliza not, bombones y express. 82 00:05:30,720 --> 00:05:34,770 Nosotros estamos creando la aplicación, la estamos desarrollando, pero de repente se nos pide que 83 00:05:34,770 --> 00:05:39,930 tenemos que hacer una un moment de la aplicación porque el cliente la quiere ver o el desarrollador 84 00:05:39,930 --> 00:05:43,320 del frontend necesita empezar a trabajar con ella. 85 00:05:43,590 --> 00:05:44,100 Qué sé yo. 86 00:05:44,100 --> 00:05:49,290 X oye, razón nosotros ocupamos ya empezar a empaquetar nuestra aplicación y distribuirla. 87 00:05:49,710 --> 00:05:52,860 Entonces llegamos nosotros y vamos a generar nuestra imagen. 88 00:05:53,130 --> 00:05:58,410 Hacemos el Bill Process, el cual se puede automatizar mediante Git y Jenkins, para que automáticamente 89 00:05:58,410 --> 00:06:00,360 haga todo el proceso de construcción de nuestra imagen. 90 00:06:00,360 --> 00:06:04,980 Inclusive el siguiente paso también lo automatiza, que ya lo vamos a ver, pero construimos la imagen, 91 00:06:05,160 --> 00:06:11,040 entiéndase esta imagen que ahí ya estaría node instalado la aplicación instalada con únicamente las 92 00:06:11,040 --> 00:06:14,280 dependencias de producción, que no hay que ni siquiera instalar las dependencias de producción porque 93 00:06:14,280 --> 00:06:15,540 ya están empaquetadas ahí. 94 00:06:15,930 --> 00:06:19,740 Es decir, la imagen contiene todo lo que yo necesito para ejecutar la aplicación. 95 00:06:20,780 --> 00:06:26,330 Esa imagen yo la subo a un repositorio, la cual es muy parecido a GitHub, GitHub, GitHub, muy parecido 96 00:06:26,330 --> 00:06:30,530 a Big Box y todo lo demás, solo que está especializado para recibir imágenes de Docker. 97 00:06:30,980 --> 00:06:33,990 Hay repositorios públicos y privados y ya lo vamos a ver más adelante. 98 00:06:33,990 --> 00:06:38,090 Y cuando hagamos ese procedimiento, obviamente todo lo que ustedes están viendo aquí está simplificado 99 00:06:38,240 --> 00:06:41,930 para fines educativos, pero básicamente este es el proceso macro. 100 00:06:42,230 --> 00:06:48,020 Luego, cuando nosotros queremos desplegar esa imagen a un servidor, simplemente el servidor hace el 101 00:06:48,050 --> 00:06:53,390 pull de la imagen de la versión específica que nosotros queremos y el servidor se encarga de correr 102 00:06:53,390 --> 00:06:59,570 ese contenedor y ya tiene esa imagen en un contenedor y ya literalmente tiene todo lo que nosotros ocupábamos 103 00:06:59,570 --> 00:07:02,480 para correr la aplicación específicamente como yo lo necesito. 104 00:07:02,990 --> 00:07:08,570 Esto incluye que puede ser que otro desarrollador necesite esa aplicación de imagen que yo tengo específicamente 105 00:07:08,810 --> 00:07:11,150 para correr localmente y así seguir su desarrollo. 106 00:07:11,450 --> 00:07:14,120 Esto es increíblemente útil y poderoso. 107 00:07:14,300 --> 00:07:16,820 Cambiar de versiones y hacer versiones de versiones. 108 00:07:16,820 --> 00:07:19,950 Si algo sale mal en una versión nueva de producción que nosotros desplegamos. 109 00:07:19,970 --> 00:07:21,140 Es sumamente sencillo. 110 00:07:21,350 --> 00:07:29,060 Inclusive si ustedes no necesitan nada de esto, es sumamente productivo poder montar, borrar, volver 111 00:07:29,060 --> 00:07:34,580 a montar, cambiar de versión y sin dejar ningún rastro ni basura de configurar o configuraciones a 112 00:07:34,580 --> 00:07:35,600 medias en nuestro equipo. 113 00:07:36,170 --> 00:07:40,460 Esto vale la pena y aunque ustedes digan bueno, yo puedo hacer esto manual, no me cuesta nada. 114 00:07:40,940 --> 00:07:46,310 Eventualmente ustedes van a llegar a un punto donde necesitan saber Docker y posiblemente esa es la 115 00:07:46,310 --> 00:07:49,010 razón por la cual ustedes están tomando este curso en este momento. 116 00:07:49,130 --> 00:07:52,340 Así que comencemos toda la guía práctica a partir del siguiente video.
Compartir