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

CriterioRenderRailwayFly.io
DX (UI/UX)🟢 Excelente🟢 Excelente🟡 Técnica
DX (CLI)🟡 Básico🟡 Básico🟢 Poderoso
Setup time (primer deploy)10-15min5-10min15-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 forApps simples, hobbyStartups MVPMulti-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:

  1. Free tier funcional sin tarjeta de crédito.
  2. UI guía claramente (mejor para primera vez).
  3. 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

  1. Render Pricing — referencia oficial.
  2. Railway Pricing — referencia.
  3. Fly.io Pricing — referencia.
  4. Heroku alternatives 2024+ — análisis comparativos.
  5. 12-Factor App: Backing Services — principio universal.

Cápsula 02 de 08 — Módulo 1 — Deployment & System Design Guide