search El medio de comunicación que reinventa la empresa

Contenedores informáticos: espacio para la innovación en el desarrollo

Contenedores informáticos: espacio para la innovación en el desarrollo

Por Laurent Hercé

El 29 de octubre de 2024

El uso de contenedores informáticos está de moda en los últimos años. Y con razón: promete un desarrollo informático más rápido, eficaz y que ahorra recursos.

¿Quiere saber más sobre la contenedorización? Definición, ventajas, casos de uso y soluciones: en este artículo encontrará todas las respuestas que necesita.

Contenedorización de TI: definición

¿Qué es la contenedorización informática?

La contenedorización informática consiste en empaquetar todos los servicios, scripts, API y bibliotecas que necesita una aplicación. El objetivo es que puedan ejecutarse en cualquier núcleo compatible.

  • No hay que preocuparse por interacciones o incompatibilidades con contenedores existentes o futuros en esa máquina.
  • ✅ No ocupa tantos recursos como una máquina virtual (VM), que lleva su propio sistema operativo y bloquea recursos cuando se lanza.

Por qué utilizar contenedores?

Quién debería lanzarlos?

La contenedorización es un formidable acelerador tecnológico que además favorece el uso eficiente de los recursos. Así que no puedes evitar la contenedorización en los siguientes casos:

  • Gestionas un gran número de aplicaciones heterogéneas y en gran medida independientes.
  • Quiere acelerar el ritmo de entrega de sus aplicaciones para responder a los cambios de comportamiento de sus destinatarios y fomentar la innovación.
  • Busca mejorar la elasticidad de su arquitectura, controlarla o prepararse para un fuerte crecimiento.

Ventajas e inconvenientes de la contenedorización informática

Ventajas

  • Desarrollo más rápido: el desarrollador trabaja en un marco restringido a lo estrictamente necesario, lo que le ahorra la codificación de pruebas de interacción en particular. También favorece la creación de sandboxes, lo que permite adquirir competencias más rápidamente y aumentar la capacidad de innovación.
  • Portabilidad y, por tanto, despliegue más rápido: el contenedor creado es coherente y no sufrirá si se ejecuta en otro entorno, al tiempo que consume menos energía que una máquina virtual y, por tanto, puede trasladarse, copiarse y relanzarse más fácilmente.
  • Menor impacto en el rendimiento del servidor, ya que un contenedor puede liberar rápidamente los recursos no utilizados (memoria, almacenamiento).

Desventajas

  • Un contenedor Linux no puede utilizarse en una máquina Windows (y viceversa) a menos que exista una capa intermedia de virtualización/emulación para el SO correspondiente.
  • Se han dado varios casos en los que el kernel de una aplicación en contenedor se ha visto comprometido (varios casos en la nube), poniendo en riesgo todos los contenedores de ese servidor (físico o virtual).

Containerización y virtualización: no tires tus máquinas virtuales

Cabe señalar que la contenedorización no excluye la virtualización de máquinas: ambos métodos pueden mezclarse en función de las necesidades.

Una máquina virtual puede alojar contenedores si ello facilita la gestión y la seguridad de su organización por entorno o dominio.

¿Qué soluciones de contenedorización existen?

Docker... y otras plataformas

La contenedorización está, pues, al servicio de la agilidad, que se ha visto favorecida además por la adopción rápida y generalizada de soluciones como Docker, de la empresa francesa dotCloud, basadas en tecnologías de código abierto.

💡 Los departamentos de TI, pero también las plataformas Cloud de Oracle o Microsoft lo han adoptado, y la comunidad Docker Hub pone a disposición un gran número de contenedores sandbox que catalizan la innovación.

Existen otras soluciones que facilitan la contenedorización, por supuesto, tanto para Linux como para Windows, FreeBSD o Solaris:

  • LXC (la base histórica de la contenedorización en Linux),
  • Rocket (rkt) de CoreOs,
  • Windows Hyper-V Containers (que son similares a las máquinas virtuales ligeras),
  • Docker para Windows,
  • Oracle Zones,
  • FreeBSD Jails, etc.

Un segundo hito se alcanzó en la aceleración de la adopción de contenedores cuando Google lanzó en 2015 su solución Kubernetes (K8s), el orquestador líder del mercado.

Pero, ¿qué es un orquestador de contenedores?

La agilidad y elasticidad que promete el uso masivo de contenedores solo son posibles si están :

  • bien gestionados
  • seguros
  • fáciles de desplegar o trasladar de una máquina a otra
  • a la vez que se modulan los recursos de infraestructura en función de las necesidades.

Además, una aplicación en contenedores puede recurrir a otros servicios que a su vez están sustentados por otros contenedores; por lo tanto, necesitará que todos estos servicios estén disponibles en el momento oportuno.

👉 Esta es la función del orquestador, que se encargará de los componentes de tu clúster para asegurar el despliegue y la disponibilidad de tus contenedores para cubrir las necesidades de tus aplicaciones.

Aquí también hay muchos competidores de K8s (y a veces coexisten):

  • Docker Straw,
  • Amazon ECS,
  • Rancher,
  • Microsoft AKS basado en... ¡Kubernetes!

Esta combinación de Container/Orchestrator, y posiblemente VM, promete responder a los retos de las empresas de alto crecimiento o que buscan elasticidad, agilidad e innovación.

[Algunos casos de uso concretos

  1. DockerCon 2017 fue una oportunidad para que Paypal presentara su viaje en la transformación de sus aplicaciones para agilizarlas y mejorar su disponibilidad. Como resultado, surgieron 150 000 contenedores en 2 años de trabajo para modernizar sus principales aplicaciones empresariales en beneficio de sus clientes.
  2. Más recientemente, en 2019, Pipedrive, una herramienta de CRM, demostró la eficacia de la contenedorización para acelerar sus desarrollos y mejorar la elasticidad de su infraestructura.
  3. Babylon, por su parte, ha implementado la contenedorización para favorecer la portabilidad de sus motores de IA en el sector sanitario, pero sobre todo para permitir que las aplicaciones más exigentes utilicen recursos en la nube, absorbiendo un crecimiento de más del 1.500% en 3 años.
  4. Blablacar demostró cómo la contenedorización combinada con una buena orquestación puede ahorrar varios días en el ciclo de vida de una aplicación, de nuevo en un contexto de crecimiento exponencial. También se esperan con impaciencia comentarios sobre los beneficios de la elasticidad de la combinación contenedor-nube en un contexto de crisis como la sanitaria, que ha golpeado con especial dureza al sector del transporte.
  5. Docker presentó las propuestas de Netflix para consolidar su uso de estas tecnologías aportando soluciones destinadas a asegurar sus contenedores, racionalizar su uso y garantizar que sean lo más interoperables posible.

Conclusión

Como prolongación lógica del esfuerzo de racionalización de los recursos iniciado por las máquinas virtuales, los contenedores aportan también un importante valor añadido a la organización y la innovación en el desarrollo informático.

Como ocurre con cualquier gran avance tecnológico, la contenedorización tiene su parte de "mala fama", y las empresas a la vanguardia de la innovación afrontan el reto a una velocidad de vértigo.

Artículo traducido del francés