jueves, 21 de mayo de 2020

VMware vSphere 7 con Kubernetes

En el VMworld del año 2019 Pat Gelsinger (CEO de VMware), nos adelantaba cuál sería la tendencia para la nueva versión de VMware (la versión 7), que incluyó lo que en la empresa denominaron como el "Proyecto Pacífico". ¿En qué consiste Proyecto Pacífico? En la inclusión de Contenedores dentro de el ambiente de ejecución de VMware vSphere.

Para comenzar a entender mejor todo esto, comencemos respondiendo a la pregunta:

¿Qué son los Contenedores?

Si buscamos en Google, inmediatamente veremos que un contenedor es "...un recipiente de carga para el transporte marítimo o fluvial, transporte terrestre y transporte multimodal". Cierto. Esas enormes cajas de acero perfilado que utilizan la industria naviera, ferroviaria y de transporte de carga por carretera, para distribuir productos a nivel mundial.

Mas sin embargo en el ámbito de las Tecnologías de la Información, los Contenedores son una solución al problema de cómo hacer que el software se ejecute confiablemente cuando se traslada de un entorno informático a otro. En esencia es el empaquetar código de manera en la que pueda ejecutarse de manera independiente, siendo sólo necesario el contar un el Kernel de un Sistema Operativo.

Antes de los contenedores, era muy poco probable que pudiésemos ejecutar varias aplicaciones sobre el mismo ambiente de ejecución (hardware físico al que ya se le había instalado un Sistema Operativo), pues los recursos que requería una aplicación podrían estar siendo utilizados por otra (u otras) dentro del mismo ambiente. Una manera de resolver esto fue con la Virtualización, pues gracias a las propiedad de Particionamiento, Encapsulamiento y Aislamiento, ahora en el mismo Servidor podíamos tener a varios aplicativos corriendo sin problema alguno.

Todo muy bien hasta aquí, pero para que puedan ejecutarse las Máquinas Virtuales, es necesario contar con un Hipervisor (sustituyendo al Sistema Operativo que otrora se instalaba directamente sobre el Hardware del equipo Servidor). Si la aplicación a ejecutar era pequeña o para cumplir con las nuevas metodologías y tendencias del Desarrollo de Software requerías de Microservicios, una Máquina Virtual para cada Microservicio resultaba en un desperdicio de recursos de Procesador y Memoria (principalmente).

Es entonces cuando en el mundo Linux y Código Abierto, nace el concepto de los Contenedores. Estos últimos NO son máquinas virtuales, sino mas bien la aplicacion o el Microservicio en cuestión, que se ha encapsulado junto con las bibliotecas y recursos informáticos indispensables (y nada más) para su ejecución. Como mencionamos líneas arriba, NO es necesario un Hipervisor, sino el Kernel del Sistema Operativo en el que se ejecuta comúnmente el Microservicio. ¿Resultado? Elementos de ejecución que gozaban también de las propiedades de Particionamiento, Encapsulamiento y Aislamiento, pero que no requieren todo un Hipervisor, tanta Memoria y tanto Procesador.

Ahora bien. Así como en el mundo físico, para que nuestros Contenedores de carga puedan viajar con seguridad y eficiencia por vía marítima se requiere de inmensos buques portacontenedores, los desarrolladores del mundo del Código Abierto crearon software exprofeso. El más famoso y más utilizado se llama "Docker".

¿Qué es Docker?

Per se, la palabra anglosajona "docker" se refiere a un estibador o persona que trabaja en un muelle (dock en inglés), cargando y descargando mercancías en hacia o desde los buques cargueros. Pero en el tema que nos ocupa, Docker es -"...un software que nació como parte del proyecto de código abierto, que automatiza el despliegue de aplicaciones dentro de contenedores de software, proporcionando una capa adicional de abstracción y automatización de virtualización de aplicaciones en múltiples sistemas operativos."- Este texto viene de Wikipedia.

Si quiere Usted profundizar más en el tema, recomendamos ingresar a la página oficial: https://www.docker.com/

Fue tal el éxito de Docker y los Contenedores, que pronto las áreas de Desarrollo de empresas y organizaciones de toda índole y todo tamaño, se volcaron a adoptar esta plataforma para "contenerizar" sus aplicaciones. Esto dio por resultado que fuese necesario algo que permitiera poner orden en un caos cada vez mayor. Nace entonces Kubernetes

¿Qué es Kubernetes?

Wikipedia lo define como: -"...un sistema de Código Abierto para la automatización del despliegue, ajuste, escalabilidad y administración de aplicaciones en contenedores. Fue originalmente diseñado por Google y donado a la Cloud Native Computing Foundation (parte de la Linux Foundation). Soporta diferentes entornos para la ejecución de contenedores, incluido Docker.

De la último enunciado del párrafo inmediato anterior, se infiere que Kubernetes y Docker NO SON RIVALES, sino más bien complementos.

Cabe mencionar que dentro de la comunidad Docker, ya se tiene una opción que puede ser vista como "competencia" o más bien otra alternativa para Docker. Esta se llama Swarm. Pero por su robustez, por sus excelentes resultados y ser una herramienta que permite la automatización del despliegue, ajuste, escalabilidad y administración de aplicaciones en contenedores en ambientes de todo tamaño y de toda índole, se ha tomado a Kubernetes como el estándar "de facto". ¿Más información? Recomendamos ingresar al portal oficial: https://kubernetes.io/

Contenedores en VMware

Algo que debe quedar perfectamente claro y no causar confusión alguna, es el hecho de que los Contenedores NO SON MÁQUINAS VIRTUALES, mientras que las Máquinas Virtuales NO SON CONTENEDORES. vale la pena mencionar que dentro de una Máquina Virtual (con Sistema Operativo Linux principalmente) SÍ puede ejecutar Dockers, Kubernetes y por ende Contenedores. Pero dentro de un contenedor no podemos tener una Máquina Virtual.

vSphere 7 con Kubernetes permite a los operadores y desarrolladores de Tecnologías de la Información acelerar la innovación mediante la convergencia de contenedores y máquinas virtuales, ejecutándose sobre la plataforma vSphere de VMware con Kubernetes nativo. VMware ha aprovechado Kubernetes para volver a diseñar vSphere y extender sus capacidades a todas las aplicaciones modernas y tradicionales.

vSphere 7 con Kubernetes transforma vSphere en la plataforma de aplicaciones del futuro.

Las empresas ahora pueden acelerar el desarrollo y la operación de aplicaciones modernas en VMware vSphere mientras continúan aprovechando las inversiones existentes en tecnología, herramientas y conjuntos de habilidades. Al aprovechar Kubernetes para volver a diseñar vSphere, vSphere 7 con Kubernetes permitirá a los desarrolladores y operadores de TI crear y administrar aplicaciones compuestas de contenedores y/o máquinas virtuales. Este enfoque brinda a las empresas una plataforma única para operar aplicaciones existentes y modernas en paralelo.

vSphere 7 con Kubernetes expone un nuevo conjunto de servicios que los desarrolladores pueden consumir a través de la Application Programming Interface de Kubernetes. El servicio VMware Tanzu Kubernetes Grid para vSphere permite a los desarrolladores administrar el ciclo de vida de los clústeres de Kubernetes bajo demanda. El servicio de red habilita el equilibrio de carga integrado, el ingreso y la política de red para los clústeres de Kubernetes del desarrollador.

El servicio de almacenamiento, integra vSphere Cloud Native Storage en Kubernetes para proporcionar soporte de aplicaciones con estado con volúmenes persistentes gracias a vSphere Virtual Volumes.

El servicio vSphere Pod aprovecha los otros servicios para entregar "Pods" nativos sobre el hipervisor Esxi. El lugar principal donde los clientes ejecutarán los "Pods" es en los clústeres alineados en sentido ascendente, totalmente conformados e implementados a través del servicio de Tanzu Kubernetes Grid. El Pod Service complementa el servicio Tanzu Kubernetes Grid para casos de uso específicos, donde los componentes de la aplicación necesitan el aislamiento de seguridad y rendimiento de una Máquina Virtual, en un factor de formato Pod.

vSphere 7 con Kubernetes tiene un servicio de registro nativo que se puede usar para implementar imágenes de contenedor como Pods de Kubernetes.

La administración enfocada en la aplicación, significa que la política se ha adjuntado a los "Name Spaces" que contienen las aplicaciones del desarrollador. Los equipos de operaciones ahora tienen una vista holística de una aplicación al administrar el "Name Space" que contiene todos los objetos de la aplicación.



Entonces, ¿se trata de la creación de una Máquina Virtual, con Sistema Operativo Linux super básico, al que se le instala la plataforma para Contenedores Dockers, y ahí mismo o en otra Máquina Virtual se instala Kubernets para la administración de esa instancia de Dockers? La respuesta es NO. Lo que se tiene es, dentro de el código del hipervisor ESXi, Pods disponibles para ejecutar los Contenedores creados por el área de Desarrollo, que son administrados por una entidad de Kubernetes que se ejecuta a nivel de Cluster sobre vSphere.

De esta manera, DevOps, Microservicios, Contenedores, etc. se vuelven en una alternativa más, dentro de la plataforma vSphere que, si se nos permite agregar un poco más, ya de por sí ofrece una muy amplia plataforma de Virtualización para la Nube Privada (en Infraestructura como un Servicio), que se incorpora de manera fácil, escalable y segura con Nubes Públicas (también en Infraestructura como un Servicio) para crear un ambiente robusto, seguro y escalable de Nube Híbrida.

No hay comentarios:

Publicar un comentario

Todos los derechos reservados.
Copyright © 2025.