Módulo 1: Cloud Platforms y Environment Setup
Comparativa: Render vs Railway vs Fly.io
Tres plataformas PaaS (Platform-as-a-Service) que abstraen la complejidad de deployment. Las tres son apropiadas para FastAPI. La elección depende de trade-offs concretos: precio, DX, features, free tier, region availability.
Esta cápsula te da la decision matrix con criterios reales para elegir conscientemente.
Las 3 plataformas
Render
Tagline: "Build and run all your apps and websites with free TLS, global CDN, private networks and auto deploys from Git."
Pros:
- DX excelente — deploy via GitHub push.
- Free tier funcional (con sleep tras 15min inactividad).
- Managed PostgreSQL incluido.
- Logs y monitoring built-in.
- Sin tarjeta de crédito para free tier inicial.
Cons:
- Free tier sleeps tras 15min — cold starts (~30 segundos).
- Pricing puede subir rápido para apps con tráfico real.
- Limitaciones de regions (US, EU, Asia).
Free tier (2026):
- 750 horas de instance time/mes (1 instance, ~24/7).
- 100GB bandwidth/mes.
- PostgreSQL: 1GB storage, expira tras 90 días.
Railway
Tagline: "Bring your code, we'll do the rest."
Pros:
- DX increíblemente smooth — UI hermosa, intuitiva.
- Sin cold starts (no sleep en free tier inicial).
- Servicios complementarios (PostgreSQL, Redis) one-click.
- Templates listos.
Cons:
- Free tier limitado a $5 USD de crédito/mes (~500 horas pequeñas).
- Después: pay-as-you-go ($5 mínimo/mes).
- Logs retention corto en free tier.
- Sin static deploys.
Free tier:
- $5 crédito/mes.
- Después de eso, pay-as-you-go.
Fly.io
Tagline: "Run your full-stack apps (and databases!) all over the world. No ops required."
Pros:
- Multi-region deployment fácil.
- Performance excelente — Firecracker microVMs.
- Pricing transparente.
- CLI poderoso (
flyctl). - LiteFS para SQLite distribuido.
Cons:
- DX más técnica — CLI-first, menos UI hand-holding.
- Curva de aprendizaje más empinada.
- Free tier más restrictivo recientemente.
Free tier (2026):
- 3 shared-cpu-1x VMs con 256MB RAM cada una.
- 3GB persistent storage.
- 160GB bandwidth/mes.
Decision matrix
| Criterio | Render | Railway | Fly.io |
|---|---|---|---|
| DX (UI/UX) | 🟢 Excelente | 🟢 Excelente | 🟡 Técnica |
| DX (CLI) | 🟡 Básico | 🟡 Básico | 🟢 Poderoso |
| Setup time (primer deploy) | 10-15min | 5-10min | 15-25min |
| Free tier viable para hobby | ✅ Con sleep | ⚠️ $5 crédito | ✅ Limitado |
| Cold starts | ⚠️ Sí (free) | ✅ No | ✅ No |
| Multi-region | ⚠️ Solo paid | ⚠️ Solo paid | 🟢 Nativo |
| Managed PostgreSQL | 🟢 Incluido | 🟢 One-click | 🟢 Disponible |
| Managed Redis | ✅ | 🟢 One-click | ✅ |
| Pricing predictable | 🟢 Plans claros | 🟡 Pay-as-you-go | 🟢 Por uso |
| Best for | Apps simples, hobby | Startups MVP | Multi-region, edge |
Cuándo cada uno gana
Render gana cuando
- Es tu primer deploy. UI guía paso a paso. Errores claros. Free tier sin tarjeta.
- App con tráfico moderado ($7/mes plan starter es razonable).
- No necesitas multi-region (US/EU/Asia generalmente alcanza).
- Quieres Postgres incluido sin setup adicional.
Ejemplo perfecto: API de tasks personal, blog, tools internas.
Railway gana cuando
- Quieres UI premium y configuración intuitiva.
- Estás dispuesto a pagar después de free tier.
- Necesitas services complementarios (Postgres, Redis, MongoDB) one-click.
- App con tráfico moderado y quieres escalar manageado.
Ejemplo perfecto: SaaS startup MVP, side project con potential growth.
Fly.io gana cuando
- Necesitas multi-region (latencia matters globally).
- Sos cómodo con CLI y quieres control granular.
- Quieres performance (Firecracker VMs son rápidas).
- App tiene componentes WebSocket o long-lived connections.
- Quieres deploy edge.
Ejemplo perfecto: API global, real-time apps, multi-region SaaS.
Stack común con cada plataforma
Render
GitHub repo (source)
↓ git push
Render builds (auto-detect Dockerfile o Python)
↓
Render runs (instance)
↓
Connected: Render PostgreSQL + Render Redis (separate services)
Railway
GitHub repo (source)
↓ git push
Railway builds (Nixpacks o Dockerfile)
↓
Railway runs (instance)
↓
Connected: Railway Postgres + Railway Redis (managed)
Fly.io
Local code
↓ flyctl deploy
Fly.io builds (Docker o builder remoto)
↓
Fly Machines (Firecracker VMs en N regions)
↓
Connected: Fly Postgres (managed) + Upstash Redis (external)
Pricing real (Mayo 2026)
Render
- Free: 750 hrs/mes, sleep tras 15min, 1 instance.
- Starter: $7/mes — sin sleep, 0.5 CPU, 512MB RAM.
- Standard: $25/mes — 1 CPU, 2GB RAM.
- Pro: $85/mes — 2 CPU, 4GB RAM.
Railway
- Hobby: $5 crédito/mes (free tier).
- Pro: $20/mes mínimo + uso.
- Recursos: pay per CPU-second + RAM-second + bandwidth.
Fly.io
- Free: 3 shared-cpu-1x con 256MB RAM cada una.
- Per uso:
- shared-cpu-1x: $1.94/mes (256MB RAM).
- performance-1x: $19.50/mes (1 CPU, 2GB RAM).
- Storage: $0.15/GB/mes.
- Bandwidth: $0.02/GB outbound.
Diferencia clave: Render es flat plans, Fly.io es pay per resource, Railway es mixto.
Recomendación según tu situación
Estudiante / hobby (este path)
Render. Free tier funcional, UI guía, sin tarjeta para empezar. Si la app duerme tras 15min, no es problema para portfolio.
Junior dev con primer SaaS
Railway ($5-20/mes). DX excelente, scaling manejable, services one-click.
Senior dev con app multi-region
Fly.io. Performance, multi-region, control granular.
Migración desde Heroku
Render o Railway. UX similar a Heroku original. Migración straightforward.
Para esta guía: usaremos Render
Decisión pedagógica: las cápsulas siguientes muestran ejemplos en Render. Razones:
- Free tier funcional sin tarjeta de crédito.
- UI guía claramente (mejor para primera vez).
- Conceptos transfieren a otras plataformas.
Si prefieres Railway o Fly.io: las instrucciones de la cápsula son adaptables. Donde decimos "Render", traducí a tu plataforma. Los conceptos (environments, config files, health checks, secrets) son universales.
Otras plataformas que existen (mención breve)
Heroku
El original PaaS. Inventó el concepto. Aún funciona, pero:
- Free tier eliminado (2022).
- Pricing aumentó.
- Render/Railway son alternativas modernas más económicas.
Si tu equipo ya usa Heroku por legacy, está bien. Para projects nuevos, otras opciones.
Vercel / Netlify
Frontend-first. Excelentes para Next.js, React static sites. Soportan API routes y serverless functions, pero NO ideales para FastAPI tradicional. Para frontend separado del backend, usar Vercel/Netlify para frontend + Render/Railway/Fly para API.
DigitalOcean App Platform
Similar a Render. Buena alternativa, pricing competitive. Menos popular en ecosistema Python.
AWS/GCP/Azure
IaaS enterprise. Cubierto en módulo 5 (System Design) brevemente, pero no scope principal.
Self-hosted (DIY)
VPS de DigitalOcean / Linode / Hetzner + Docker + manual config. Más barato pero requiere DevOps work. Para proyectos donde control granular justifica complexity.
Trampas y errores comunes
1. "Esta es la plataforma que recomendaste, voy con esa."
Cada plataforma tiene sus pros/cons. Recomendación general no aplica a todos los casos. Evaluá tu contexto.
2. "Free tier es suficiente para producción real."
Free tiers tienen limitations explícitas (sleep, RAM, bandwidth, SLA). Para users reales, plan pago.
3. "Voy a usar la plataforma más nueva/trendy."
Cambiar plataforma es work. Mejor elegir una madura con community y soporte. Render, Railway, Fly.io son sólidas en 2026.
4. "Pricing parece barato, voy a usar muchos recursos."
Pay-as-you-go puede sumar rápido. Configurar límites/alerts. Especialmente en Fly.io con autoscaling.
5. "Voy directo a AWS porque eventualmente lo voy a necesitar."
Eventualmente sí puedes. Hoy no lo necesitas. Aprender PaaS primero acelera el aprendizaje futuro de IaaS.
6. "Multi-region desde el día 1."
Multi-region agrega complejidad significativa: data replication, latency entre regions, deployment coordination. Single-region hasta que tengas necesidad real.
Ejercicio: elegir tu plataforma
Paso 1: abrir las 3 webs.
Paso 2: evaluar tu caso.
Preguntas:
- ¿Es tu primer deploy? → Render.
- ¿Quieres UX premium? → Railway.
- ¿Necesitas multi-region o usas CLI mucho? → Fly.io.
- ¿Tienes tarjeta para verificación? → Cualquiera.
- ¿No tienes tarjeta? → Render o Railway free tier.
Paso 3: crear cuenta en la elegida.
Sign up con tu cuenta de GitHub (recomendado — facilita deploys).
Paso 4: explorar la dashboard.
5-10 minutos navegando. Acostumbrarte a la UI antes del deploy real.
Paso 5: documentar tu decisión.
En tu repo, agregar DEPLOYMENT.md:
# Deployment
This API is deployed on **Render** (chosen for: simple free tier, no credit card,
good UX for first deploys).
## URL
https://my-api.onrender.com
## Setup
1. Sign up at render.com
2. Connect this GitHub repo
3. Render auto-detects Python, builds and deploys
4. Set environment variables (see `.env.example`)
## Other platforms
If migrating to Railway or Fly.io, see migration guides:
- Railway: ...
- Fly.io: ...
Resumen y siguiente paso
Lo que aprendiste:
- 3 plataformas PaaS modernas: Render, Railway, Fly.io.
- Decision matrix: DX, pricing, free tier, multi-region, services managed.
- Render gana para primer deploy/hobby.
- Railway gana para SaaS startup.
- Fly.io gana para multi-region/edge.
- Heroku está disponible pero free tier eliminado.
- AWS/GCP son más complejos — fuera de scope para este módulo.
Antes de avanzar, deberías:
- Tener cuenta en plataforma elegida (recomendamos Render).
- Conectar tu cuenta de GitHub.
- Explorar la dashboard.
En la siguiente cápsula vamos a environments: production, staging, development. Disciplina profesional para gestión de variables y secrets. Es la base ANTES del deploy.
Recursos
- Render Pricing — referencia oficial.
- Railway Pricing — referencia.
- Fly.io Pricing — referencia.
- Heroku alternatives 2024+ — análisis comparativos.
- 12-Factor App: Backing Services — principio universal.
Cápsula 02 de 08 — Módulo 1 — Deployment & System Design Guide