Skip to main content
Loading...

La tecnología Docker está transformando, o mejor dicho revolucionando, la forma en que se desarrolla, distribuye y ejecuta el software.Esta revolución es como si el mundo del software hubiese sido alcanzado por un rayo, ya que nada va a ser igual desde la aparición de Docker.

Docker

Un ciclo de vida más ágil y menos costoso

Esta revolución se manifiesta principalmente en que los contenedores de Docker nos permiten encapsular la aplicación y sus dependencias, es decir, podemos encapsular todo el entorno para pasarlo a producción con las mismas características del entorno donde se ha desarrollado. De esta forma, se resuelve uno de los grandes problemas en la distribución y entrega del software: los problemas típicos de pasos a producción.

El ciclo de vida se convierte en más ágil y menos costoso, y esto es cómo Docker nos ayuda a no malgastar nuestro tiempo configurando el entorno y las dependencias del sistema y resolviendo las mismas incidencias de configuración a lo largo de todos los entornos del ciclo de vida. De esta forma también estamos incorporando calidad y seguridad al servicio final.

Devops / Docker

Un entorno Docker es un entorno en el que se reducen los ciclos de entrega del producto. De esta forma se consigue también poner en marcha la Entrega Continua del producto o Continous Deployment, así como procesos de Mejora Continua y, es entonces, cuando entramos de lleno en el mundo DevOps.

Entramos en el mundo Agile.

Virtualización / Docker

Por su naturaleza esta tecnología se asemeja a las clásicas máquinas virtuales, pero sin embargo estamos hablando de algo más avanzado porque los contenedores nos ofrecen una mayor eficiencia y sencillez en su operación.

Docker ofrece sobre la virtualización un nivel más de aislamiento, ya que con la virtualización se consigue aislar y empaquetar un sistema operativo con todos los recursos de forma independiente al hardware; mientras que con los contenedores es a nivel de aplicación y librerías donde se consigue el aislamiento: empaquetamos el software para que se ejecute en las mismas condiciones fuera de nuestro entorno de desarrollo.

La actualización de librerías deja de ser uno de los grandes problemas ante una evolución tecnológica de un servicio, y de esta forma atacamos la deuda técnica de nuestros servicios, manteniéndola en niveles gestionables.

Elasticidad / Docker

Podemos explicar el éxito de los servicios en la nube principalmente en la alta disponibilidad, el diseño de tolerancia a fallos, el escalado y la elasticidad; y en este escenario parece que se hace obligatorio que tengamos muy presentes a los contenedores.

El propósito de elasticidad es alinear los recursos asignados con la cantidad real de los recursos necesarios en cualquier punto dado en el tiempo en la demanda de un servicio. La escalabilidad se encarga de las necesidades cambiantes de una aplicación dentro de los recursos de infraestructura a través de la adición de forma estática o la eliminación de los recursos para satisfacer el aumento de la demanda de un servicio, si fuese necesario.

Casos de uso comunes en la elasticidad es incluir procesos de negocio con picos de demanda puntuales que no son fácilmente predecibles o que son estacionales: impresión de boletines de notas en servicios educativos, compras masivas en black friday o aumento de lectores del portal web ante hechos excepcionales. Cada vez son menos las empresas que tienen una carga de trabajo en servicios TI predecible, donde la planificación de la capacidad y el rendimiento son estables y tienen la capacidad de predecir la carga de trabajo en periodos largos de tiempo para alinear necesidades de infraestructura con costes.

En la elasticidad es donde Docker hace un aporte interesante, ya que usando contenedores la demanda de recursos se limitará al consumo de la aplicación que resida dentro. Poner en ejecución un contenedor es cuestión de milisegundos.

Presente y futuro

Contenedores y virtualización conviven a día de hoy. La virtualización ha sido un gran paso para desligar hardware de sistemas operativos y con ello se han conseguido grandes beneficios en gestión y en disponibilidad de servicios. La mayoría de las organizaciones han emprendido el camino hacia a la virtualización ya hace años, hoy ya es el modelo de infraestructura más extendido.

Esto ha permitido a muchas organizaciones aumentar sus niveles de servicio en disponibilidad y continuidad y, por ejemplo, crear Centros de Respaldo o Disaster Recovery de forma más sencilla y con más garantías. Con los servicios virtualizados o en proceso de virtualización ha irrumpido el modelo de contenedores, y nos preguntamos si es necesario dar otro paso y los beneficios que nos puede aportar.

Los beneficios son muchos, y sobre los ya expuestos es necesario hacer también hincapié en que Docker nos ayudará a mejorar nuestro Time To Market y por tanto ser más competitivos.

Miguel Ares, Gerente de Proyectos.

Otros temas que pueden interesarte...

Tecnologías: Soluciones avanzadas de infraestructura