Contenedorización (informática)

En ingeniería de software, la contenedorización es la virtualización a nivel del sistema operativo o la virtualización a nivel de la aplicación a través de múltiples recursos de red para que las aplicaciones de software puedan ejecutarse en espacios de usuario aislados llamados contenedores en cualquier entorno en la nube o no en la nube, independientemente del tipo o proveedor.[1]

Uso editar

Los contenedores son básicamente un entorno de computación usualmente en la nube, totalmente funcional y portátil, que rodea la aplicación y la mantiene independiente de otros entornos que se ejecutan en paralelo.[2]​ Individualmente, cada contenedor simula una aplicación de software diferente y ejecuta procesos aislados[3]​ agrupando archivos de configuración, bibliotecas y dependencias relacionadas.[4]​ Pero, en conjunto, varios contenedores comparten un núcleo de sistema operativo (SO) común.[5]

En los últimos tiempos, la tecnología de contenedorización ha sido ampliamente adoptada por plataformas de computación en la nube como Amazon Web Services, Microsoft Azure, Google Cloud Platform e IBM Cloud.[6]​ El Departamento de Defensa de EE. UU. también ha impulsado la utilización de contenedores como una forma de desarrollar y desplegar más rápidamente actualizaciones de software, con su primera aplicación en su caza de superioridad aérea F-22.[7]

Tipos de contenedores editar

  • Contenedores de sistema operativo
  • Contenedores de aplicaciones

Temas de seguridad editar

  • Debido al sistema operativo compartido, las amenazas a la seguridad pueden afectar a todo el sistema en contenedores.
  • En entornos en contenedores, los escáneres de seguridad generalmente protegen el sistema operativo pero no los contenedores de aplicaciones, lo que añade vulnerabilidad no deseada.

Gestión de contenedores, orquestación, clustering. editar

La orquestación o gestión de contenedores se utiliza principalmente en el contexto de contenedores de aplicaciones. Las implementaciones que proporcionan dicha orquestación incluyen Kubernetes y Docker swarm.

Gestión de clústeres de contenedores editar

Es necesario gestionar los clústeres de contenedores. Esto incluye funcionalidad para crear un clúster, actualizar el software o repararlo, equilibrar la carga entre instancias existentes, escalar iniciando o deteniendo instancias para adaptarse a la cantidad de usuarios, registrar actividades y monitorear los registros producidos o la aplicación misma mediante consultas. sensores. Las implementaciones de código abierto de dicho software incluyen OKD y Rancher. Un buen número de empresas ofrecen gestión de clústeres de contenedores como un servicio gestionado, como Alibaba, Amazon, Google, Microsoft, etc.

Véase también editar

Referencias editar

  1. Scheepers, Mathijs Jeroen (2014). «Virtualization and Containerization of Application Infrastructure: A Comparison». Thijs Scheepers. 
  2. «What is containerization?». www.redhat.com (en inglés). RedHat. Archivado desde el original el 8 de mayo de 2021. Consultado el 10 de julio de 2021. 
  3. Hinck, Tim Maurer, Garrett. «Cloud Security: A Primer for Policymakers». Carnegie Endowment for International Peace (en inglés). Consultado el 10 de julio de 2021. 
  4. Rubens, Paul (27 de junio de 2017). «What are containers and why do you need them?». CIO (en inglés). Consultado el 10 de julio de 2021. 
  5. «Containerization». www.ibm.com (en Indian English). Consultado el 10 de julio de 2021. 
  6. December 2019, Jonas P. DeMuro 18 (18 de diciembre de 2019). «What is container technology?». TechRadar India (en inglés). Consultado el 10 de julio de 2021. 
  7. «Flight Test Clears F-22 Fleet To Accept Third-Party Software». Aviation Week. 30 de agosto de 2022. 

Bibliografía editar

  • Bentaleb, Ouafa; Belloum, Adam S. Z.; Sebaa, Abderrazak; El-Maouhab, Aouaouche (8 de junio de 2021). «Containerization technologies: taxonomies, applications and challenges». The Journal of Supercomputing 78: 1144-1181. doi:10.1007/s11227-021-03914-1. 
  • Watada, Junzo; Roy, Arunava; Kadikar, Ruturaj; Pham, Hoang; Xu, Bing (2019). «Emerging Trends, Techniques and Open Issues of Containerization: A Review». IEEE Access 7: 152443-152472. doi:10.1109/ACCESS.2019.2945930. 
  • van den Berg, Tom; Siegel, Barry; Cramp, Anthony (April 2017). «Containerization of high level architecture-based simulations: A case study». The Journal of Defense Modeling and Simulation: Applications, Methodology, Technology 14 (2): 115-138. doi:10.1177/1548512916662365. 
  • Zhang, Xiao; Tang, Yu; Li, Hao; Liu, Shaotao; Lin, Di (2021). «Containerization Design for Autonomous and Controllable Cloud Distributed System». Communications, Signal Processing, and Systems. Lecture Notes in Electrical Engineering 654. pp. 30-38. ISBN 978-981-15-8410-7. doi:10.1007/978-981-15-8411-4_4. 
  • Odun-Ayo, Isaac; Geteloma, Victor; Eweoya, Ibukun; Ahuja, Ravin (2019). «Virtualization, Containerization, Composition, and Orchestration of Cloud Computing Services». Computational Science and Its Applications – ICCSA 2019. Lecture Notes in Computer Science 11622. pp. 403-417. ISBN 978-3-030-24304-3. doi:10.1007/978-3-030-24305-0_30. 
  • Gabriel N. Schenker, Hideto Saito, Hui-Chuan Chloe Lee, Ke-Jou Carol Hsu, (2019) Introducción a la contenedorización: reduzca la carga operativa de su sistema automatizando y gestionando sus contenedores, Packt Publishing ,ISBN 978-1-83864-903-6
  • Jeeva S. Chelladhurai, Vinod Singh, Pethuru Raj (2014), Learning Docker, Packt Publishing ,ISBN 978-0-9888202-0-3