Logo Studenta

3 Qué es Docker y Por qué debo saberlo

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.

Continuar navegando