Windows Containers: La clave para el futuro de Windows y la nube híbrida

Microsoft ofrece varios modelos de contenedores en Windows. Si estás utilizando Windows 10, probablemente estés utilizando varios de ellos sin ni siquiera darte cuenta: envoltorios y aislamiento para todas tus aplicaciones UWP; máquinas virtuales delgadas para brindar seguridad; y, si eres desarrollador, instancias de Docker en Windows o Linux.

Este modelo de contenedor en capas es clave para el futuro de Windows, que se extiende a la próxima versión de Windows 10X y al mundo más amplio de nubes públicas y privadas, ahora que los contenedores de Windows de Docker son oficialmente parte de Kubernetes. Microsoft está trabajando en reducir el tamaño de Windows Server para producir imágenes base de contenedores livianas con una versión más capaz de Windows.

Índice de Contenido
  1. ¿Windows o Docker?
  2. Contenedores de Windows en la nube híbrida
  3. Creación de contenedores de Windows para Windows Server y Azure
  4. Elegir el aislamiento: ¿proceso o Hyper-V?

¿Windows o Docker?

Aunque los contenedores de escritorio están diseñados para simplificar y proteger las aplicaciones de escritorio, brindando un aislamiento muy necesario para las aplicaciones instaladas a través de appx o MSIX (y en Windows 10X para cualquier otro código de Win32), los contenedores de Windows 10 se basan en la tecnología de aislamiento de procesos de Windows. No es el conocido modelo Docker que encontramos en nuestras aplicaciones empresariales alojadas en la nube.

Esto no significa que Windows 10 no pueda ejecutar contenedores de Docker. Microsoft está utilizando los servicios de Docker como base de sus contenedores de Windows Server. Puedes construir y probar el código dentro de ellos en computadoras con Windows, ya sea en versiones Pro o Enterprise, y la próxima versión 2004 de Windows 10 trae WSL2 y soporte para contenedores de Linux en ejecución en Windows.

Docker ha estado desarrollando una nueva versión de sus herramientas de Docker Desktop para Windows usando WSL2, lo que facilita desarrollar y probar contenedores de Linux en Windows 10, al igual que trabajar con los propios contenedores de Windows. Dado que Microsoft posiciona a Windows como una plataforma de desarrollo para Kubernetes y otras plataformas en la nube, es esencial contar con un soporte de Docker de primera clase en las computadoras con Windows.

Contenedores de Windows en la nube híbrida

No solo se utilizan contenedores de Linux en la nube. Los contenedores de Windows también tienen su lugar, alojando aplicaciones de .NET y otras plataformas de Windows. En lugar de implementar SQL Server u otra aplicación de servidor de Windows en tus servicios en la nube, puedes instalarlos en un contenedor y desplegar rápidamente el código como parte de una implementación de DevOps CI / CD. El moderno enfoque DevOps trata a las infraestructuras (especialmente las infraestructuras virtuales) como el estado final de una compilación, por lo que tiene mucho sentido considerar los contenedores de aplicaciones como uno de los diferentes tipos de artefactos de compilación.

Cómo funciona el protocolo FTP y cómo resolver problemas relacionados con él

Lo importante aquí no es la aplicación, sino cómo se orquesta y administra. Ahí entra Kubernetes, junto con el servicio Kubernetes de RedHat OpenShift. Las versiones recientes han agregado soporte para contenedores de Windows junto con Linux, administrando ambos desde el mismo controlador.

Aunque tanto OpenShift como Kubernetes ahora admiten contenedores de Windows, en realidad no están ejecutando contenedores de Windows en hosts de Linux. No hay ninguna razón práctica por la cual no puedan utilizar una técnica similar a la utilizada por Docker para ejecutar contenedores de Linux en Windows. Sin embargo, las condiciones de licencia relativamente estrictas de Windows Server requieren una licencia de Windows para cada instancia de máquina virtual que aloja los contenedores de Windows.

Creación de contenedores de Windows para Windows Server y Azure

El uso de contenedores de Windows en Kubernetes implica construir una infraestructura híbrida que combina hosts de Linux y Windows, con contenedores de Windows que se ejecutan en nodos de trabajo alimentados por Windows Server. El uso de herramientas como OpenShift o el Azure Kubernetes Service automatiza la ubicación del código en esos nodos, administrando un clúster multi-OS para tu aplicación. El código .NET se puede implementar en un contenedor de Docker de Windows y desplegarlo a través del Azure Container Registry. Puedes administrar esos nodos desde el mismo controlador que tus nodos de Linux.

No es necesario aprender algo nuevo si vienes a los contenedores de Windows desde Linux. Estás utilizando herramientas de Docker conocidas para construir y gestionar tus imágenes de contenedor, y luego las mismas herramientas de Kubernetes que usarías para una aplicación Linux pura. Mezclar y combinar microservicios de Windows y Linux en una sola aplicación te permite aprovechar las características específicas del sistema operativo y mantener la experiencia de los equipos de desarrollo existentes, incluso cuando se cambia de un entorno de aplicación monolítica tradicional a un sistema distribuido moderno.

Microsoft está desarrollando un conjunto de herramientas de código abierto para ayudar a administrar los contenedores de Windows, y la primera es una herramienta de registro en un repositorio de GitHub. Mejorar el registro tiene sentido para una aplicación distribuida, donde múltiples contenedores interactúan bajo el control de los operadores de Kubernetes.

Elegir el aislamiento: ¿proceso o Hyper-V?

Fuera de Kubernetes, los contenedores de Windows en Windows Server tienen dos modos de aislamiento diferentes. El primero, aislamiento de proceso, es similar al utilizado por los contenedores de Linux, ejecutando múltiples imágenes en un sistema operativo host y utilizando el mismo kernel para todas las imágenes y el host. Los espacios de nombres mantienen los procesos aislados, gestionando los recursos de manera adecuada. Es un enfoque que se utiliza mejor cuando se sabe qué procesos se están ejecutando en un servidor, asegurándose de que no haya riesgo de filtración de información entre diferentes imágenes de contenedor. El pequeño riesgo de seguridad que conlleva un núcleo compartido es la razón por la cual Microsoft ofrece una alternativa más segura: contenedores aislados.

Microsoft lanza servicio gratuito de almacenamiento en la nube para usuarios de Windows

En el fondo de los contenedores aislados de Windows Server, por supuesto, está Hyper-V. Microsoft lo ha estado utilizando para mejorar el aislamiento de los contenedores de Docker en Windows, utilizando una capa delgada de SO que se ejecuta sobre Hyper-V para alojar una imagen de contenedor de Docker, manteniendo el rendimiento y asegurando que los contenedores permanezcan completamente aislados. Si bien cada contenedor es técnicamente una máquina virtual con su propio kernel, están optimizados para ejecutar imágenes de contenedor. El uso de la virtualización de esta manera agrega una capa de aislamiento de hardware entre las imágenes de contenedor, dificultando la filtración de información entre ellas, y te proporciona una plataforma que puede alojar múltiples imágenes de inquilinos.

Es bastante sencillo crear y ejecutar un contenedor de Hyper-V. Todo lo que necesitas hacer es establecer el parámetro de aislamiento en la línea de comandos de Docker en 'hyperv', lo que lanzará el contenedor utilizando la virtualización para protegerlo. El valor predeterminado en las PC de escritorio es utilizar Hyper-V, mientras que para los servidores es utilizar el aislamiento de Docker. Como resultado, es posible que prefieras forzar el uso de contenedores de Hyper-V en tus hosts de contenedores de Windows Server.

Microsoft ha estado trabajando arduamente para reducir el tamaño de la imagen del servidor Hyper-V que se utiliza para los contenedores de Windows. Ha pasado de casi 5 GB con Windows Server 1809 y 1903, a la mitad en la próxima versión 2004 con 2.46 GB. ¡Y eso es Windows Server Core, no Nano! El uso de Windows Server Core tiene sentido, ya que tiene una superficie de API más grande, reduciendo el riesgo de incompatibilidad de aplicaciones.

Con dos casos de uso para sus contenedores y cinco modelos de contenedores diferentes, podría parecer que la estrategia de contenedores de Microsoft es propensa a confusión. Pero no es así. Las tecnologías de aislamiento de aplicaciones de Windows se administran automáticamente mediante el instalador, por lo que todo lo que necesitas considerar es si tus aplicaciones de servidor se ejecutan utilizando el aislamiento de proceso o en Hyper-V. Y esa es una decisión que debes tomar en función de si tus aplicaciones se ejecutan en tus propios servidores en tu propio centro de datos o en la nube pública.

Cómo evitar que el archivo de registro de transacciones en SQL Server crezca demasiado grande

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Nube, allí encontraras muchos artículos similares a Windows Containers: La clave para el futuro de Windows y la nube híbrida , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.