Parte 2 - Tema 22 Flashcards
Plataformas de contenedores de software (9 cards)
¿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.