Docker4DataEngineers
| Contenedores | M谩quinas Virtuales |
|---|---|
![]() | ![]() |
| Los contenedores son una abstracci贸n en la capa de la aplicaci贸n que agrupa el c贸digo y las dependencias. Se pueden ejecutar varios contenedores en la misma m谩quina de tal forma que el n煤cleo del sistema operativo es compartido con otros contenedores, cada uno de los cuales se ejecuta como un proceso aislado en el espacio de usuario. Como resultado, demandan menos recursos que las m谩quinas virtuales | Las m谩quinas virtuales (VM) son una abstracci贸n del hardware f铆sico que convierte un servidor en muchos servidores. El hipervisor permite que varias m谩quinas virtuales se ejecuten en una sola m谩quina. Cada m谩quina virtual incluye una copia completa del sistema operativo, la aplicaci贸n, los binarios y las bibliotecas necesarios, lo que ocupa decenas de GB. Las m谩quinas virtuales tambi茅n pueden resultar excesivamente lentas al arrancar |
Como ingenieros de datos, gestionar entornos complejos puede ser un verdadero reto. A menudo se utilizan los entornos virtuales Python para aislar las dependencias pero esta soluci贸n dista mucho de ser completa. Las herramientas de virtualizaci贸n como los contenedores ligeros no solo aportan comodidad, sino que son fundamentales para gestionar la creciente complejidad de los flujos de trabajo de datos modernos
Identificaci贸n de los retos¶
- Configuraci贸n del entorno local: La configuraci贸n de entornos locales de desarrollo a menudo es una pesadilla. Problemas con las versiones de librer铆as, diferencias entre sistemas operativos (Mac, Linux, Windows), etc. Pero lo peor es que son siempre los mismos problemas, una y otra vez 馃く馃く馃く
- Incompatibilidad entre sistemas operativos: Habitualmente, los equipos de trabajo se localizan en diferentes ubicaciones, cada uno con su propia tecnolog铆a. Mantener entornos coherentes en estos diferentes sistemas utilizando m茅todos tradicionales resulta enormemente complicado
- Pruebas lentas e ineficaces: Las pruebas en m谩quinas locales a menudo no representan los entornos de producci贸n. Ello provoca que los errores se detecten demasiado tarde en el ciclo de desarrollo. Incluso, al final se necesita enviar el c贸digo o subsistema al entorno de producci贸n solo para probarlo 馃く馃く馃く
Contribuci贸n de Docker al flujo de trabajo¶
A medida que los flujos de datos se vuelven cada vez m谩s complejos, la contenerizaci贸n y la orquestaci贸n agilizan el proceso, minimizan los errores y aumentan la productividad. Por ejemplo, los orquestadores como Airflow pueden escalar din谩micamente los recursos para manejar cargas de trabajo fluctuantes, lo que supone un cambio revolucionario para los equipos que gestionan proyectos de datos a gran escala. Tanto si se trata de sistemas distribuidos, aplicaciones nativas de la nube o ETLs estas herramientas pueden mejorar dr谩sticamente la eficiencia y sus perspectivas profesionales de los ingenieros de datos
Cuando se manejan grandes cantidades de datos y flujos de trabajo complejos, la coherencia es fundamental. Imaginemos, por ejemplo, el desarrollo de un proceso altamente eficiente que funciona a la perfecci贸n en la m谩quina local, pero que explota en el momento en que se despliega en producci贸n: esa es una pesadilla que todo ingeniero de datos teme. Docker act煤a como un 芦buque portacontenedores禄 virtual para sus aplicaciones y dependencias, garantizando que se muevan sin problemas entre entornos
Tutoriales para principiantes¶
- Docker for Data Engineers: Guide for Beginners and Data Engineers
- Impagable Docker TutorialsPoint
- Guru99 Tutorial
- Docker Tutorial Labs
MariaDB/MySQL con Docker¶
- Creaci贸n de un contenedor Docker con MySQL Server
- Docker && MariaDB
- Laboratorio Docker LAMP

