Empezar a trabajar con contenedores
En este curso te presentamos la tecnología de contenedores desde un punto de vista teórico y práctico. Desde su definición, evolución y fundamentos básicos de los contenedores; pasando por sus ventajas; y hasta cómo ejecutar y gestionar, contener o crear tus propias imágenes.
Comenzamos repasando los fundamentos básicos de esta nueva forma de trabajar para que te puedas iniciar fácilmente en el mundo de Docker, Kubernetes y otras tecnologías vinculadas a los contenedores. También recorremos sus orígenes y evolución. Todo ello acompañado de ejemplos prácticos que ayudan a comprender mejor cómo esta tecnología contribuye a mejorar los entornos de desarrollo y producción de tus aplicaciones.
Para acceder a este curso, no necesitas saber nada sobre las tecnologías de contenedores ya que lo hemos diseñado para empezar desde cero con esta nueva manera de desarrollar aplicaciones. Es una gran oportunidad para desarrolladores y técnicos que quieran iniciarse en el mundo de los contenedores.
Comenzar cursoTodos los capítulos
01. ¿Qué son los contenedores?
02. Contenedores vs. Virtualización
03. Historia de los contenedores
04. Docker, OCI y otros motores de contenedores alternativos
05. Operaciones básicas con contenedores
06. Contenedores para tu espacio de trabajo
07. Containerization: ejemplo para espacios de trabajo
08. Docker Compose para utilizar varios contenedores
09. Crea tus propios contenedores con Dockerfile
10. Compilar un código usando contenedores
12. Ejecutar tests unitarios usando contenedores
13. Ejecutar contenedores en otra máquina
14. Orquestadores de contenedores en producción
15. Historia de los contenedores en producción
16. Orquestación de contenedores con Kubernetes en DCD
17. Arquitectura, Kubernetes on premise y servicio gestionado
¿Qué podemos esperar de este curso?
-
Nuevas habilidades
Tendrás la oportunidad de adquirir nuevas habilidades a través de un aprendizaje estructurado, explorar temas desconocidos, practicar ejercicios y aplicar conocimientos teóricos en entornos reales.
-
Avalado por expertos
Impartido por expertos del sector con amplia experiencia. Comparten teorías innovadoras y ejemplos prácticos, asegurando contenido relevante y actualizado.
-
Para cualquier profesional
Tanto si eres desarrollador como si eres un profesional de otro ámbito, mejorarás tu experiencia con las últimas tendencias, acceso a nuevas metodologías y herramientas, fomentando la innovación y la eficiencia.
Capítulos y contenido
-
01. ¿Qué son los contenedores?
Los contenedores son una forma de virtualización a nivel de sistema operativo que permite empaquetar aplicaciones y sus dependencias en un entorno aislado y ligero. Los contenedores comparten el sistema operativo del host, lo que hace que sean más eficientes en cuanto a recursos y velocidad de implementación.
-
02. Contenedores vs. Virtualización
Mientras que la virtualización permite crear varias instancias de sistemas operativos en un único servidor físico mediante hipervisores, los contenedores se ejecutan en el mismo sistema operativo, aunque puedan tener entornos de ejecución aislados.
Los contenedores son especialmente útiles en entornos donde la agilidad y la escalabilidad son esenciales. Y, por otro lado, la virtualización sigue siendo importante, especialmente en situaciones donde es necesario emular entornos completos y mantener una mayor compatibilidad con aplicaciones legacy.
-
03. Historia de los contenedores
Un pequeño repaso histórico con los hitos más relevantes alrededor del nacimiento y evolución de la tecnología de contenedores. Nos remontamos mucho antes incluso del lanzamiento de Docker en 2013, que popularizó el paradigma de contenedorización, o de Kubernetes, el estándar para gestionar contenedores de manera automatizada y eficiente.
-
04. Docker, OCI y otros motores de contenedores alternativos
Aunque Docker sea el paradigma de contenedorización, el ecosistema de contenedores se ha ampliado a través de iniciativas como la Open Container Initiative (OCI), que busca establecer estándares interoperables y abiertos para los contenedores. La elección del motor apropiado dependerá de factores como la integración con sistemas existentes, la seguridad y el rendimiento necesario para cada caso de uso.
-
05. Operaciones básicas con contenedores
¡Manos a la obra! Ha llegado el momento en este curso de mostrar las operaciones básicas con contenedores y aprender la diferencia entre imagen y contenedor, algo imprescindible para aprovechar al máximo esta tecnología. Podríamos decir que una imagen es un archivo estático que contiene todo lo necesario para ejecutar una aplicación, incluyendo el código, las bibliotecas y las configuraciones. Sin embargo, un contenedor es una instancia en ejecución de esa imagen; es decir, es la representación activa que interactúa con el sistema operativo y otros servicios.
-
06. Contenedores para tu espacio de trabajo
Uno de los usos más efectivos que podemos encontrar en la tecnología de contenedores es ayudarnos a mantener un espacio de trabajo más limpio. Desde un punto de vista práctico, en este video comentaremos las alternativas que había antes y cómo el uso de contenedores simplifica muchos procesos, al permitir empaquetar las aplicaciones junto con sus dependencias de manera aislada y portátil.
-
07. Containerization: ejemplo para espacios de trabajo
¡Manos a la obra! Vamos a ver un ejemplo de cómo podemos containerizar un espacio de trabajo y usar contenedores en lugar de tener que instalar las dependencias a mano.Esta manera de trabajar acelera los ciclos de desarrollo y reduce el riesgo de errores, optimizando la colaboración entre los miembros de un equipo técnico.
Por ejemplo, en lugar de configurar cada máquina de desarrollo manualmente, se podría crear un contenedor que incluya todas las herramientas necesarias: un servidor web, bases de datos y librerías específicas. Con un simple comando, cada desarrollador puede ejecutar el contenedor en su máquina, asegurando que todos trabajan en el mismo entorno.
-
08. Docker Compose para utilizar varios contenedores
En el día a día es habitual trabajar con varios contenedores, que deberán comunicarse entre sí y, seguramente, tengamos que operar simultáneamente. En este vídeo introduciremos Docker Compose, una herramienta pensada para gestionar múltiples contenedores Docker como una sola aplicación, simplificando así el proceso de configuración, desarrollo y despliegue de entornos complejos.
Esta herramienta no solo mejora la eficiencia, sino que también hace que sea mucho más fácil replicar entornos de producción en estaciones de desarrollo. Imagina que un desarrollador necesita probar una nueva funcionalidad y necesita un conjunto específico de servicios. Con Docker Compose, puede simplemente cargar el archivo de configuración y tener todo lo necesario levantado y funcionando, sin tener que preocuparse por la configuración manual de cada contenedor.
-
09. Crea tus propios contenedores con Dockerfile
Nos centramos en unos de los recursos más útiles y básicos cuando trabajamos con contenedores: la creación de contenedores con un Dockerfile.
Un Dockerfile es un archivo de texto que contiene todas las instrucciones necesarias para construir una imagen de contenedor. A través de este archivo, puedes especificar el sistema operativo base, instalar software adicional, copiar archivos del sistema local al contenedor y configurar los comandos que se ejecutarán cuando el contenedor se inicie.
Explicamos el Dockerfile, del contexto de build y de la caché de capas, sin olvidarnos de por qué crear tus propios contenedores y una pequeña demo de cómo hacerlo.
-
10. Compilar un código usando contenedores
¿Sabías que es posible compilar usando contenedores? Eso significa que ni es necesario tener el SDK de un lenguaje para poder compilar un código en dicho lenguaje.Esto simplifica el proceso de compilación y lo que es más importante, garantiza que el código sea consistente en diferentes entornos, eliminando problemas como el clásico "funciona en mi máquina". ¡En este vídeo vamos a ver cómo hacerlo!
-
11. Uso de Multi-Stage-Build
Muy relacionado con la compilación del código usando contenedores que vimos en el vídeo anterior, nos centramos hoy en un Multi-Stage-Build y cómo su uso nos soluciona algunos de los problemas que nos quedaron pendientes en el vídeo anterior.
Multi-Stage-Build es una práctica esencial para optimizar la construcción de imágenes y mejorar tanto el tiempo de compilación como el tamaño final de las imágenes. Este enfoque permite dividir el proceso de construcción en múltiples fases, donde cada fase puede utilizar diferentes imágenes base y herramientas específicas necesarias para esa etapa.
-
12. Ejecutar tests unitarios usando contenedores
Dentro esta especie de trilogía centrada en la compilación de código con contenedores, vemos cómo ejecutar tests unitarios en contenedores. Al encapsular la aplicación y sus dependencias dentro de un contenedor, puedes asegurarte de que los tests se ejecuten en un entorno consistente, lo que elimina problemas relacionados con configuraciones locales.
Por ejemplo, puedes configurar un contenedor con todas las herramientas necesarias para realizar pruebas en una aplicación en Python o Java, asegurándote de que todos los miembros del equipo utilicen las mismas versiones de bibliotecas y frameworks.
-
13. Ejecutar contenedores en otra máquina
Ejecutar contenedores en otra máquina, especialmente en un entorno remoto, es una práctica común y muy valiosa que permite escalar aplicaciones y mejorar su disponibilidad. De este modo, por ejemplo, puedes realizar el despliegue de un conjunto de servicios en un servidor remoto y gestionar su ciclo de vida con herramientas de orquestación como Kubernetes.
En este vídeo te explicamos cómo utilizar una máquina remota, en este caso un Servidor Cloud de Arsys, para ejecutar tus contenedores de forma fácil y sencilla.
-
14. Orquestadores de contenedores en producción
Todo lo que hemos visto hasta ahora en este curso de contenedores era aplicable en entornos de desarrollo. Pero en producción ya hablamos de otra historia porque requerimos características como alta disponibilidad, escalabilidad, monitorización, etc. En este vídeo analizaremos las diferencias entre ejecutar contenedores en desarrollo y en producción e introducimos el concepto de orquestador de contenedores.
-
15. Historia de los contenedores en producción
Hacemos un poco de arqueología y revisaremos algunos datos históricos sobre los contenedores y los orquestadores que te ayudarán a entender el contexto actual. Por un lado, analizaremos lo que se conoció como “la guerra de orquestadores” y finalmente haremos un rápido repaso a la historia de Kubernetes.
-
16. Orquestación de contenedores con Kubernetes en DCD
Kubernetes es hoy en día el estándar de facto para orquestación de contenedores. En este vídeo analizaremos qué nos ofrece Kubernetes y que no nos ofrece, explicando también cómo el panel Data Center Designer nos simplifica su uso dentro de las soluciones de Cloud Pública de Arsys.
-
17. Arquitectura, Kubernetes on premise y servicio gestionado
Para apreciar las ventajas de un servicio gestionado como el Kubernetes que encontraremos en Data Center Designer, el panel de la Cloud Pública de Arsys, no hay nada mejor que ver un poco por encima la estructura interna de Kubernetes. Analizaremos su arquitectura y en qué se diferencia usar un Kubernetes on premise del servicio gestionado de Arsys.
-
18. Cloud Native dentro de la CNCF
Kubernetes no está sólo en el mundo de ejecutar contenedores en producción. Existe un enorme ecosistema de servicios y aplicaciones para permitirte desplegar aplicaciones basadas en contenedores en producción. En este video analizaremos brevemente este ecosistema y que entendemos como cloud native dentro del contexto de la CNCF (Cloud Native Computing Foundation).