Está en la página 1de 7

1

Contenedores de Aplicaciones en la Nube,


Beneficios, Desventajas y Problemas de Seguridad
al Utilizarlos
Katherine Angulo

Abstract
Entre los servicios que brinda la computación en la nube estan los contenedores de aplicaciones, los cuales son un tipo de
virtualización que necesita los recursos del sistema operativo host para poder operar. Los contenedores de aplicaciones permiten
la portabilidad de estas, es decir, que pueden ser transferibles de un entorno a otro sin sufrir ningún problema cuando se ejecuten.
La tecnologı́a de contenedores resuelve uno de los grandes problemas a los que se enfrentan las compañı́as el cual es satisfacer
la demanda de aplicaciones que pueden poseer, ya que con el método tradicional para obtener el mismo comportamiento de una
aplicación en un entorno diferente muchas veces tendrı́a que rediseñarse para el nuevo entorno, con los contenedores se pueden
olvidar de este problema. Esta tecnologı́a resulta ser bastante conveniente, pues contener una aplicación no resulta ser difı́cil,
pero actualmente esta tecnologı́a enfrenta grandes desafı́os en cuanto a seguridad los cuales serán compartidos en la siguiente
investigación, se darán a conocer las ventajas que ofrece la contenedorización, ası́ también como las desventajas y posibles
problemas de seguridad que se pueden enfrentar al utilizarlos.

Index Terms
Computación en la nube, contenedores de aplicación, virtualización, seguridad, protección.

I. I NTRODUCCI ÓN
Actualmente muchas compañı́as están usando servicios de la web, entre ellos los servicios de computación en la nube los
cuales proveen alta escalabilidad y bajos costos de TI (Tecnologı́as de la Información). Los usuarios por medio de este modelo
acceden a recursos de computación, almacenamiento, redes, servidores y aplicaciones los que se encuentran disponibles en
linea a través de un proveedor remoto (1).
La computación en nube evolucionó a partir de tecnologı́as de virtualización que ya existı́an en el ecosistema de TI. La
virtualización es un término que se refiere a la abstracción de los recursos informáticos. El propósito de este tipo de tecnologı́a
es mejorar la utilización de los recursos proporcionando una plataforma unificada e integrable para usuarios y aplicaciones
(2). La virtualización oculta las complejidades subyacentes y permite múltiples clientes, con diversas aplicaciones y demandas,
que usan la nube simultáneamente. La plataforma puede ofrecer una amplia gama de servicios que emplean los servicios
virtualizados. La nube ofrece una vista única de sus recursos y servicios, promoviendo la facilidad de uso, la rentabilidad, la
elasticidad, estas caracterı́sticas provocaron importantes intereses en la computación en la nube en todo el mundo (3).
Una de las más grandes necesidades de las empresas es ofrecer aplicaciones de una manera más rápida, esto se debe
a que las aplicaciones cada vez se están volviendo más complejas y existe una demanda por un desarrollo más rápido en
distintos entornos. Se sabe que las aplicaciones en tiempo de su ejecución poseen dependencias, por lo que las compañı́as
están optando por un enfoque basado en la nube el cual consiste en utilizar contenedores de aplicaciones para deshacerse de
estas dependencias. Con un contenedor de aplicaciones, se puede ejecutar un formato de paquete común en las instalaciones
fı́sicas, ası́ como en todos los proveedores principales de la nube pública y nube privada. Un contenedor encapsula un programa
con todas sus dependencias. Este nivel de paquetización permite que una aplicación pueda ser trasladada de un ambiente a
otro y no afecta su ejecución.
Los contenedores de aplicaciones proveen los recursos necesarios para la ejecución de aplicaciones y maximizan su
portabilidad. Los contenedores permiten la “virtualización” de aplicaciones de sofware, es decir, que estas sean transferibles
entre diferentes entornos y sistemas. Todos los contenedores que se ejecutan en una plataforma comparten el sistema operativo,
por lo que el consumo de recursos de almacenamiento, CPU y hardware se reducen y los hace muy rápidos. Gracias a
la tecnologı́a de contenedores, las aplicaciones se pueden desarrollar de forma aislada, con la garantı́a de que trabajarán
exactamente de la misma manera en cualquier máquina que soporte contenedores (4)
En esencia, los contenedores pueden moverse de nube a nube y de sistema a sistema, por lo tanto, también pueden
proporcionar automatización para este proceso. Es decir, No solo se puede aprovechar los contenedores, sino que también
se puede tenerlos automáticamente ”migrar en vivo” desde la nube a la nube según sea necesario (5). Actualmente el uso de
la tecnologı́a de contenedores esta aumentando debido a sus caracterı́sticas interesantes e inspiradoras. Los contenedores son
bastante ligeros, fácil de transportar y proveen alta escalabilidad en tiempo real. Dentro de los contenedores, tı́picamente, se
encuentran binarios, archivos, dependencias, etc. para ejecutar la aplicación en cualquier sitio. Los contenedores comparten el
núcleo del sistema operativo subyacente (6).
2

Si bien los contenedores se han convertido en una de las tecnologı́as más usadas para la virtualización de aplicaciones y
proporcionan múltiples ventajas, aún existen ciertos desafı́os con respecto a la seguridad de los mismos, los cuales se darán
a conocer en esta investigación. La seguridad de los contenedores consiste en proteger su integridad tanto de las aplicaciones
que estos contienen como de la infraestructura en la que estos se basan.

II. C ONTENEDORES DE APLICACIONES


Los contenedores son una tecnologı́a de virtualización que proporciona la solución cuando es necesario mover una aplicación
de un entorno informático a otro de una manera confiable, es decir, sin afectar su ejecución y funcionamiento. Esto podrı́a ser
desde un computador portátil a otro, de un computador portátil a la nube, o entre nubes. Los contenedores permiten configurar
un entorno computacional, incluidas todas las dependencias necesarias, librerı́as, bibliotecas, configuración, código y los datos
necesarios, dentro de una sola unidad (llamada imagen), las cuales son capas de archivos (7). Las imágenes base normalmente
incluyen las herramientas necesarias para instalar paquetes y hacer actualizaciones a la imagen a lo largo del tiempo (8).
La virtualización basada en contenedores no requiere que cada invitado ejecute un sistema operativo completamente instalado.
Este enfoque de virtualización también ayuda a mejorar el rendimiento, ya que hay un solo sistema operativo que se ocupa de
todas las llamadas de hardware, y esto hace a los contenedores rápidos y eficientes. La ventaja de este enfoque es que no hay
necesidad de duplicar la funcionalidad como las llamadas de hardware, ya que solo hay un sistema operativo para cuidar todo
el acceso al hardware. La desventaja de la virtualización basada en contenedores es que cada huésped debe usar el mismo
sistema operativo (9). Como se muestra en la figura 1 un contenedor puede tener varias aplicaciones, estas aplicaciones se
ejecutan en el contenedor y dependen del sistema operativo del host, cuando el contenedor se lleva a un entorno diferente las
aplicaciones compartirán ahora el sistema operativo del nuevo host.

Fig. 1: Arquitectura de un contenedor de aplicaciones

A. Ejemplos de contenedores existentes


1) Docker: Docker es un proyecto de código abierto, que se utiliza para obtener cualquier aplicación o módulo como un
contenedor. Docker se puede considerar como un paquete, que se ejecuta en Linux, pero tiene un entorno de trabajo aislado.
Los contenedores Docker pueden envolver el software con todo su código, dependencias del sistema, herramientas de tiempo
de ejecución y bibliotecas, que pueden o no ser compatibles con la estación de trabajo Linux subyacente. Por lo tanto, elimina
el problema de que el software sea incompatible con un sistema. Docker garantiza que el software se ejecutará de la misma
forma en cualquier lugar, independientemente de su entorno subyacente. Los contenedores que se ejecutan en una sola máquina
utilizan el mismo kernel del sistema operativo del host y se ejecutan como un proceso para el host, por lo tanto, utilizan menos
cantidad de RAM (10).
3

2) LXC - Contenedores Linux: Los contenedores LXC o Linux son el predecesor de Docker, estos proporcionan virtualización
a nivel de sistema operativo y tienen su propio proceso y espacio de red (11). LXC garantiza el aislamiento de los contenedores.
LXC también desarrolló el método de compartir y administrar recursos (2).

3) Rocket – Project rkt: Rocket es un entorno de ejecución de contenedores, es el rival de Docker, además ofrece ventajas
como ser compatible con otros contenedores y asegura poder convertir cualquier otro formato de contenedor existente en su
propio formato. A diferencia de Docker rkt no depende exclusivamente de funciones del kernel de Linux (2).

4) OpenVZ: Es una tecnologı́a basada en contenedores que permite que un servidor fı́sico ejecute varias instancias de un
sistema operativo llamado contenedores. Cada contenedor tiene su propia pila de red, puertos serie, árbol de procesos y sistema
de archivos. Utiliza un kernel de Linux y solo puede ejecutar linux. Podrı́a ser una desventaja usar openVZ en caso de que
los contenedores necesiten una versión diferente del kernel, ya que todos los contenedores de openVZ comparten la misma
arquitectura y la misma versión del kernel. Además, como el contenedor se ejecutan sobre un sistema operativo, es mucho más
eficiente y escalable. También, existe una asignación de memoria dinámica, es decir, la memoria asignada a un contenedor de
Linux se puede utilizar para otro contenedor sin el requisito de reiniciar todo el sistema (11).

B. Beneficios al utilizar contenedores


1) Las aplicaciones en contenedores son portátiles: Uno de los más grandes problemas enfrentados es llevar una aplicación
de un entorno a otro, puede producir errores, fallos en las funciones o inclusive bloqueos. Esto podrı́a ser por causa del código,
falta de archivos o configuraciones que posea el host de destino que no sean iguales al host de origen. Los contenedores
aı́slan las diferencias del nuevo entorno al que se desee transportar la aplicación, pues estos contienen todos los recursos
necesarios para la apropiada ejecución de la misma. La aplicación en un contenedor podrá ejecutarse con facilidad entre los
diferentes entornos, pues el contenedor solamente comparte el sistema operativo del host. Las aplicaciones construidas dentro
de contenedores son extremadamente portátiles, como este tipo de paquetes se mueven como una sola unidad, el movimiento
no afecta el rendimiento o el contenedor en absoluto. como se aprecia en la figura 2 se puede observar que los contenedores
pueden ser tranferibles entre nubes, entre computadores, o entre computador y nube (2).

Fig. 2: Diferentes entornos sobre los que se pueden mover los contenedores de aplicaciones

2) Fáciles de manipular: El proceso de crear, replicar o eliminar contenedores es muy sencillo, esto permite la facilidad
de agregar nuevas funcionalidades, quitar funcionalidades o corregir errores. También el proceso de desarrollo se vuelve más
sencillo por ejemplo el manejo de nuevas versiones. El proceso de actualización de las aplicaciones se vuelve fácil pues
4

solo es necesario modificar el archivo de configuración, crear nuevos contenedores y eliminar los anteriores. Los tiempos de
construcción son rápidos. Esto permite tiempos reducidos en pruebas, desarrollo y despliegue. Una vez que se ha construido
el contenedor, se puede enviar a los entornos de prueba y de allı́ al entorno de producción (2).

3) Mayor producción de aplicaciones en poco tiempo: Las empresas actualmente presentan una alta demanda de aplicaciones
lo que las obliga a ofrecerlas de una manera más rápida, ası́ también como realizar el desarrollo de las mismas en diferentes
entornos. Los contenedores proveen todos los recursos para facilitar la ejecución de las aplicaciones en los diferentes entornos,
esto hace posible que las empresas puedan satisfacer las demandas de sus clientes de forma eficiente sin preocuparse de
desarrollar las aplicaciones para diferentes entornos.

4) Soporte en plataformas multinube: Los contenedores pueden ser transportables entre nubes, siempre y cuando el sistema
operativo host sea compatible con el contenedor. Este es uno de los mayores beneficios pues en la actualidad los principales
proveedores de computación en la nube ofrecen soporte para los contenedores más conocidos.

5) Ahorro de recursos: Un contenedor proporciona la mayorı́a de los recursos necesarios para que una aplicación pueda
ejecutarse, todo lo que se requiere es el sistema operativo, esto hace que las empresas no tengan que invertir en infraestructura
ni en altas tecnologı́as, además también existe un ahorro al no tener que invertir en el desarrollo de una aplicación para entornos
distintos.

C. Desventajas al utilizar contenedores


1) Incompatibilidad entre contenedores: Los distintos contenedores existentes no son compatibles entre ellos, esto se debe
a que son varias las compañı́as existentes que ofrecen la tecnologı́a, por consiguiente cada de una de ellas quiere obtener el
dominio del mercado.

2) Es una tecnologı́a muy nueva: Esta tecnologı́a viene comenzando y esta en continuo crecimiento. El uso y la adminis-
tración de los contenedores de aplicaciones aún no están bien comprendidos y adoptados por la comunidad (desarrolladores,
personal de TI). Esto hace que el proceso de adaptarse y comprender bien la tecnologı́a sea difı́cil. Es complicado encontrar
a personal capacitado para que realice un buen manejo de los contenedores.

3) La portabilidad tiene limitaciones: Los contenedores de aplicaciones están diseñados para que se ejecuten sobre el mismo
sistema operativo sobre el que fueron creados, es decir, un contenedor que fue creado para trabajar sobre Linux no va a ser
compatible con Windows y viceversa.

4) Perdidas económicas: Si la tecnologı́a de contenedores es implementada correctamente y se le da un adecuado uso, esto


podrı́a llevar a las empresas a ahorrar cantidades enormes de dinero en recursos. Pero en la mayorı́a de las situaciones es
fácil crear un contenedor que genere desorden en la nube, esta situación se debe a que los contenedores se inician a ritmos
muy rápidos, entonces estos consumen más recursos de la nube de los que deberı́an, lo cual se ve reflejado en las facturas.
Establecer un cierre de los contenedores que no están en uso puede disminuir los gastos excesivos.

D. Seguridad en los contenedores


La seguridad en uno de los mayores retos al utilizar ambientes de virtualización y la contenedorización no es una excepción,
esta sufre de grandes problemas de seguridad. En un contenedor la seguridad se basa en proteger la integridad del mismo,
tanto las aplicaciones que este contiene como la infraestructura sobre la que este se encuentra trabajando.

1) Problemas de seguridad dentro de un contenedor: Un contenedor puede sufrir daños causados por las aplicaciones
que posee, ya que estas pueden ser mal intencionadas. Si una aplicación pudiera obtener control sobre el administrador de
contenedores, podrı́a ser capaz de apuntar al sistema host y otros contenedores dentro del sistema. Sin embargo, una aplicación
de ataque podrı́a tomar el control de un contenedor vulnerable especı́fico (12). A continuación se detallan los posibles ataques
que pude sufrir un contenedor cuando alberga este tipo de aplicaciones.
5

Las imágenes pueden ser de tipo maliciosas estas pueden contener vulnerabilidades, estar mal configuradas o configuradas
para causar daño. Pueden tener algún virus para intentar dañar al contenedor, incluso un atacante podrı́a crear un backdoor y
obtener acceso al contenedor logrando ası́ realizar modificaciones al mismo y dañando otras aplicaciones que se encuentren
en el contenedor, para evitar este tipo de problemas pueden monitorizarse las aplicaciones con un antivirus (12).
Si un desarrollador no muy experimentado en el tema desea incluir alguna aplicación al contenedor, puede dejar mal las
configuraciones de la imagen por ejemplo proporcionándole más accesos de los que esta necesita, esto causarı́a que la aplicación
obtenga un acceso total al contenedor. También podrı́a habilitar el acceso remoto al contenedor y ası́ ofrecerle oportunidades
a atacantes externos los cuales pueden obtener acceso al contenedor. Esta situación se puede controlar al proporcionarle a la
aplicación accesos de mı́nimo privilegio, es decir, solamente brindarle los accesos necesarios para su ejecución y realizando
una inspección sobre las configuraciones que están habilitadas, para ası́ deshabilitar toda aquella configuración que pueda dar
lugar a un acceso no autorizado al contenedor.
Otro problema es la divulgación de la información, albergar en el contenedor texto claro sobre información secreta puede
traer serios problemas, por ejemplo proporcionar contenido explicito sobre alguna base de datos darı́a acceso a la posible
modificación de la misma. Es por esto que la información secreta no se debe contener en la imagen (12). Es importante
mantener en constante revisión las aplicaciones para detectar vulnerabilidades, además conceder el mı́nimo acceso a las mismas
reduce las posibilidades de ataques, como un ataque de denegación de servicio (DoS) el cual afectarı́a la disponibilidad del
contenedor.

2) Problemas de seguridad entre contenedores: Existen contenedores maliciosos que pueden acceder a otros contenedores
y ası́ modificar, dañar o robar los datos del otro. También uno de estos contenedores podrı́a dañar la disponibilidad de otro
contenedor apropiándose de todos los recursos disponibles para utilizarlos a su favor.
Una imagen mal intencionada puede establecer un proceso que analice las imágenes que existan en otros contenedores y
ası́ tomar el control de estos. Puede evitarse este problema si solamente se utilizan imágenes confiables, sin vulnerabilidades.
Un contenedor malicioso puede acceder a la red donde operan otros contenedores y de esta manera lograr un ataque de
degeneración de servicio, por esta razón no debe existir comunicación entre contenedores a menos que sea necesaria. También
si un contenedor obtiene acceso a la red de otros podrı́a realizar un análisis de los puertos del mismo para ası́ encontrar
vulnerabilidades.

3) Problemas de seguridad en el host que hospeda el contenedor: Uno de los más grandes problemas que suceden al utilizar
contenedores es que el host que alberga a este contenedor es propenso a múltiples ataques. Una de las caracterı́sticas de todos
los contenedores es que estos funcionan sobre el sistema operativo del host, aunque esta caracterı́stica les proporciona grandes
ventajas al ser muy rápidos y ligeros, esta misma los hace bastante inseguros.
Una aplicación que se cree en un contenedor con privilegios root también tendrá los mismos privilegios sobre el sistema
operativo en el que se encuentra, es decir, es bastante importante considerar los derechos de acceso que se tienen, pues si un
atacante logra obtener acceso sobre un contenedor con accesos root podrá obtener también todo el acceso al sistema operativo
causando ası́ múltiples ataques. Con este tipo de acceso se puede hacer uso de todos los recursos del sistema operativo incluso
de la memoria, ocasionando de esta manera un ataque de denegación de servicio dañando no solo la disponibilidad de los otros
contenedores que se encuentren en el mismo host sino también afectarı́a al mismo sistema dejándolo sin recursos disponibles
para atender otras solicitudes. Al usar contenedores es esencial que el sistema operativo sobre el que estos se encuentran posea
todos los requerimientos de seguridad y sea totalmente confiable. La administración de recursos proporciona una manera de
limitar la cantidad de recursos disponibles para cada contenedor dependiendo de la carga del sistema. Esto es necesario para
evitar que un atacante agote los recursos fı́sicos disponibles en un dispositivo, como el espacio en disco o los lı́mites de E/S
del disco, los ciclos de la CPU, el ancho de banda de la red y la memoria (13).

4) Aspectos a tomar en cuenta para la elección del host al utilizar contenedores: Si bien un contenedor puede operar sobre
cualquier host, existe la posibilidad de que este no cuente con la preparación necesaria para brindar la mayor seguridad al
contenedor, puesto que si el sistema operativo del host se ve expuesto por algún ataque de un contenedor, no solamente se
verá afectado este sistema sino también todos los otros contenedores que contenga. La mayorı́a de amenazas que puede sufrir
un contenedor son por la compartición de datos o por vulnerabilidades en el uso de comunicaciones. Es por esta razón la
importancia de mencionar que requerimientos debe presentar el host para que sea adecuado al manejar contenedores.

• Separación de Procesos: El sistema operativo del host debe ofrecer un mecanismo para determinar cuales procesos están
siendo ejecutados por los diferentes contenedores y cuales esta ejecutando el mismo. De esta manera se limita el acceso
a los contenedores si tratan de realizar alguna instrucción indebida (13).
6

• Aislar el sistema de Archivos: Debe considerarse que el sistema operativo separe el sistema de archivos entre contenedores,
ya que este sistema es el que permite la interacción entre procesos como compartir datos. De esta manera se evita que
los distintos contenedores puedan tener comunicación, y realicen ataques entre ellos (13).

• Aislamiento de red: El objetivo principal del aislamiento de la red es evitar los ataques basados en la red como ataques
de denegación de servicio, backdoors y man-in-the-middle. Además, para poder admitir aplicaciones que puedan competir
por el mismo tipo de recurso de red (como el enlace al mismo puerto de red), También debe proporcionar una vista
virtualizada de la pila de red. Los métodos de aislamiento de red difieren en términos de la capa OSI de la pila TCP /
IP donde se implementa el aislamiento. FreeBSD y Linux-VServer implementan el aislamiento de red en la Capa 3 con
la ayuda del filtrado de enlaces. Restringen una llamada bind realizada desde dentro de un contenedor a un conjunto de
direcciones IP especı́ficas y, por lo tanto, los procesos solo pueden enviar y recibir paquetes desde estas direcciones (13).

• Aislar el manejo de dispositivos: Se debe tomar en consideración un sistema operativo host que no permita instanciar
cualquier tipo de dispositivo a los contenedores, ası́ para proteger a otros contenedores y al host. Los dispositivos que se
deben permitir instanciar a un contenedor deben ser virtuales de esta manera el único que posee información sobre estos
dispositivos es el contenedor, lo que permite que estos no sean compartidos. También se pueden permitir dispositivos
sin estado como por ejemplo nulos, estos no afectarı́an ya que no poseen ningún estado y por último dispositivos que
posean espacios de nombres, si un dispositivo admite a un contenedor en su espacio correspondiente entonces es seguro
exponerlo al uso en el contenedor (13).

• Buena administración de recursos: Si se provee una buena administración de recursos cada contenedor en el host solo
tendrá acceso a los recursos necesarios para su ejecución y no se podrá aprovechar de los demás recursos del sistema
operativo para generar un ataque y deshabilitar a otros contenedores o a los procesos del host.

III. C ONCLUSI ÓN


Los contenedores son una tecnologı́a del futuro de la computación en la nube, estos resuelven problemas que se han
enfrentado por años en cuanto a la portabilidad de las aplicaciones. Sin embargo una de las principales barreras para la
adopción de los contenedores en el mundo empresarial es el tema de la seguridad respecto a los contenedores. Estos sufren
de muchos problemas de seguridad y si no se configuran e implementan de la manera adecuada pueden ocasionarle grandes
fallos al sistema operativo sobre el que operan ası́ como a otros contenedores, también ellos mismos pueden sufrir ataques en
caso de un mal diseño del contenedor.
Si bien se detallaron algunas soluciones a los problemas de seguridad que enfrentan los contenedores, estas no garantizan
la total fiabilidad de los mismos, pues cualquier mı́nimo fallo puede ser usado por algún atacante para aprovecharse de las
vulnerabilidades que poseen los contenedores, podrı́a obtener información confidencial e incluso corromper los datos en el
contenedor ocasionando grandes daños.
Esta tecnologı́a no es tan conocida por los desarrolladores lo que implica que al empezar a utilizarla se necesite invertir en
capacitaciones. Por consiguiente esto generarı́a gastos a la empresa al decidir adquirir la tecnologı́a, además los desarrolladores
necesitarı́an adquirir práctica para realizar una buena implementación de contenedores, pues la contenedorización como se ha
visto a lo largo de esta investigación es una tecnologı́a que se debe manejar con mucha delicadeza. Aunque es fácil albergar
una aplicación en un contenedor esta no podrı́a cumplir todas las especificaciones para ser segura, lo que podrı́a ocasionar
problemas tanto para el contenedor como para el host.
Los sistemas basados en contenedores están en grave riesgo debido a ataques tales como al mal uso de accesos y problemas
en las comunicaciones. El control de acceso basado en el mı́nimo privilegio garantiza el privilegio apropiado para el uso del
contenedor, limita el acceso a los recursos del sistema operativo, ası́ como también proporciona monitoreo de procesos para
seguir vigilando el comportamiento del tiempo de ejecución de cada contenedor (12).
Al implementar la tecnologı́a de contenedores uno de los mayores aspectos a tomar en consideración es escoger el sistema
operativo adecuado, que posea varios sistemas de seguridad para no de dejar que otro contenedor pueda acceder al mismo y
afectar los demás contenedores y el mismo sistema operativo del host. La imagen en el contenedor también es muy importante,
ya que por medio de estas es que se dan la mayorı́a de vulnerabilidades.
7

R EFERENCES
[1] P. V. Beserra, A. Camara, R. Ximenes, A. B. Albuquerque, and N. C. Mendonça, “Cloudstep: A step-by-step decision
process to support legacy application migration to the cloud,” in 2012 IEEE 6th international workshop on the maintenance
and evolution of service-oriented and cloud-based systems (MESOCA). IEEE, 2012, pp. 7–16.
[2] T. Vase, “Advantages of docker,” 2015.
[3] H. Rajaei and E. A. Aldakheel, “Ac 2012-4956: Cloud computing in computer science and engineering education.”
[4] L. Baresi, S. Guinea, A. Leva, and G. Quattrocchi, “A discrete-time feedback controller for containerized cloud
applications,” in Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software
Engineering. ACM, 2016, pp. 217–228.
[5] D. S. Linthicum, “Moving to autonomous and self-migrating containers for cloud applications,” IEEE Cloud Computing,
vol. 3, no. 6, pp. 6–9, 2016.
[6] R. Madhumathi, “The relevance of container monitoring towards container intelligence,” in 2018 9th International
Conference on Computing, Communication and Networking Technologies (ICCCNT). IEEE, 2018, pp. 1–5.
[7] J. Cito, V. Ferme, and H. C. Gall, “Using docker containers to improve reproducibility in software and web engineering
research,” in International Conference on Web Engineering. Springer, 2016, pp. 609–612.
[8] R. HAT, “Modernizar la entrega de aplicaciones con contenedores,” pp. 1–6, 2017.
[9] S. Singh and N. Singh, “Containers & docker: Emerging roles & future of cloud technology,” in 2016 2nd International
Conference on Applied and Theoretical Computing and Communication Technology (iCATccT). IEEE, 2016, pp. 804–807.
[10] R. R. Gupta, G. Mishra, S. Katara, A. Agarwal, M. K. Sarkar, R. Das, and S. Kumar, “Data storage security in
cloud computing using container clustering,” in 2016 IEEE 7th Annual Ubiquitous Computing, Electronics & Mobile
Communication Conference (UEMCON). IEEE, 2016, pp. 1–7.
[11] U. Gupta, “Comparison between security majors in virtual machine and linux containers,” arXiv preprint
arXiv:1507.07816, 2015.
[12] S. Sultan, I. Ahmad, and T. Dimitriou, “Container security: Issues, challenges, and the road ahead,” IEEE Access, vol. 7,
pp. 52 976–52 996, 2019.
[13] K. Bernsmed and S. Fischer-Hübner, Secure IT Systems: 19th Nordic Conference, NordSec 2014, Tromsø, Norway, October
15-17, 2014, Proceedings. Springer, 2014, vol. 8788.

También podría gustarte