Concrete Logo
Hamburger button

Las diferencias entre Docker, Kubernetes y Openshift

  • Blog
  • 18 de Junho de 2019
Share



ENVASADO Y AISLAMIENTO CON CONTAINERS DOCKER

Docker surgió en 2013 inicialmente como una capa sobre la funcionalidad del Kernel de Linux llamada LXC (Linux Containers), que permite la ejecución de procesos de manera aislada y restringida. Posteriormente intercambiaron LXC por libcontainer, permitiendo su uso más allá de Linux.

La tecnología de contenedores permite girar procesos, servicios y aplicaciones de manera aislada, es decir, uno no ve el otro, y de forma limitada, en el que cada uno tiene un límite de los recursos de hardware disponibles como cantidad de memoria y espacio en disco.

Los contenedores son más “ligeros” que las máquinas virtuales porque no necesitan simular el hardware y no necesitan cargar un sistema operativo completo antes de ejecutar una aplicación. Utilizan como base Imágenes Docker que son archivos comprimidos que contienen un sistema de archivos y la aplicación que se ejecuta.

Básicamente una aplicación se empaqueta en la forma de una Imagen Docker y cada instancia en ejecución se llama contenedor.

ORQUESTACIÓN CON KUBERNETES

La orquestación de contenedores es la capacidad de aprovisionar automáticamente la infraestructura necesaria para satisfacer las solicitudes de las aplicaciones web a través de contenedores de Docker.

Kubernetes, también conocido como k8s, es una herramienta de código abierto creada por Google y distribuida en 2014 para automatización de despliegue y administración de contenedores. Con él es posible crear un clúster de contenedores en nubes privadas o públicas (AWS, Google Cloud, etc.).

Algunas ventajas de Kubernetes:

  • Container siempre en línea: comprueba la salud de la aplicación y recrea el contenedor si identifica alguna anomalía.
  • Autoscaling: obtiene métricas y verifica si hay necesidad de crecer horizontalmente.
  • Descubrimiento de Servicio: contenedores reciben una dirección IP y logran ver el uno al otro a través de una red virtual.
  • Crecimiento horizontal: con un simple comando es posible aumentar el número de contenedores de la misma imagen.
  • Balanceador de carga: utiliza load balancer para dividir la carga de solicitudes recibidas entre los contenedores.
  • Rollbacks automáticos: si algo sale mal, Kubernetes vuelve automáticamente a la versión anterior de la aplicación.
  • Ejecución en Batch: permite ejecutar comandos en batch como contenedores.

PLATAFORMA COMO SERVICIO (PAAS) USANDO OPENSHIFT

Openshift es una plataforma desarrollada por Red Hat que utiliza como base el Kubernetes. Actualmente hay 3 distribuciones:

Openshift Origin: versión de código abierto utilizada para quien desea crear un clúster sin tener que pagar licencias.

Openshift Enterprise: versión comercializada por Red Hat basada en Origin y soportada oficialmente por Red Hat Linux.

Openshift Online: plataforma de servicio proporcionada por Red Hat concurrente de Heroku y Google App Engine.

Pero, ¿cuáles son las ventajas y diferencias entre el Openshift y los Kubernetes? Openshift ha introducido algunas capas que lo hacen más amigable y fácil de integrar con soluciones de software utilizadas en el mundo corporativo. Algunas de las ventajas del Openshift en relación a los kubernetes.

  • Source a Image (S2I) y Build Config: capacidad para obtener el código fuente de la aplicación desde un repositorio Git y crear una imagen Docker lista para su uso. Un Build se dispara cuando hay un cambio en el código del repositorio a través de un Webhook.
  • Integrated Docker Registry: posee un Docker Registry privado utilizado para almacenar las Imágenes Docker creadas por el proceso de Source to Image.
  • Image Stream: el Openshift realiza el seguimiento de las Imágenes Docker y vuelve a crear los contenedores cuando detecta un cambio en la imagen.
  • Deployment Config: una macro de servicio que detecta cuando hay un cambio en la configuración, por ejemplo un cambio en el valor de una variable de entorno, y vuelve a crear los contenedores.
  • Directivas: políticas de autorización para usuarios, permitiendo por ejemplo que un determinado usuario sólo pueda ver los registros de los contenedores.
  • Webconsole: una interfaz web amigable que permite escalar contenedores, ver registros de aplicaciones y contenedores y cambiar configuraciones de pods, services, routes, deployments, etc.

 

CONCLUSIÓN

Containers llegaron para revolucionar la forma en que se ejecutan aplicaciones web, trayendo más seguridad y agilidad. Cuando hay un número grande de aplicaciones se hace necesaria una herramienta para una gestión mejor y más efectiva de contenedores y en eso el Kubernetes ayuda bastante a los adeptos de la cultura DevOps. En el mundo corporativo, con procesos más burocráticos y mecanismos de control, Openshift es muy bienvenido, aún más la versión Enterprise contando con soporte de Red Hat e integración con los sistemas operativos Red Hat Linux Enterprise y Red Hat Linux Atomic Host.

¿Ha habido alguna duda o tiene alguna opinión sobre el asunto? ¡Deja un comentario abajo! Hasta la próxima.

¿Es adepto a la cultura DevOps y quiere trabajar en un equipo? Haga clic aquí..