-
Conoce la contenedorización
Conoce la contenedorización, un proyecto de código abierto de Swift para usar contenedores de Linux en la Mac. Descubre cómo la contenedorización aborda los contenedores de Linux con seguridad. Descubre cómo la herramienta Container CLI de código abierto usa el paquete Containerization para ofrecer una funcionalidad para crear, ejecutar e implementar contenedores de Linux en Mac.
Capítulos
- 0:00 - Introducción
- 0:48 - ¿Qué es un contenedor?
- 3:50 - Análisis de la contenedorización: Administración de imágenes
- 5:53 - Análisis de la contenedorización: Virtualización
- 6:53 - Análisis de la contenedorización: Entorno de contenedores
- 9:19 - Herramientas de línea de comandos
- 11:45 - Conclusión
Recursos
-
Buscar este video…
-
-
9:58 - Container Image Pull
container image pull alpine:latest -
10:43 - Container Run
container run -t -i alpine:latest sh
-
-
- 0:00 - Introducción
La nueva estructura Swift de código abierto llamada Containerization permite crear apps Linux en contenedores que son seguras, privadas y de alto rendimiento, con una experiencia nativa. La estructura incluye API y una herramienta de línea de comandos para la creación, administración y ejecución de contenedores.
- 0:48 - ¿Qué es un contenedor?
Los contenedores de Linux revolucionan la implementación de apps del lado del servidor al aislar cargas de trabajo y dependencias, permitiendo a los desarrolladores empaquetar apps con sus requisitos. Este paquete permite entornos consistentes en configuraciones locales y de producción, agilizando el desarrollo y las pruebas. Los contenedores brindan aislamiento en tiempo de ejecución y, para ejecutar contenedores de Linux en macOS, se necesita virtualización. El objetivo de Containerization es lograr un aislamiento de seguridad, reducir la sobrecarga de las máquinas virtuales, mejorar la privacidad con control de acceso por directorio y ofrecer un rendimiento eficiente que respete los recursos de los usuarios.
- 3:50 - Análisis de la contenedorización: Administración de imágenes
Containerization ofrece API para la administración de imágenes, la ejecución de contenedores y un potente sistema de inicialización creado en Swift. Containerization funciona obteniendo imágenes de un registro. La imagen sirve como plantilla y tiene el contenido del sistema de archivos y la configuración predeterminada para un nuevo contenedor. La configuración de la imagen puede especificar el proceso predeterminado a ejecutar, el directorio de trabajo y la identidad de usuario. Containerization expone el sistema de archivos de la imagen como un dispositivo de bloques para un acceso eficiente, formateándolo con EXT4, un sistema de archivos de Linux muy usado.
- 5:53 - Análisis de la contenedorización: Virtualización
Para poblar directamente un sistema de archivos EXT4 desde Swift, el sistema inicia una VM con Linux para ejecutar un contenedor que, a través de Containerization, ofrece un aislamiento liviano a nivel de VM, tiempos de inicio inferiores a un segundo, direcciones IP dedicadas para cada contenedor y un intercambio seguro de archivos y directorios.
- 6:53 - Análisis de la contenedorización: Entorno de contenedores
Containerization usa una VM donde recursos como CPU y memoria se asignan dinámicamente cuando los contenedores están en ejecución. En esta VM, un sistema de archivos mínimo contiene el binario “vminitd”, un sistema de inicialización creado en Swift. “vminitd” se ejecuta como el primer proceso, administrando interfaces de red, montando sistemas de archivos y lanzando y supervisando los siguientes procesos. Para mejorar la seguridad, el sistema de archivos se despoja de utilidades centrales, bibliotecas dinámicas y de “libc.” Para eso, “vminitd” se compila como un ejecutable estático usando el SDK estático de Linux de Swift.
- 9:19 - Herramientas de línea de comandos
Containerization brinda una API potente para crear soluciones en torno a contenedores Linux. Una herramienta de línea de comandos, “container”, usa estas API para administrar el almacenamiento, las imágenes, las redes y ejecutar contenedores. Los usuarios pueden extraer imágenes localmente con “container image pull” y ejecutar contenedores de forma interactiva con “container run -t -i
.” Este enfoque crea una VM liviana que brinda aislamiento, como se ve al usar “ps aux” que solo muestra procesos de contenedor. La herramienta está disponible en GitHub. - 11:45 - Conclusión
macOS ahora admite API de Containerization que permiten contenedores Linux seguros, privados y de alto rendimiento. Accede a la estructura Containerization en GitHub, explora el código fuente y consulta proyectos de ejemplo. La herramienta “container” está disponible para su uso inmediato y se invita a la comunidad a compartir comentarios a través de GitHub.