Cómo no romper los límites, cómo crear una buena arquitectura y cómo hacer un buen mantenimiento

Contenedores en Azure: DevOps con Docker

DevOps es un modelo de mejora en las operaciones de IT de una empresa, centrado en mejorar la relación con el desarrollo del software. Su objetivo es alinear estos dos mundos para mejorar la entrega de software a la organización.

web

Los contenedores son una buena aproximación al modelo de DevOps porque definen el contexto de ejecución del software. Esto es: sistema operativo, recursos de hardware, redes, etc; sin necesidad de utilizar una máquina virtual y orientados al trabajo del equipo de desarrollo.

Docker permite a los desarrolladores definir el contenedor y el código que se va a ejecutar en éste, que será entregado al equipo de operaciones para su despliegue en un container o contenedor que soporte Docker, como Azure.

¿Por qué Docker?

docker-logoDocker es un proyecto open source que permite automatizar el despliegue de cualquier aplicación de forma portable como un contenedor auto-suficiente que se puede ejecutar casi en cualquier lugar, incluyendo Microsoft Azure.

La gran ventaja de Docker es que se basa en ficheros de configuración. Los desarrolladores crean imágenes de su entorno de aplicación para que todo el equipo de desarrollo trabaje con el mismo sistema. No hablamos de pesadas máquinas virtuales. Los contenedores de Docker sólo contienen la aplicación y algunas librearías de soporte, mientras que el sistema operativo es compartido.

DockerWithWindowsSrvAndLinux
Como podemos ver en la imagen anterior, la implementación de Docker está soportada tanto en Linux como en Windows Server, y al ser más ligeras que las máquinas virtuales, arrancan más rápido y permiten mantener diferencias entre distintas versiones de una forma muy simple.

¿Qué diferencias hay entre una máquina virtual Hyper-V y un contenedor?

El enfoque de un contenedor se encuentra en la aplicación y sus recursos, no en dar servicio como sistema operativo. Con este enfoque, se consiguen las siguientes diferencias:

Característica Hipervisores Contenedores
Aislamiento de procesos Más o menos completo Si se obtiene la raíz, el host del contenedor podría ponerse en peligro
Memoria en disco necesaria Sistema operativo más aplicaciones completos Solo requisitos de aplicación
Tiempo que se tarda en iniciar Significativamente más largo: el arranque del SO más la carga de la aplicación Significativamente más corto: solamente es necesario que se inicien las aplicaciones porque el kernel ya está en ejecución
Automatización de contenedores Varía considerablemente dependiendo del sistema operativo y las aplicaciones Galería de imágenes de Docker; otros

Docker en Azure

Como iré mostrándote en siguientes artículos de este blog, Azure ofrece un componente que instalamos en una máquina virtual para ejecutar el motor de Docker y administra la comunicación con la máquina virtual.

Además, hay diversas extensiones que permiten administrar la seguridad, el kernel, la red u otros componentes del sistema operativo.

Todo esto, soportando el estándar del cliente de Docker para que se puedan desplegar contenedores en Azure, tanto en máquinas virtuales Linux como en el nuevo Windows Server 2016.

Como desarrolladores, tenemos que acercarnos al núcleo donde se ejecuta nuestra aplicación.  Usar contenedores nos ayudará a dar ese paso y conocer mejor nuestro contexto de ejecución para implementar mejores soluciones de software. Todo esto soportado por un equipo de infraestructuras y/u operaciones que gestionará mejor el entorno de ejecución de las aplicaciones, garantizando el mejor rendimiento y seguridad de las mismas.

mm

Sobre Alberto Diaz Martin

Alberto Diaz cuenta con más de 15 años de experiencia en la Industria IT, todos ellos trabajando con tecnologías Microsoft. Actualmente, es Chief Technology Innovation Officer en ENCAMINA, liderando el desarrollo de software con tecnología Microsoft, y miembro del equipo de Dirección. Para la comunidad, trabaja como organizador y speaker de las conferencias más relevantes del mundo Microsoft en España, en las cuales es uno de los referentes en SharePoint, Office 365 y Azure. Autor de diversos libros y artículos en revistas profesionales y blogs, en 2013 empezó a formar parte del equipo de Dirección de CompartiMOSS, una revista digital sobre tecnologías Microsoft. Desde 2011 ha sido nombrado Microsoft MVP, reconocimiento que ha renovado por séptimo año consecutivo. Se define como un geek, amante de los smartphones y desarrollador. Fundador de TenerifeDev (www.tenerifedev.com), un grupo de usuarios de .NET en Tenerife, y coordinador de SUGES (Grupo de Usuarios de SharePoint de España, www.suges.es)
Esta entrada ha sido publicada en Azure y etiquetada como , , , . Enlace permanente .
ENCAMINA, piensa en colores