﻿1
00:00:05,810 --> 00:00:10,720
‫Esta sección va a estar llena de conferencias y asignaciones en torno a datos persistentes.

2
00:00:11,230 --> 00:00:16,490
‫Primero, vamos a discutir los problemas de los datos persistentes y cómo eso se convirtió en

3
00:00:16,490 --> 00:00:18,280
‫un problema en primer lugar.

4
00:00:18,290 --> 00:00:23,640
‫Los conceptos clave que necesita comprender son la idea de una infraestructura inmutable.

5
00:00:23,810 --> 00:00:28,580
‫Y la idea de que los contenedores sean naturalmente efímeros en el diseño.

6
00:00:28,880 --> 00:00:36,680
‫Cubriremos aquellos en la primera conferencia. Luego profundizaremos en los volúmenes de datos y cómo estos resuelven

7
00:00:36,680 --> 00:00:44,270
‫algunos de nuestros problemas en torno a los datos persistentes. Luego también profundizaremos en los montajes de unión y

8
00:00:44,360 --> 00:00:50,660
‫cómo eso resuelve diferentes problemas con datos persistentes. de la base de datos, mientras reemplazamos contenedores por bases de datos.

9
00:00:50,720 --> 00:00:57,530
‫Luego, terminaremos esta sección con un par de asignaciones sobre cómo preservar los datos Y luego también alrededor de montar el código

10
00:00:57,740 --> 00:01:03,320
‫en un contenedor desde el host mientras lo está editando, para que

11
00:01:03,320 --> 00:01:11,560
‫pueda ejecutar ese código dentro del contenedor en vivo. Los requisitos para esta primera conferencia son simplemente entender cómo manejar

12
00:01:11,560 --> 00:01:16,970
‫los contenedores y los conceptos de contenedores e imágenes que hemos discutido hasta ahora.

13
00:01:17,050 --> 00:01:23,230
‫Hasta ahora, solo se ha preocupado por lo que se necesita para ejecutar un contenedor, no por los datos únicos que podrían crearse una

14
00:01:23,230 --> 00:01:24,920
‫vez que se está ejecutando un contenedor.

15
00:01:25,840 --> 00:01:29,200
‫Los contenedores deben ser inmutables y efímeros.

16
00:01:29,320 --> 00:01:34,220
‫Esas son palabras de moda para invariables y temporales, o desechables.

17
00:01:34,480 --> 00:01:40,180
‫La idea aquí es que podemos simplemente tirar un contenedor y crear uno nuevo a partir de una

18
00:01:40,180 --> 00:01:40,770
‫imagen, ¿verdad?

19
00:01:41,790 --> 00:01:47,820
‫Entonces, no estamos hablando de una limitación real de los contenedores, sino de un objetivo de diseño

20
00:01:47,820 --> 00:01:49,070
‫o una mejor práctica.

21
00:01:49,080 --> 00:01:54,690
‫Esta es la idea de una infraestructura inmutable donde no cambiamos las cosas una vez que se están ejecutando.

22
00:01:54,840 --> 00:02:00,330
‫Si es necesario que se produzca un cambio de configuración, o tal vez sea necesario realizar la actualización de la versión del

23
00:02:00,330 --> 00:02:02,420
‫contenedor, volveremos a implementar un contenedor completamente nuevo.

24
00:02:02,490 --> 00:02:08,370
‫Esto nos brinda grandes beneficios en fiabilidad y consistencia, y hace que los cambios sean reproducibles.

25
00:02:08,490 --> 00:02:10,350
‫Pero hay una compensación.

26
00:02:10,350 --> 00:02:16,140
‫¿Qué pasa con los datos únicos que producirá su aplicación? Esas bases de datos, o un valor clave almacena, o cualquier otra

27
00:02:16,140 --> 00:02:18,150
‫cosa que su aplicación escupe en un archivo?

28
00:02:18,330 --> 00:02:24,810
‫Idealmente, los contenedores no deberían contener sus datos únicos combinados con los binarios de la aplicación. Esto se conoce como "separación de

29
00:02:24,810 --> 00:02:30,340
‫preocupaciones" y Docker realmente nos da un gran beneficio aquí.

30
00:02:30,450 --> 00:02:36,780
‫Podemos actualizar nuestra aplicación mediante la recreación de un nuevo contenedor, con una versión actualizada de nuestra aplicación, e

31
00:02:36,990 --> 00:02:42,530
‫idealmente, nuestros datos únicos se encuentran donde deben estar y se conservaron mientras nuestro contenedor se reciclaba.

32
00:02:42,540 --> 00:02:48,510
‫En caso de que no lo haya notado hasta ahora, los contenedores que hemos estado usando, de forma predeterminada, eran persistentes.

33
00:02:48,510 --> 00:02:53,880
‫Cualquier cambio en ellos en realidad se mantuvo a través de reinicios y reinicios hasta que eliminamos el contenedor.

34
00:02:54,240 --> 00:02:57,160
‫El hecho de que hayamos detenido el contenedor o reiniciado el host,

35
00:02:57,300 --> 00:03:00,030
‫no significa que los cambios en el archivo del contenedor desaparezcan.

36
00:03:00,210 --> 00:03:05,910
‫Es solo cuando eliminamos el contenedor que su capa UFS se va, pero queremos poder

37
00:03:05,910 --> 00:03:07,160
‫hacerlo a voluntad.

38
00:03:07,170 --> 00:03:13,320
‫Este problema de datos únicos se conoce en la industria como "datos persistentes" y hasta los

39
00:03:13,320 --> 00:03:19,230
‫contenedores, realmente no teníamos un nombre para eso. Porque, bueno, la mayoría de las cosas que creamos eran persistentes, como

40
00:03:19,230 --> 00:03:24,090
‫si supieras esos viejos servidores que han estado ejecutando esa aplicación vieja durante cinco o 10 años o más.

41
00:03:24,270 --> 00:03:26,850
‫Todo era persistente por defecto.

42
00:03:26,850 --> 00:03:32,400
‫Ahora, en el nuevo mundo de la escala automática de contenedores y aplicaciones, los datos persistentes crean

43
00:03:32,400 --> 00:03:33,280
‫un problema único.

44
00:03:33,420 --> 00:03:36,640
‫Docker tiene dos soluciones para este problema, conocidas

45
00:03:36,720 --> 00:03:42,450
‫como "volúmenes de datos" y "montajes de enlace". "Los volúmenes de Docker son una opción de

46
00:03:42,450 --> 00:03:46,620
‫configuración para un contenedor que crea una ubicación especial fuera del sistema

47
00:03:46,620 --> 00:03:50,130
‫de archivos de unión de ese contenedor para almacenar datos únicos.

48
00:03:50,210 --> 00:03:55,470
‫Esto lo preserva a través de las eliminaciones de contenedores y nos permite adjuntarlo a cualquier contenedor que deseemos.

49
00:03:55,940 --> 00:03:58,210
‫Y el contenedor simplemente lo ve como una ruta de archivo local.

50
00:03:58,440 --> 00:04:05,670
‫Luego están las monturas de unión, que simplemente nos permiten compartir o montar un directorio de host, o un archivo, en un contenedor.

51
00:04:05,970 --> 00:04:10,470
‫De nuevo, se verá como una ruta de archivo local, o una ruta de directorio, al contenedor.

52
00:04:10,470 --> 00:04:12,590
‫En realidad, no sabrá que proviene del host.

