Está en la página 1de 5

Universidad Francisco de Paula Santander

INGENIERIA EN SISTEMAS – PRIMER SEMESTRE

Ricard Yovanny Riveros Rangel


1152148

CONTENEDORES DE SOFTWARE

Los contenedores de software son ambientes de ejecución livianos que


proveen a las aplicaciones con los archivos, variables y librerías que necesitan
para que operen. garantizan que una aplicación se ejecute correctamente
cuando cambie su entorno, con una reducción al minimo de las fallas posibles
y una maximización de su portabilidad.
Los contenedores se asemejan a la virtualizacion clásica, aunque funcionan
en un plano mas bajo: mientras que las máquinas virtuales tradicionales
habilitan la virtualización de la infraestructura computacional, los conteiners
permiten la virtualización de las aplicaciones. A diferencia de las máquinas
virtuales, los contenedores utilizan el sistema operativo (SO) de su host, en
lugar de integrar uno propio.

Una de las características más convenientes que los contenedores habilitan


tiene que ver con la visibilidad y el manejo de recursos del hardware. Por otro
lado, los programas que corran dentro de un contenedor solo pueden ver la
información y dispositivos habilitados para el mismo: la restricción permite
un mayor control de recursos por parte de los administradores de Sistemas,
un entorno más seguro para arreglos con usuarios múltiples y la posibilidad e
escalar los mismos con rapidez.
Pero no todo es de ensueño en el mundo de los contenedores: la flexibilidad
es su punto débil, dado que no pueden alojar un SO diferente del que les
sirve de host o un kernel distinto. Si el host es Linux, por ejemplo, sus
diversas distribuciones funcionan sin ningún problema, pero no un sistema
operativo como Windows.
Una de los desafíos más mencionados por las compañías respecto a los
contenedores es que no cuentan con almacenamiento persistente, a esto se
suma la falta de herramientas de administración de almacenamiento
confiables. Ambos elementos sumados se han constituido como una de las
principales barreras para la adopción, según una encuesta realizada en 2017.
La adopción de contenedores está creciendo a un ritmo muy acelerado en los
últimos años. Una encuesta global de 2017 realizada por Portworx.com
indicó que 32% de las compañías están gastando $500,000 dólares o más en
licencias y tarifas de uso de tecnología de contenedores. La cifra en 2016 era
apenas 5%.
Los contenedores como tecnología no van a dejar de crecer ni complejizarse
en los próximos años. Las proyecciones más optimistas indican que el 50% de
las empresas los utilizarán en 2020, por lo que sin duda serán una de las
tendencias que sonarán fuerte en las IT de las empresas mexicanas en el
futuro próximo.
Los Contenedores se utilizan para garantizar que una determinada aplicación
se ejecute correctamente cuando cambie su entorno, sin dar fallos de ningún
tipo. En cierto modo se asemeja a la tecnología de virtualización, aunque se
puede decir que funcionan en un plano menor.
El uso de los contenedores de software ha proliferado en los últimos años
porque resultan útiles y ágiles para migrar cualquier desarrollo de una
plataforma a otra. Si desarrollas un software y quieres pasarlo de un servidor
instalado en un centro de datos a una máquina virtual que funciona en una
nube pública, tal vez el código no termine de funcionar del todo bien en su
nuevo entorno. Lo mismo ocurre si migras una aplicación del sistema
operativo Debian a producción, en el sistema de Red Hat.
En el proceso del funcionamiento consiste en el empaquetado de software
en unidades estandarizadas, que incluyen todo lo necesario para ejecutarse,
implementando y ajustando la escala de aplicaciones en cualquier entorno,
velozmente.
En lugar de virtualizar la pila de hardware como en el enfoque de las
máquinas virtuales, los contenedores realizan la virtualización en el nivel del
sistema operativo, con varios contenedores que se ejecutan directamente en
el kernel del SO. Esto significa que los contenedores son mucho más livianos:
comparten el kernel del SO, se inician con bastante más rapidez y usan una
fracción de la memoria en comparación con el arranque de todo el SO.
( sistema operativo)
Existen muchos formatos de contenedores disponibles. Docker es un formato
popular de contenedor de código abierto que es compatible con Google
Cloud Plataform y Google Kubernetes Engine.

Entorno uniforme
Los contenedores ofrecen a los desarrolladores la capacidad de crear
entornos predecibles que están aislados de otras aplicaciones. Incluyen
dependencias de software que la aplicación necesita, como versiones
específicas de tiempos de ejecución de lenguajes de programación y
bibliotecas de software. Se garantiza que todo esto sea uniforme, Todo esto
se traduce en productividad: los desarrolladores y los equipos de operaciones
de TI dedican menos tiempo a depurar y diagnosticar diferencias en los
entornos y más tiempo a ofrecer funcionalidades nuevas para los usuarios.
Ejecútalos en cualquier lugar
Los contenedores se pueden ejecutar virtualmente en cualquier lugar, lo cual
facilita en gran medida el desarrollo y la implementación en los sistemas
operativos Linux, Windows y Mac; en máquinas virtuales o equipos físicos; en
la máquina del desarrollador o en centros de datos locales.
Aislamiento
Los contenedores virtualizan la CPU, la memoria, el almacenamiento y los
recursos de red al nivel del SO, lo que brinda a los desarrolladores una vista
en zonas de prueba del SO aislada lógicamente de otras aplicaciones.
Los objetivos son aprovechar las capacidades de los contenedores para
ofrecer mejoras significativas en la productividad de los programadores y
facilidad en la administración de sistemas tanto manual como
automatizada.

Evolución de los Contenedores de Software


El primer sistema operativo en ofrecer lo que hoy conocemos como
contenedores (bajo el nombre de jails) fue la versión 4 de FreeBSD, liberada
en el año 2000. Poco después, esta funcionalidad apareció en Solaris, Linux e
incluso para Windows; en los dos últimos casos, esto fue inicialmente
mediante productos de terceros (Parallels Virtuozzo Containers para
Windows, Vserver y OpenVZ para Linux, OpenVZ siendo una rama libre de
Virtuozzo). Varios años después de la introducción de esta funcionalidad por
medio de terceros, tanto en el caso de Linux (con lxc desde 2009) como
recientemente en el de Windows (desde 2015) han sido incorporados a la
plataforma base del sistema operativo.
La evolución de los contenedores incluye herramientas incipientes (como
KubeVirt y Virtlet, que es una característica de Mirantis Cloud Platform) que
ejecutan máquinas virtuales bajo Kubernetes. Además de estas opciones de
terceros, espere ver cambios en el propio Kubernetes para proporcionar algo
más parecido al enfoque de infraestructura virtual que toma Mesos. Este
crecimiento tecnológico representa un cambio del enfoque de Kubernetes a
centrarse solo en la implementación y la redistribución de recursos abiertos.
Un modelo habilitador de infraestructura virtual de Kubernetes debe estar
abierto a la extensión.
GitHub
Se utiliza principalmente para la creación de código fuente de programas de
ordenador. El software que opera GitHub fue escrito en Ruby on Rails. Desde
enero de 2010, GitHub opera bajo el nombre de GitHub, Inc. Anteriormente
era conocida como Logical Awesome LLC. El código de los proyectos alojados
en GitHub se almacena típicamente de forma pública.
El 4 de junio de 2018 Microsoft compró GitHub por la cantidad de 7500
millones de dólares12, al inicio el cambio de propietario generó
preocupaciones y la salida de algunos proyectos de este repositorio3, sin
embargo no fueron representativos. GitHub continúa siendo la plataforma
más importante de colaboración para proyectos Open Source.

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 automatización de virtualización de aplicaciones
en múltiples sistemas operativos.1Docker utiliza características de
aislamiento de recursos del kernel Linux, tales como cgroups y espacios de
nombres (namespaces) para permitir que "contenedores" independientes se
ejecuten dentro de una sola instancia de Linux, evitando la sobrecarga de
iniciar y mantener máquinas virtuales.2

Kubernetes
es un sistema de código libre para la automatización del despliegue, ajuste de
escala y manejo de aplicaciones en contenedores1 que fue originalmente
diseñado por Google y donado a la Cloud Native Computing Foundation
(parte de la Linux Foundation). Soporta diferentes entornos para la ejecución
de contenedores, incluido Docker.

También podría gustarte