← El camino IaGenify

Producción

04 · 4–6 semanas

Trabaja en experiencias listas para producción donde el producto se une a integraciones reales.

Aplicar↗
Google AnalyticsStripeDockerCloudflareVercel

Producción, aplicado mediante trabajo real.

Trabaja en experiencias listas para producción donde el producto se une a integraciones reales.

Une decisiones de producto, integraciones y operación en una entrega.

La etapa Producción explora los retos de una aplicación real: analítica, API de IA, Stripe y los conceptos de VPS que hay detrás de un servicio activo.

Partir de las personas y de la señal del producto

Una funcionalidad de producción responde a un motivo y necesita una forma de saber si resulta útil. La analítica introduce esa capa de medición: identificar actividad significativa y utilizarla para orientar decisiones de producto, en vez de tratar los números recopilados como un fin.

Integrar servicios en una experiencia coherente

Las API de IA y Stripe aportan capacidades externas distintas: una puede ofrecer comportamiento basado en modelos y la otra participa en flujos de pago. En ambos casos, la integración necesita un lugar claro en el producto, un comportamiento predecible y una configuración gestionada con cuidado.

Entender qué mantiene la aplicación en marcha

Una funcionalidad no termina cuando funciona en el ordenador de quien la desarrolla. Los conceptos de VPS presentan el entorno de servidor que puede alojar una aplicación activa y el contexto operativo que la rodea. Esta etapa conecta la intención del producto, los servicios externos y el pensamiento de despliegue.

Del concepto al código funcional

Estos fragmentos muestran cómo aparecen en proyectos reales los conceptos de cada nivel. Son puntos de partida para leer, cuestionar, adaptar y probar; no código para copiar sin entenderlo.

Mantener las credenciales en el servidor

La ruta valida la solicitud antes de llamar al servicio de IA. La clave procede de una variable de entorno del servidor y los errores externos se convierten en respuestas controladas; el secreto nunca llega al navegador.

export async function POST(request) {
  const { prompt } = await request.json();
  if (typeof prompt !== "string" || !prompt.trim()) {
    return Response.json({ error: "Prompt is required." }, { status: 400 });
  }

  const upstream = await fetch(process.env.AI_API_URL, {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.AI_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ prompt: prompt.trim() }),
  });

  if (!upstream.ok) {
    return Response.json({ error: "The service is unavailable." }, { status: 502 });
  }

  return Response.json(await upstream.json());
}

Hacer reproducible la ejecución

El Dockerfile instala dependencias bloqueadas, compila en una etapa separada y ejecuta en modo producción con un usuario sin privilegios. Para publicar, añade una comprobación de salud, fija la imagen base e inyecta secretos desde la configuración.

FROM node:22-alpine AS build
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM node:22-alpine AS runtime
ENV NODE_ENV=production
WORKDIR /app
COPY --from=build /app .
EXPOSE 3000
USER node
CMD ["npm", "start"]
Léelo y después adáptalo

Cambia un requisito, predice el resultado y ejecuta el código para comprobarlo. En la revisión, explica la decisión tomada y una mejora que harías después.

TECNOLOGÍAS CLAVE
  • Analítica
  • API de IA
  • Stripe
  • Conceptos de VPS