Principales Ventajas Tecnológicas de los Contenedores | Jose Luis Bugarin

Esta arquitectura de contenedores, trae muchas ventajas al desarrollo de software/aplicaciones.

Algunas de las principales ventajas de los contenedores son las siguientes:

  • Consumo eficiente de recursos de hardware.
  • Aislamiento de aplicaciones y servicios.
  • Despliegue más rápido.
  • Arquitectura de microservicios.
  • Sin estado.

Consumo eficiente de recursos de hardware:

Ya sea que ejecute contenedores de forma nativa en un servidor básico o use técnicas de virtualización, el uso de contenedores le permite utilizar recursos (CPU, memoria y almacenamiento) de una manera mejor y mucho más eficiente. En el caso de un servidor de metal desnudo, los contenedores le permiten ejecutar decenas o incluso cientos de contenedores iguales o diferentes, lo que proporciona una mejor utilización de los recursos en comparación con una aplicación que generalmente se ejecuta en un servidor dedicado. Hemos visto en el pasado que la utilización de algunos servidores en las horas punta es solo del 3%, lo cual es un desperdicio de recursos. Y si va a ejecutar varias aplicaciones iguales o diferentes en los mismos servidores, entrarán en conflicto entre sí. Incluso si funcionan, enfrentará muchos problemas durante la operación diaria y la solución de problemas.

Si va a aislar estas aplicaciones mediante la introducción de técnicas de virtualización populares como KVM, VMware, XEN o Hyper-V, se encontrará con un problema diferente. Habrá muchos gastos generales porque, para virtualizar su aplicación utilizando cualquier hipervisor, necesitará instalar un sistema operativo en la parte superior de su sistema operativo hipervisor. Este sistema operativo necesita CPU y memoria para funcionar. Por ejemplo, cada VM tiene su propio núcleo y espacio de núcleo asociado. Una plataforma de contenedores perfectamente ajustada puede proporcionarle hasta cuatro veces más contenedores en comparación con las máquinas virtuales estándar. Puede ser insignificante cuando tiene cinco o diez máquinas virtuales, pero cuando hablamos de cientos o miles, hace una gran diferencia.

Aislamiento de aplicaciones y servicios:

imagine un escenario en el que tenemos diez aplicaciones diferentes alojadas en el mismo servidor. Cada aplicación tiene una serie de dependencias (como paquetes, bibliotecas, etc.). Si necesita actualizar una aplicación, generalmente implica actualizar el proceso y sus dependencias. Si actualiza todas las dependencias relacionadas, lo más probable es que afecte a las otras aplicaciones y servicios. Puede hacer que estas aplicaciones no funcionen correctamente. Claro, hasta cierto punto estos problemas son abordados por administradores de entorno como virtualenv para Python y rbenv / rvm para Ruby, y las dependencias en bibliotecas compartidas pueden aislarse a través de LD_LIBRARY_PATH, pero ¿qué sucede si necesita diferentes versiones del mismo paquete? Los contenedores y la virtualización resuelven ese problema. Tanto las máquinas virtuales como los contenedores proporcionan aislamiento del entorno para sus aplicaciones.

Despliegue mas rápido:

El uso de imágenes de contenedor, nos permite acelerar la implementación del contenedor. Estamos hablando de segundos para reiniciar completamente un contenedor frente a minutos o decenas de minutos con servidores y máquinas virtuales. La razón principal de esto es que un contenedor no necesita reiniciar todo el sistema operativo, solo necesita reiniciar la aplicación en sí.

Arquitectura de microservicios:

Los contenedores llevan la implementación de aplicaciones a un nivel completamente nuevo al introducir la arquitectura de microservicios. Lo que esencialmente significa es que, si tiene una aplicación monolito o N-tier, generalmente tiene muchos servicios diferentes que se comunican entre sí. Contenedor de sus servicios le permite dividir su aplicación en varias partes y trabajar con cada una de ellas de forma independiente. Supongamos que tiene una aplicación estándar que consta de un servidor web, una aplicación y una base de datos. Probablemente pueda colocarlo en uno o tres servidores diferentes, tres máquinas virtuales diferentes o tres contenedores simples, ejecutando cada parte de esta aplicación. Todas estas opciones requieren una cantidad diferente de esfuerzo, tiempo y recursos.

Sin Estado:

Los contenedores no tienen estado, lo que significa que puede subir y bajar contenedores, crearlos o destruirlos en cualquier momento, y esto no afectará el rendimiento de su aplicación. Esa es una de las mejores características de los contenedores.

 

Añadir un comentario

Tu dirección de correo electrónico no será publicada.