Carrito de compras

Docker

10 jun. Contenedores

Docker es una plataforma para correr aplicaciones en unidades livianas y modulares llamadas contenedores. Con Docker es posible obtener flexibilidad; puede crear, implementar, copiar y mover contenedores de un entorno a otro, lo cual le permite optimizar sus aplicaciones para la nube.

Los contenedores han tomado un lugar muy importante en el mundo del desarrollo hoy día, desde funciones serverless en la nube hasta para planeación de estrategia empresarial.

Docker se está convirtiendo en un núcleo de competencia para operadores y desarrolladores a lo largo de la industria. Según StackOverFlow, en el 2019 Docker fue seleccionada por la comunidad como una de las tecnologías más queridas.

Ventajas de los contenedores Docker

Modularidad: El enfoque principal de esta tecnología es la creación de contenedores centrados en la capacidad de tomar una parte de la aplicación para actualizarla o repararla, sin necesidad de manipular la aplicación completamente. Además de este enfoque basado en microservicios, puede compartir procesos entre múltiples aplicaciones de igual forma a como lo hace la arquitectura orientada al servicio.

Control de versiones de imágenes y capas: Cada archivo de imagen de Docker se compone de una serie de capas, estas se combinan en una sola imagen y cada capa se crea cuando la imagen cambia. Cada vez que un usuario especifica un comando, como ejecutar o copiar, se crea una nueva capa.

Docker reutiliza estas capas para construir nuevos contenedores, lo cual hace mucho más rápido el proceso de construcción. Los cambios intermedios se comparten entre imágenes, mejorando aún más la velocidad, el tamaño y la eficiencia. El control de versiones es inherente a la creación de capas, cada vez que se produce un cambio nuevo, básicamente, usted tiene un registro de cambios incorporado: control completo de sus imágenes de contenedor.

Restauración: Permite volver a un estado de la aplicación anterior, ya que almacena todas las imágenes por versión. Fácilmente puede moverse de producción a QA en diferentes etapas del proyecto.

Implementación rápida: Se puede fácilmente desacoplar una aplicación monolítica en un conjunto de servicios, los cuales pueden fácilmente ayudar al desarrollo y depuración de la misma. Además de esto, ayuda a la reutilización de capas de la aplicación, también optimiza los tiempos de carga y contracción de la app, ya que utiliza una cache para almacenar todos los cambios en las imágenes.

Ahora si nos preguntamos sobre las limitaciones de Docker, es cierto que tiene un nivel de limitación como la generación o acumulación de cientos de contenedores.

Muchos estamos acostumbrados a trabajar sobre aplicaciones u arquitecturas monolíticas, pero cuando iniciamos en el mundo de Docker esto se puede tornar muy difícil por la gestión y la organización que estas puedan tomar. Para sobre pasar esto se debe de agrupar y ordenar los contenedores de cierta forma para ofrecer un mejor servicio y control de recursos.

Todo desarrollador debería tener conocimientos básicos en Docker, ya que se está estableciendo como una tecnología que forma parte del día a día en todos los procesos de desarrollo y DevOps. Además, facilita el desarrollo e implementación de nuestros desarrollos en la nube o cualquier otra plataforma.

Esta tecnología ayuda a nuevos integrantes a familiarizarse con el entorno de desarrollo de una manera mas fácil que la tradicional, permitiendo configurar su entorno en pocos pasos y probar el ambiente con pocos comandos.

Roberto Jarquín Mena | I+D Engineer Consultant | Ingeniero en Sistemas

¿Te gustó? Entonces comparte la publicación: