13Jul
Contenedores: escalabilidad y flexibilidad para su negocio
Por: Comunicaciones Innova4J Julio 13, 2017 En: Noticias y Eventos Comentarios: 0

La virtualización ha ayudado a mejorar la utilización de los servidores, esta simula una instancia digital completa de un computador al que se le asigna alguna función: servidor de correo, aplicaciones web, entre otras. Las máquinas virtualizadas dentro de un mismo servidor maximizan el uso de CPU, memoria y ancho de banda. Sin embargo, cuando la función asignada es más “modesta”, crear una máquina virtual puede ser un desperdicio de recursos (memoria, puertos, CPU). A diferencia de las máquinas virtuales, los contenedores pueden ser vistos como herramientas más flexibles para el empaquetamiento, la entrega y el despliegue del software y de las aplicaciones.

Los contenedores permiten generar un espacio aislado –y portátil– donde ejecutar microservicios, es decir, servicios no tan grandes e importantes como para requerir una máquina virtual, sin un uso excesivo de recursos, aumentando la eficiencia del servidor y reduciendo la huella de carbono, así como el impacto sobre el consumo eléctrico. Recordemos que los contenedores en vez de proveer una computadora virtual a los sistemas operativos huéspedes, buscan proveer un sistema operativo virtual a conjuntos de programas. También le puede interesar: Virtualización y nube: el camino hacia un modelo de negocio ágil y flexible

Gracias a que los contenedores comparten el núcleo de Linux, son mucho más ligeros que las máquinas virtuales. En un ordenador típico, podrían funcionar pocas máquinas virtuales a la vez, pero no se tendrían problemas para ejecutar 100 contenedores.

Contenedores Docker: una nueva forma de hacer las cosas

Entre la oferta de contenedores la que más se destaca es Docker. Este proyecto open source se ha convertido en pocos años y, gracias a una extraordinaria operación de marketing, en sinónimo de tecnología de contenedores. Explicado brevemente, Docker es una herramienta para iniciar, detener y gestionar contenedores mediante comandos. Se basa en técnicas propias de Linux como Cgroups y Namespaces para poder separar los recursos de cada contenedor. Si al comienzo se usaba la interfaz LXC del kernel de Linux, hoy se ejecuta con Libcontanier, una interfaz de programación desarrollada por Docker.

La necesidad de escalar horizontalmente los servicios ha sido la oportunidad perfecta para usar la flexibilidad que aportan los contenedores. Muchos usuarios de Docker aprovechan la plataforma como una herramienta para escalar fácilmente grandes números de contenedores entre diferentes hosts. Esta característica ha hecho que Docker sea atractivo para el sector empresarial y aumente su inmensa popularidad. Entre sus ventajas podemos destacar:

-Instalación más sencilla: los contenedores de software se inician a partir de imágenes o representaciones portables de un contenedor, incluyendo un programa y todos los componentes requeridos (como librerías, soporte o archivos de configuración). De esta forma se compensan las diferencias entre sistemas operativos. Su instalación se reduce a la introducción de una línea de comando.

-Independiente de la plataforma: las imágenes se pueden transportar cómodamente de un sistema a otro, y se caracterizan por una considerable independencia de la plataforma. Lo único que se necesita para iniciar un contenedor desde una imagen es un sistema operativo que soporte contenedores.

-Mínimas pérdidas por virtualización: con un Linux y Docker container, la instalación de contenedores requiere alrededor de 100 MB y unos pocos minutos. Mientras que la virtualización de hardware trae consigo una pérdida de rendimiento para el hipervisor y otros sistemas operativos, los contenedores, al prescindir de todo esto, reducen esta pérdida al mínimo. Aún más, si el arranque (booting) de una máquina virtual puede durar varios minutos, las aplicaciones están disponibles enseguida.

-Aplicaciones aisladas: cada programa funciona independientemente de otros contenedores, lo que permite ejecutar al mismo tiempo y sin conflictos distintas versiones del mismo software o aplicativo.

-Escalabilidad: se puede aumentar ágilmente el número de contenedores de uno a varios bajo demanda de CPU y memoria.

Dicho brevemente, Docker trata de correr aplicaciones existentes o creadas por nosotros dentro de un entorno aislado que llamamos contenedor. Este consta de todos los ficheros que pueda necesitar la aplicación específica que queremos correr y ninguno más, es decir, no contendrá ficheros superfluos que puedan ralentizar el funcionamiento de la aplicación de alguna manera o simplemente hacer su gestión más compleja.

El concepto diferenciador de Docker consiste en la inclusión única de los ficheros estrictamente necesarios dentro de cada contenedor para correr nuestra aplicación. En principio, este concepto tiene cierto parecido al de virtualización. Sin embargo, se distingue por la menor cantidad de ficheros de sistema y de aplicación necesarios para ejecutar las mismas aplicaciones en un sistema Docker. Esto repercute primeramente en el peso de los sistemas que deben ejecutarse, y por tanto en el tiempo que se necesita para que todo el software esté disponible ante una caída. En segundo lugar, como ya se ha comentado, a menor número de ficheros, menor posibilidad de aprovechar sus vulnerabilidades. Por otra parte ante sistemas más ligeros se requieren menos recursos para ejecutarlos. Y por último, los contenedores son tan básicos que su configuración es más sencilla y por tanto su gestión más fácil.

Si está interesado en implementar una infraestructura de contenedores que le permita ofrecer sus servicios de manera ágil y flexible , no dude en contactarnos.

Trackback URL: http://www.innova4j.com/6397-2/trackback/

Dejar Comentario:

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *