Tiempo de lectura estimado: 4 minutos
Llegó la era de los contenedores, los contenedores Docker orquestados con Kubernetes a menudo se comparan con máquinas virtuales (VM). Ya estamos familiarizados con las máquinas virtuales: un sistema operativo invitado como Linux o Windows se ejecuta sobre un sistema operativo host con acceso virtualizado al hardware correspondiente.
Tabla de Contenidos
¿ Cómo hemos llegado a los contenedores?
Al igual que las máquinas virtuales, los contenedores te permiten empaquetar una aplicación junto con bibliotecas y otras dependencias, proporcionando entornos aislados para ejecutar los servicios de software.
Sin embargo, las similitudes terminan aquí, ya que los contenedores ofrecen una unidad mucho más ligera para que trabajen los desarrolladores y los equipos de operaciones de TI, con una gran cantidad de beneficios.
En lugar de virtualizar a nivel de hardware como con el enfoque de máquinas virtuales, los contenedores se virtualizan a nivel del sistema operativo, con múltiples contenedores ejecutándose directamente sobre el core del sistema operativo.
Por esto los contenedores son mucho más livianos, porque comparten el núcleo del sistema operativo, se inician mucho más rápido y usan una fracción de la memoria en comparación con el arranque de un sistema operativo completo.
Beneficios de los contenedores
Los contenedores se han vuelto populares porque proporcionan múltiples beneficios, algunos de ellos son:
- Utilización de recursos: alta eficiencia y densidad.
- Consistencia en desarrollo, pruebas y producción: se ejecuta igual en una computadora portátil que en la nube.
- Creación e implementación de aplicaciones más ágiles: mayor facilidad y eficiencia en la creación de imágenes de contenedor en comparación con el uso de imágenes de VM.
- Gestión centrada en la aplicación: aumenta el nivel de abstracción de ejecutar un SO en hardware virtual a ejecutar una aplicación en un SO utilizando recursos lógicos.
- Desarrollo, integración y despliegue continuos: proporciona una construcción y despliegue de imagen de contenedor confiable y frecuente con retrocesos rápidos y fáciles (debido a la inmutabilidad de la imagen).
- Micro-servicios libremente acoplados, distribuidos, elásticos y liberados: las aplicaciones se dividen en piezas más pequeñas e independientes y se pueden implementar y administrar dinámicamente, no una pila monolítica que se ejecuta en una máquina grande de un solo propósito
- Desde el punto de vista de la monitorización, no solo muestran información y métricas a nivel del sistema operativo, sino también el estado de la aplicación y otras señales.
- Portabilidad de distribución en la nube y el sistema operativo: se ejecuta en Ubuntu, RHEL, CoreOS, on-premise, Google Kubernetes Engine y en cualquier otro lugar.
¿ Y ahora cómo encaja Kubernetes aquí ?
Los contenedores son una excelente forma de agrupar y ejecutar sus aplicaciones.
En un entorno de producción se deben administrar los contenedores que ejecutan las aplicaciones y asegurarse de que no haya tiempo de inactividad. Pero si un contenedor se cae, otro contenedor debe comenzar y aquí es donde encaja Kubernetes, manejando el servicio de contenedores.
Kubernetes proporciona un marco para ejecutar sistemas distribuidos de manera resistente. Tiene un ecosistema muy extenso y de rápido crecimiento. Los servicios, el soporte y las herramientas de Kubernetes están ampliamente disponibles.
Kubernetes hace muchas cosas, entre otras destacamos:
- Kubernetes permite montar automáticamente un sistema de almacenamiento de su elección, como almacenes locales, proveedores de nube pública y más.
- Se puede describir el estado deseado para sus contenedores desplegados usando Kubernetes, y se puede cambiar el estado real al estado deseado a una velocidad controlada. Por ejemplo, puede automatizar Kubernetes para crear nuevos contenedores para su implementación, eliminar contenedores existentes y adoptar todos sus recursos para el nuevo contenedor.
- Se le indica a Kubernetes cuánta CPU y memoria (RAM) necesita cada contenedor y Kubernetes puede colocar contenedores en sus nodos para aprovechar al máximo sus recursos.
- Kubernetes reinicia los contenedores que fallan, reemplaza los contenedores, elimina los contenedores que no responden a su verificación de estado definida por el usuario y no los anuncia a los clientes hasta que estén listos para servir.
- Kubernetes permite almacenar y administrar información confidencial, como contraseñas, tokens OAuth y claves SSH. Puede implementar y actualizar secretos y la configuración de la aplicación sin reconstruir sus imágenes de contenedor y sin exponer secretos en su configuración de pila.
Kubernetes, no va ser una elección en el medio plazo, si no que será una necesidad, especialmente para los entornos basados en VMware que quieren dar un paso hacia el Cloud.
VMware apuesta por Kubernetes
Con una solución como VMware Tanzu Mission Control, se podrán gestionar clústeres de Kubernetes independientemente de donde se encuentren, AWS, Azure, VMware vSphere, Google.
Y con Project Pacific, VMware pretende convertir vSphere en una plataforma nativa para Kubernetes en el futuro. De modo que las empresas podrán acelerar el desarrollo y puesta en marcha de aplicaciones modernas en vSphere, al mismo tiempo que sigue sacando partido de inversiones existentes en herramientas y tecnología.
Desde JMG, estamos preparados para ayudar a nuestros clientes en este apasionante viaje hacia la nueva generación de soluciones híbridas.
Llámanos, no lo dudes, estamos aquí para escucharte. Tu proyecto es nuestro proyecto.