Parte 2 - Tema 22 Flashcards
Plataformas de contenedores de software
¿Qué es un contenedor de software?
Un contenedor es un paquete de software que incluye todo lo necesario para ejecutar una aplicación: código, bibliotecas, herramientas del sistema operativo, etc. Aísla la aplicación del resto del sistema, garantizando un entorno de ejecución consistente y portátil.
¿Cuáles son las principales ventajas de utilizar contenedores?
- Portabilidad: Las aplicaciones empaquetadas en contenedores pueden ejecutarse en cualquier máquina que tenga un motor de contenedores (como Docker) instalado, sin depender del sistema operativo subyacente.
- Escalabilidad: Los contenedores se pueden iniciar y detener rápidamente, lo que facilita escalar las aplicaciones según la demanda.
- Densidad: Múltiples contenedores pueden ejecutarse en una sola máquina, optimizando el uso de los recursos.
- Aislamiento: Cada contenedor tiene su propio entorno aislado, lo que reduce el riesgo de conflictos entre aplicaciones.
¿Cuáles son los componentes principales de una plataforma de contenedores?
- Motor de contenedores: El motor (como Docker) crea y gestiona los contenedores individuales.
- Orquestador: Orquestra la ejecución de múltiples contenedores, gestionando su despliegue, escalado y equilibrio de carga (ej: Kubernetes, OpenShift).
- Registro de contenedores: Almacena las imágenes de los contenedores para su distribución y reutilización.
- Herramientas de gestión: Proporcionan una interfaz para administrar los clústeres de contenedores y las aplicaciones que se ejecutan en ellos.
¿Qué es Kubernetes?
Kubernetes es una plataforma de orquestación de contenedores de código abierto que automatiza el despliegue, escalado y gestión de aplicaciones contenedorizadas.
¿Qué es OpenShift?
OpenShift es una plataforma de aplicaciones basada en contenedores que proporciona una interfaz de usuario y herramientas para desarrollar, desplegar y gestionar aplicaciones en contenedores. Se basa en Kubernetes y ofrece características adicionales como gestión de imágenes, integración continua y entrega continua (CI/CD).
¿Cuáles son las principales diferencias entre Docker y Kubernetes?
- Docker: Se enfoca en crear y gestionar contenedores individuales.
- Kubernetes: Orquesta la ejecución de múltiples contenedores, gestionando clústeres enteros de aplicaciones.
¿Cuáles son los principios básicos de los contenedores?
- Inmutabilidad: Los contenedores se crean a partir de imágenes que son inmutables.
- Aislamiento: Cada contenedor tiene su propio entorno aislado.
- Portabilidad: Los contenedores pueden ejecutarse en cualquier máquina que tenga un motor de contenedores.
- Escalabilidad: Los contenedores se pueden escalar fácilmente para satisfacer la demanda.
¿Cuáles son algunas de las herramientas más utilizadas en el ecosistema de contenedores?
- Docker: El motor de contenedores más popular.
- Kubernetes: La plataforma de orquestación de contenedores más utilizada.
- Helm: Un gestor de paquetes para Kubernetes.
- Docker Compose: Define y ejecuta aplicaciones multi-contenedor usando Docker.
- Minikube: Una implementación de Kubernetes para un solo nodo, ideal para desarrollo y pruebas.
¿Cuáles son los principales desafíos al adoptar contenedores?
- Curva de aprendizaje: Requiere aprender nuevos conceptos y herramientas.
- Complejidad: La gestión de clústeres de contenedores puede ser compleja.
- Seguridad: Es necesario implementar medidas de seguridad adecuadas para proteger los contenedores.