LFCA Aprenda los conceptos básicos de usar contenedores - Parte 22

LFCA Aprenda los conceptos básicos de usar contenedores - Parte 22

Con el tiempo, a medida que la demanda de pruebas rápidas y el despliegue de aplicaciones crecieron junto con ciclos comerciales más rápidos, las organizaciones se vieron obligadas a innovar para mantenerse al día con el entorno empresarial acelerado.

La búsqueda para modernizar aplicaciones y construir otras nuevas para crear flujos de trabajo ágiles condujo al concepto de usar contenedores. La tecnología de contenedores es casi tan antigua como la virtualización. Sin embargo, los contenedores no encendieron mucha emoción hasta Estibador Explotó en la escena en 2013 y evocó un interés frenético entre los desarrolladores y otros profesionales de TI.

Actualmente, todas las entidades tecnológicas gigantes como Google, Amazonas, Microsoft, y sombrero rojo por mencionar que algunos han subido al carro.

Por qué contenedores?

Uno de los desafíos que enfrentaron los desarrolladores es la diferencia en los entornos informáticos en cada etapa del desarrollo de software. Surgen problemas cuando el entorno de software es diferente de una etapa a la siguiente.

Por ejemplo, una aplicación puede ejecutarse perfectamente en un entorno de prueba utilizando en ejecución Python 3.6. Sin embargo, la aplicación se comporta extrañamente, devuelve algunos errores o se bloquea por completo cuando se transfiere a un entorno de producción que se ejecuta Python 3.9.

Los contenedores llegaron a la escena para abordar este desafío y garantizar que las aplicaciones se ejecuten de manera confiable cuando se trasladen de un entorno informático a la siguiente en cada etapa del desarrollo de software, desde la PC de los desarrolladores hasta el entorno de producción hasta el entorno de producción. Y no es solo el entorno de software el que puede provocar tales inconsistencias, sino también las diferencias en la topología de la red y las políticas de seguridad.

¿Qué son los contenedores??

A envase es una unidad de software aislada que empaca todo el código binario, las bibliotecas, los ejecutables, las dependencias y los archivos de configuración en un solo paquete de tal manera que la aplicación se ejecutará sin problemas cuando se transfiera de un entorno informático a otro. No viene con una imagen del sistema operativo que la hace liviana y fácilmente portátil.

Una imagen de contenedor es un paquete independiente, liviano y ejecutable que envuelve todo lo requerido para ejecutar la aplicación. En tiempo de ejecución, una imagen de contenedor se transforma en un contenedor. En el caso de Estibador, Por ejemplo, una imagen de Docker se convierte en un contenedor Docker cuando se ejecuta en Motor Docker. Estibador es un entorno de tiempo de ejecución utilizado para construir aplicaciones contenedoras.

Los contenedores se ejecutan en completo aislamiento del sistema operativo subyacente, y las aplicaciones contenedores siempre se ejecutarán de manera consistente independientemente del entorno informático o la infraestructura. Es por esta razón que un desarrollador puede desarrollar una aplicación a partir de la comodidad de esta computadora portátil e implementarla fácilmente en un servidor.

La consistencia y la fiabilidad de la ejecución de los contenedores brindan a los desarrolladores tranquilidad al saber que sus aplicaciones se ejecutarán como se esperaba sin importar dónde se despliegan.

¿En qué se diferencian los contenedores de las máquinas virtuales??

Una cosa común que comparten los contenedores y las máquinas virtuales es que operan en un entorno virtualizado. La contenedores, en cierto sentido, es una forma de tecnología virtualizada. Sin embargo, los contenedores difieren de las máquinas virtuales en más de un sentido.

Maquinas virtuales

Una máquina virtual también se conoce como una instancia virtual o VM En resumen es una emulación de un servidor físico o PC. La virtualización es una tecnología que hace posible crear máquinas virtuales. El concepto de virtualización se remonta a principios de la década de 1970 y sentó las bases para la primera generación de tecnología en la nube.

En la virtualización, se crea una capa de abstracción sobre un servidor o hardware de computadora de metal desnudo. Esto hace posible que los recursos de hardware de un solo servidor se compartan en múltiples máquinas virtuales.

El software utilizado para hacer la capa de abstracción se conoce como un hipervisor. El hipervisor abstrae la máquina virtual y el sistema operativo invitado del hardware real de metal desnudo o computadora. Por lo tanto, una máquina virtual se encuentra encima del hipervisor que hace que los recursos de hardware estén disponibles gracias a la capa de abstracción.

Las máquinas virtuales ejecutan un sistema operativo completo (sistema operativo invitado) que es independiente del sistema operativo subyacente (sistema operativo host) en el que está instalado el hipervisor. El sistema operativo invitado luego proporciona una plataforma para construir, probar e implementar aplicaciones junto con sus bibliotecas y binarios.

[También le puede gustar: Cómo instalar KVM en CentOS/RHEL 8]

Hay dos tipos de hipervisores:

Hypervisor Tipo 1 (Hypervisor de metal desnudo)

Este hipervisor se instala directamente en un servidor físico o en el hardware subyacente. No hay un sistema operativo que se encuentre entre el hipervisor y el hardware de la computadora, de ahí el nombre de la etiqueta metal básico hipervisor. Proporciona un excelente soporte ya que los recursos no se comparten con el sistema operativo del host.

Hypervisor tipo 1

Debido a su eficiencia, los hipervisores tipo 1 se utilizan principalmente en entornos empresariales. Los proveedores de hipervisores tipo 1 incluyen Vmware esxi y KVM.

Hypervisor tipo 2:

Esto también se considera un hipervisor alojado. Está instalado en la parte superior del sistema operativo host y comparte los recursos de hardware subyacentes con el sistema operativo host.

Hypervisor tipo 2

Los hipervisores tipo 2 son ideales para entornos informáticos pequeños y se utilizan principalmente para probar sistemas operativos e investigación. Los proveedores de hipervisores tipo 2 incluyen Oracle Virtualbox y VMware Workstation Pro.

El inconveniente con máquinas virtuales

Las máquinas virtuales tienden a ser enormes (pueden tomar varios GB), lentamente para comenzar y detenerse y engullir muchos recursos del sistema que conducen a un rendimiento lento debido a recursos limitados. Como tal, una máquina virtual se considera voluminosa y se asocia con altos costos generales.

Contenedores

A diferencia de una máquina virtual, un contenedor no requiere un hipervisor. Un contenedor se encuentra sobre un servidor físico y su sistema operativo y comparte el mismo núcleo que el sistema operativo, entre otras cosas, como bibliotecas y binarios. Múltiples contenedores pueden ejecutarse en el mismo sistema, cada uno ejecutando su propio conjunto de aplicaciones y procesos desde el resto. Las plataformas de contenedores populares incluyen Estibador y Podman.

Contenedores

A diferencia de las máquinas virtuales, los contenedores se ejecutan en completo aislamiento del sistema operativo subyacente. Los contenedores son excepcionalmente livianos, solo unos pocos megabytes, ocupan menos espacio y son amigables con los recursos. Son fáciles de iniciar y detenerse y pueden manejar más aplicaciones que una máquina virtual.

Beneficios del uso de contenedores

Los contenedores proporcionan una forma conveniente de diseñar, realizar pruebas e implementar aplicaciones desde el derecho de su PC a un entorno de producción, ya sea en la premisa o en la nube. Estos son algunos de los beneficios del uso de aplicaciones contenedores.

1. Mayor modularidad

Antes de los contenedores, teníamos el modelo monolítico antiguo donde una aplicación completa que comprende los componentes frontend y de backend se inclinaría en un solo paquete. Los contenedores permiten dividir una aplicación en múltiples componentes individuales que pueden comunicarse entre sí.

De esta manera, los equipos de desarrollo pueden colaborar en varias partes de una aplicación, siempre que no se realicen modificaciones importantes con respecto a cómo las aplicaciones interactúan entre sí.

En esto se basa el concepto de microservicios.

2. Productividad incrementada

Más modularidad significa más productividad ya que los desarrolladores pueden trabajar en componentes individuales de la aplicación y los errores de depuración mucho más rápido que antes.

3. Costos generales reducidos

En comparación con las máquinas virtuales y otros entornos informáticos convencionales, los contenedores utilizan menos recursos del sistema, ya que no incluyen un sistema operativo. Esto evita el gasto innecesario en la adquisición de servidores caros para construir y probar aplicaciones.

4. Mayor portabilidad

Debido a su pequeña huella, las aplicaciones contenedores se implementan fácilmente en múltiples entornos informáticos / sistemas operativos.

5. Mayor eficiencia y flexibilidad

Los contenedores permiten una implementación rápida y escala de aplicaciones. También proporcionan la muy necesaria flexibilidad para implementar aplicaciones en múltiples entornos de software.

¿Cómo benefician los contenedores a los equipos DevOps??

Los contenedores juegan un papel clave en Devops Y sería imposible imaginar cómo sería la situación sin aplicaciones contenedoras. Entonces, ¿qué traen los contenedores a la mesa??

Primero, los contenedores respaldan la arquitectura de microservicios, permitiendo desarrollar, desplegar y escalarse de forma construcción de una aplicación completa. Como se mencionó, esto provoca una mayor colaboración y una implementación rápida de aplicaciones.

La contenedores también juega un papel importante en la facilitación de las tuberías de CI/CD al proporcionar un entorno controlado y consistente para la creación de aplicaciones. Todas las bibliotecas y dependencias se empaquetan junto con el código en una sola unidad para una implementación más rápida y fácil. La aplicación probada será el software exacto que se implementará en producción.

Además, los contenedores mejoran el despliegue de parches y actualizaciones cuando una aplicación se divide en múltiples microservicios., cada uno en un contenedor separado. Los contenedores individuales pueden ser examinados, parcheados y reiniciados sin interrumpir el resto de la aplicación.

Conclusión

Cualquier organización que busque alcanzar la madurez en Devops Debería considerar aprovechar el poder de los contenedores para implementaciones ágiles y perfectas. El desafío radica en saber cómo configurar, asegurarlos e implementarlos sin problemas en múltiples entornos.

Conviértase en un Asociado de IT Certified IT (LFCA) de Linux Foundation (LFCA)