Industrial

Docker en Windows

Índice del contenido

En cualquier departamento de informática en el que hagamos desarrollos o despliegues siempre hemos tenido los mismos problemas independientemente de las tecnologías que usemos.

Problemas más comunes en el desarrollo de tecnología

  • Los entornos de desarrollo deben ser idénticos a producción. Cualquier actualización de versiones de software en desarrollo tendremos que realizarla en producción. Con el consiguiente riesgo y aumento en el tiempo de despliegue o pase a producción.
  • Crear un entorno de desarrollo para una nueva incorporación era algo “aterrador” por la compatibilidad entre versiones, así que la mejor opción hasta hace unos años era trabajar sobre máquinas virtuales, a expensas del inconveniente de su gran tamaño y grandes recursos para su ejecución.
  • Si desarrollamos en equipo y cualquier compañero realiza un cambio en la aplicación que requiere modificar o agregar software, un servicio, una base de datos … etc. Tendremos que actualizar nuestro entorno.

Seguro que te sentirás identificado con alguna de estas casuísticas. Además, pasan muy a menudo y muchas veces se complica identificar el origen de los problemas.

Con Docker, para sincronizar los cambios en nuestro entorno de desarrollo solo hay que ejecutar un comando: “docker-compose up –build”, y en un instante el entorno estará actualizado independientemente de lo que haya cambiado. Por otro lado, en producción no necesitaremos tener nada instalado, salvo Docker. Por lo que “dejaremos caer” la nueva solución y listo.

Esta plataforma nos permite crear, actualizar y desplegar aplicaciones de manera muy rápida. Esto nos aporta una serie de ventajas respecto al entorno tradicional de desarrollo de software:

  • Reduce el tiempo de instalación y configuración.
  • Evita errores de incompatibilidad al utilizar múltiples versiones.
  • Rápido empaquetado y despliegue de aplicaciones.
  • Permite escalar aplicaciones en tiempo real.
  • Garantiza el correcto funcionamiento de múltiples entornos simultáneos en un mismo servidor.

¿Pero qué es Docker?

Docker es un proyecto de código abierto que automatiza el despliegue de aplicaciones dentro de contenedores de software, proporcionando una capa adicional de abstracción y virtualización de aplicaciones en el sistema operativo.

Al igual que una máquina virtual “virtualiza” el hardware del equipo, los contenedores virtualizan el sistema operativo del entorno donde se ejecutan.

Docker se instala en el equipo de desarrollo y producción y proporciona comandos sencillos que podemos utilizar para crear, iniciar o detener contenedores, evitando la sobrecarga de iniciar y mantener máquinas virtuales.

¿Y qué es un contenedor?

Es un ejecutable ligero y autónomo que contiene un pequeño sistema operativo con solo aquellos elementos necesarios para la ejecución de nuestro software, así como servidor de base de datos, servidor web o cualquier otro servidor que requiera nuestra aplicación. Por lo que pasamos de un entorno de gigas a megas.

Estos contenedores por regla general contienen:

  • Una pequeña distribución de Linux
  • Todas las dependencias necesarias para que tu aplicación se ejecute.
  • El código de tu aplicación.

La aplicación puede estar desarrollada en cualquier lenguaje o IDE, no importa el paradigma utilizado.

Varios contenedores pueden ejecutarse en el mismo servidor sin problemas de versiones o dependencias. Cada contenedor es autónomo y funciona de manera aislada del resto.

Microsoft vió el increíble éxito que estaba teniendo Docker en las nuevas tecnologías de contenedores de software y llega a un acuerdo con Docker en 2015 para convertirse en partner oficial.

Hoy en día Microsoft es de los mayores contribuyentes de código en Docker y ha firmado acuerdos para garantizar que Docker se ejecute correctamente en sus sistemas operativos.

Docker para Windows está desarrollado de manera nativa en Windows, usa la virtualización Hyper-V nativa de Windows y además proporciona un entorno fácil de usar para crear contenedores, también permite la ejecución de contenedores Docker Linux y Windows.

Visual Studio 2017 también soporta contenedores Docker. Podemos crear aplicaciones .NET Core directamente desde el IDE, ya que Visual Studio 2017 es capaz de generar las imágenes Docker y el Docker Compose de forma automática, simplemente tendremos que cumplimentar el archivo Dockerfile.

Una vez generado, podemos exportar la imagen y el Docker Compose para ejecutar la aplicación, y esta se comportará del mismo modo en un portátil con Windows 10 o en un equipo con Windows Server 2016 que se ejecute en el centro de datos o en Azure.

Docker está certificado en Azure, vamos a poder crear y ejecutar cualquier contenedor y asignarlo a un puerto para acceder a nuestras aplicaciones y servicios.

Con esto Docker puede utilizar todas las funcionalidades nativas de Microsoft Azure sin configuración adicional: servicios en la nube con la seguridad y privacidad que ofrece Azure, una administración sencilla y balanceadores de carga o alta disponibilidad, entre otras.

Comparte

No es sólo un blog

Noticias y avances sobre
tecnología

La industria del pan es un sector económico...
Los entornos industriales a menudo aparecen en las...
Te queremos descubrir los beneficios de sistema PLM,...
Dentro del sector alimentario es fundamental seguir unos...
Cerámica 4.0 para mantener la competitividad en la...

¡Gracias!

Tu formulario se ha enviado correctamente-