Hola a todos, en esta occasion hablaremos de contenedores desde 0, hasta su implementacion con alguna tecnologia (VMware), sera un conjunto de publicaciones iniciando con esta, espero les guste.
Que es Contenedores
Un contenedor es un paquete ligero e independiente que encapsula un entorno de tiempo de ejecución completo que incluye una aplicación y sus dependencias (bibliotecas, archivos binarios y cualquier archivo de configuración adicional), lo que aumenta la portabilidad, escalabilidad, seguridad y agilidad de una aplicación.
Los contenedores son populares entre los desarrolladores y operadores porque ofrecen una forma sencilla de implementar y administrar aplicaciones, independientemente del entorno de destino. Facilitan las prácticas de DevOps y DevSecOps al mejorar las transferencias entre los equipos de desarrollo y operaciones.
Los contenedores consumen recursos de manera eficiente, lo que permite una alta densidad y utilización de recursos. Aunque los contenedores se pueden usar con casi cualquier aplicación, con frecuencia se asocian con microservicios, en los que varios contenedores ejecutan servicios o componentes de aplicaciones independientes. Los contenedores que componen una aplicación generalmente se coordinan y administran mediante una plataforma de orquestación de contenedores, como Kubernetes.
Los contenedores se crean empaquetando aplicaciones a partir de múltiples imágenes de uno o más repositorios junto con bibliotecas u otras dependencias de aplicaciones, lo que elimina los problemas de portabilidad y compatibilidad
El contenedor encapsula una aplicación en un formato portátil y fácil de implementar. Los contenedores pueden ejecutarse sin cambios en cualquier sistema compatible, en cualquier nube privada o nube pública, y consumen recursos de manera eficiente, lo que permite una alta densidad y utilización de recursos. Aunque los contenedores se pueden usar con casi cualquier aplicación, con frecuencia se asocian con microservicios, en los que varios contenedores ejecutan servicios o componentes de aplicaciones independientes. Los contenedores que componen los microservicios generalmente se coordinan y administran mediante una plataforma de orquestación de contenedores, como Kubernetes.
Componentes Contendores
VMware vSphere with tanzu
Principales características y beneficios
Agilidad
Cuando los desarrolladores compilan y empaquetan aplicaciones en contenedores y se las proporcionan al departamento de TI para que las ejecuten en una plataforma normalizada, se reduce el esfuerzo global de implementar las aplicaciones y puede optimizar todo el ciclo de desarrollo y pruebas. Esto aumenta también la colaboración y la eficacia entre los equipos de desarrollo y de operaciones para distribuir las aplicaciones con más rapidez.
Portabilidad
Los contenedores proporcionan un formato normalizado para empaquetar y mantener todos los componentes necesarios para ejecutar la aplicación deseada. Esto resuelve el problema típico de “en mi equipo funciona” y permite la portabilidad entre diversas plataformas de sistema operativo y entre nubes. Cada vez que se implementa un contenedor en cualquier lugar, se ejecuta en un entorno coherente que permanece intacto de una implementación a otra. Ahora dispone de un formato coherente, desde el equipo de desarrollo hasta la producción.
Escalabilidad
Dado que los contenedores no tienen la sobrecarga típica de las máquinas virtuales, incluidas las instancias de sistemas operativos independientes, la misma infraestructura puede admitir muchos más contenedores. La naturaleza ligera de los contenedores significa que pueden iniciarse y detenerse rápidamente, lo que permite escalar y reducir verticalmente los recursos con rapidez.
Gestores de Contenedores
Acá una gráfica de ellos más conocido sin embargo hay otros propietarios por ejemplo los de nube publica adicional a los mencionados cada nube tiene su sabor de contenedores.
Casos de usos o cuando usar Contenedores
El rehospedaje de las aplicaciones existentes en arquitecturas de nube modernas
Algunas organizaciones utilizan contenedores para migrar las aplicaciones existentes a entornos más modernos. Aunque esta práctica ofrece algunos de los beneficios básicos de la virtualización de sistemas operativos, no ofrece todas las ventajas de una arquitectura de aplicaciones modular basada en contenedores.
Refactorización de las aplicaciones existentes para contenedores
Aunque la refactorización requiere mucho más que la migración del rehospedaje, ofrece todos los beneficios de un entorno de contenedores.
Desarrollo de nuevas aplicaciones nativas del contenedor
Al igual que la refactorización, este método permite disfrutar de todos los beneficios de los contenedores.
Más compatibilidad con las arquitecturas de microservicios
Las aplicaciones distribuidas y los microservicios se pueden aislar, poner en marcha y escalar más fácilmente utilizando elementos básicos de contenedores individuales.
Soporte de DevOps para la integración y la puesta en marcha continuas (CI/CD)
La tecnología de contenedores permite la creación, la prueba y la puesta en marcha optimizadas a partir de las mismas imágenes de contenedores.
Una puesta en marcha más sencilla de tareas y trabajos repetitivos
Los contenedores se ponen en marcha para dar soporte a uno o varios procesos parecidos que, a menudo, se ejecutan en segundo plano, como las funciones ETL o los lotes de tareas
VMs vs Contenedores
En ocasiones, las personas confunden la tecnología de contenedores con máquinas virtuales (VM) o con la tecnología de virtualización de servidores. Aunque existen algunas similitudes básicas, los contenedores son muy diferentes de las máquinas VM.
Las VM se ejecutan en un entorno de hipervisor en el que cada máquina virtual debe incluir su propio sistema operativo invitado dentro del mismo, junto con sus archivos binarios, bibliotecas y archivos de aplicaciones correspondientes. Esto consume una gran cantidad de recursos y genera mucha sobrecarga, especialmente cuando se ejecutan varias VM en el mismo servidor físico, cada una con su propio sistema operativo invitado.
Por el contrario, cada contenedor comparte el mismo sistema operativo host o kernel del sistema y tiene un tamaño mucho menor, a menudo de solo unos megabytes. Esto suele implicar que un contenedor puede tardar unos segundos en iniciarse (en comparación con los gigabytes y los minutos necesarios que requiere una VM típica).
Otros enlaces para contenedores
https://azure.microsoft.com/es-es/resources/cloud-computing-dictionary/what-is-a-container/
https://cloud.google.com/learn/what-are-containers?hl=es
https://www.vmware.com/cl/solutions/container-networking.html
https://www.vmware.com/latam/topics/glossary/content/kubernetes.html