Container basado en la imagen IIS
En éste post comentaré algunos datos puntuales después de haber iniciado un container (docker) basado en la imagen de microsoft del Servidor de Información de Internet (IIS). (ver video tutorial)
Introducción:
Primero me gustaría explicar brevemente dos conceptos básicos necesarios para poder entender el video tutorial.
- Containers.
- IIS.
Los containers son una evolución de la virtualización que tienen como objetivo crear máquinas virtuales muy optimizadas en cuanto a tamaño y recursos y que cumplen una función muy específica. Está pensado para trabajar en un mundo basado en microservicios.
Ya existían para Linux (docker), pero para Microsoft es un concepto nuevo que se está empezando a implementar en sus nuevos Sistemas Operativos: Windows 10 y Windows Server 2016.
IIS es un servicio de Microsoft que convierte un equipo (Servidor, PC, máquina virtual, cualquier equipo que tenga instalado éste rol.) en un Servidor Web flexible, seguro y manejable para alojar cualquier cosa en la Web, como por ejemplo:
- Aplicaciones Web
- Intranet de la empresa. “Un ejemplo que se me ocurre es crear una intranet para el Departamento de Soporte IT para consultar los tickets de incidencias”.
- Página Web de la compañía:
- Un sitio FTP.
¿Por qué utilizar Container?
Container es un concepto nuevo, se ha puesto de moda este último año en sistemas Windows (Server 2016 y w10) y la idea gusta en el entorno IT, y se tiene que ver como una herramienta más que se nos pone a nuestra disposición. Y simplemente aplicarla donde corresponda:
- Para cosas de más rendimiento y más eficientes: Containers.
- Para cosas más seguras y aisladas: Máquinas Virtuales.
Pero, sigo haciéndome dicha pregunta, ¿por qué utilizar containers pudiendo tener Nano Servers con el Rol Web Server IIS instalado?
Porque un Servidor versión Nano ocupa mucho menos espacio en disco, se configura significativamente más rápido y requiere muchas menos actualizaciones y reinicios. Por tanto, Con memoria más pequeña y disco más pequeño, las cargas de trabajo web son particularmente adecuadas para ejecutarse en Nano Server, especialmente para alojamiento de alta densidad.
En definitiva, usamos containers, porque en lugar de coger un Servidor físico o crear una Máquina Virtual teniendo que comprar componentes hardware necesarios (CPU, RAM, SSD y HDD, etc.) y comprar una licencia Windows Server 2016 para crear nuestro Servidor Web IIS, lo que se hace es instalar la característica Container en un servidor y encima de él ejecutar el Servidor Web IIS como si fuese una «caja», aislada de otros contenedores de microsoft que también se estén ejecutando sobre el mismo servidor, como si fueran máquinas virtuales.
Por lo tanto, reducimos los recursos hardware y software, menos superficie de ataque, menos configuraciones, y es portable. Sólo cambiando el container de equipo te llevas toda la aplicación y a funcionar.
Requisitos para iniciar un Container:
Antes de empezar, aconsejaría tener realizada una configuración previa en el servidor donde se van ejecutar los containers.
En mi caso, he creado una VM con la siguiente configuración básica:
- Windows Server 2016 Datacenter versión Core añadida al Servidor de Dominio.
- ¿Y por qué no lo instalo en el propio servidor de Dominio? Porque para un funcionamiento óptimo de Internet Information Server necesita una configuración que depende:
– Exigencias específicas del servidor.
– Número de usuarios conectados.
– Eventuales interconexiones con una base de datos.
– Entre otras funciones…
Por tanto, es conveniente tener en cuenta posibles aplicativos que pudieran reducir la velocidad de actuación del servidor IIS.
Por esto, entre otras cosas Microsoft aconseja evitar la instalación de roles y características a parte del rol de Active Directory y DNS, ya que tienen elevadas cargas de trabajo.
- ¿Y por qué una versión core? Sabemos que una versión core requiere menos recursos hardware y de sistema que una versión Desktop Experience.
También se podría haber realizado esta práctica, desde un Nano Server, que a su vez consume menos recursos que la versión core.
- IP fija.
- Configurar el Firewall.
Una vez realizada dicha configuración, instalamos lo siguiente:
- Característica Windows Containers
- Modulo DockerMsftProvider
- Paquetes DockerMsftProvider
Importante:
Comprobar que el Servidor donde estáis instalando el servicio container, no tenga una red NAT previamente creada. Porque al instalar dicho servicio, se crea una red NAT y empezarán a surgir gran variedad de conflictos al haber dos redes NAT en un mismo equipo.
Enlaces de Interés:
Si quieres obtener más información sobre Containers y Web Servdro IIS y así afianzar y ampliar conocimientos. Os dejo los enlaces a otras entradas del TechClub:
Autor: Miguel Ángel Bernal Martínez
Curso: Microsoft MCSA Windows Server + Microsoft MCSE Cloud Platform & Infrastructure
Centro: Tajamar
Año Académico: 2017-2018