Resumen
En este episodio (E77) se explica cómo crear un ambiente de desarrollo analítico propio en la nube, usando un servidor Linux (Ubuntu) en AWS en lugar de depender de servicios pagados como SageMaker o Databricks. Se comparan las arquitecturas posibles: local (Windows, WSL, Linux, Mac), servicios gratuitos como Google Colab, servicios pagados y una nube propia configurada a mano. Se detallan los componentes de un servidor (red, hardware, software), la diferencia entre distribuciones fixed release y rolling release, y el versionado de herramientas. Luego se hace una demo en AWS: crear una instancia EC2, conectarse por SSH e instalar R. Se muestra también un pipeline de scripts para automatizar la configuración de un laboratorio analítico compartido. La conclusión principal es que saber configurar Linux y servidores ayuda a entender cómo funciona el código, a evaluar costos y a tomar mejores decisiones técnicas, evitando el vendor lock-in. Replicar una imagen o script base permite que todo el equipo trabaje con las mismas herramientas.
Capítulos
- 00:00IntroPresentación del episodio 77: cómo crear un ambiente de desarrollo analítico desde cero sobre una distribución de Linux como Ubuntu, repasando el proceso y sus partes.
- 00:23Qué es un ambiente de desarrolloSe define como un entorno donde se puede escribir código con herramientas que facilitan tareas, ya sea en el computador propio, un servidor o un celular. Para datos incluye la infraestructura y herramientas que permiten al Data Scientist trabajar eficaz y eficientemente. Se anticipa la estructura de la charla en cuatro secciones.
- 03:10Tipos de arquitecturaSe comparan opciones locales (Windows, WSL, Linux, Mac; anaconda para principiantes), servicios gratuitos como Google Colab, servicios pagados (Databricks, Snowflake, SageMaker) y nube propia. Se discuten las ventajas del cómputo elástico, el trabajo colaborativo, el riesgo de vendor lock-in y que la elección depende del contexto (startup con capital vs. empresa tradicional con personal técnico).
- 22:12Comparación entre precio y qué tanto hay que configurarSe aclara que el caso del episodio busca un ambiente colaborativo y de bajo precio en una nube propia. Se recomienda aprender a instalar y configurar Linux además de usar Colab o anaconda.
- 23:24Componentes de la arquitecturaUna arquitectura en la nube necesita servidor (cómputo), storage de objetos y base de datos; hoy se trata solo el servidor. Se elige AWS por cobrar por hora solo cuando el servidor está prendido y por permitir cambiar a una instancia más potente (se menciona DigitalOcean como alternativa que cobra esté o no prendido). Se explican file system vs. object storage y ejemplos de bases de datos (BigQuery, Redshift, Athena, MySQL). Se comenta que un Data Scientist debería conocer subredes, VPC/VPN y roles.
- 29:11Network, software y hardwareSe explica la IP pública (estática vs. dinámica), las diferencias entre un servidor y un PC local, y la importancia de CPU, GPU y RAM; la falta de RAM es la causa más común de caídas. En software se separa la configuración del servidor del ambiente del proyecto, recomendando aislar este último (por ejemplo con Docker) para que sea autocontenido y portable.
- 36:40Pasos de la configuración: Seleccionar cloud, seleccionar OS, terminal, estructura, config inicialSe compara AWS con DigitalOcean en interfaz, costos y documentación. Se explica fixed release (Ubuntu) vs. rolling release (Arch), el versionado de tres números (mayor, medio, parche) con ejemplos de Airflow y Godot, y que Ubuntu deriva de Debian. Luego se presentan la terminal, la estructura de un comando, el usuario, los permisos y sudo.
- 46:18Pasos de la configuración: Ambiente de Python/R, VSCode, herramientas básicas, herramientas avanzadas, otrosTras actualizar el sistema e instalar herramientas como htop y wget, se instala Python (el de Ubuntu es fácil, la última versión es más demorosa) y se conecta VSCode al servidor. Se mencionan git, nano, vim y herramientas avanzadas como Docker, Airflow y Snakemake, y se recomienda usar git.
- 47:38MemesSección de memes y conversación: Sora de OpenAI y los posts de LinkedIn sobre temas de moda, anécdotas sobre romper la configuración de un servidor, si aún existe el rol de minero de datos, la importancia de avisar los cambios de configuración y el uso de Terraform para disponibilizar máquinas de desarrollo.
- 58:53Demo en AWSSe muestra la consola de EC2: creación de una instancia con tag, elección de Ubuntu (20.04 por ser la más clásica), tipos de instancia y precios (familia r optimizada para RAM, instancias de hasta ~14 USD/hora, t2.micro de capa gratuita), llave .pem, grupo de seguridad con SSH, VPC/subred, volumen y el campo de datos de usuario (cloud-init).
- 01:09:24Conexión a una instanciaSe accede por `ssh -i llave.pem ubuntu@IP` usando la IP pública. Se ejecuta `sudo apt update` y `sudo apt install r-base`, se explica la estructura del comando apt, se usa `which python` y la variable PATH para entender dónde se ubican los programas, y se concluye que conocer cómo funciona Linux permite evaluar costos, evitar vendor lock-in y opinar en decisiones técnicas.
- 01:19:20Ejemplo de código para setear un laboratorio analítico desde 0Se muestra un repositorio con un pipeline de scripts bash: actualizar repositorios, crear usuarios, instalar R, RStudio, Julia, Python, AWS CLI, Docker y Docker Compose, además de un gitignore global, configuraciones de Nano, liquid prompt, fzf, zoxide, la tipografía Cascadia Code y preferencias de RStudio.
- 01:25:17CierreSe recuerdan el canal de YouTube y el Discord, el episodio 31 sobre distribuciones de Linux y que replicar una imagen base permite que el equipo trabaje con las mismas herramientas y traspase proyectos con facilidad.