← Le parcours IaGenify

Production

04 · 4–6 semaines

Travaillez sur des expériences prêtes pour la production et de vraies intégrations métier.

Postuler↗
Google AnalyticsStripeDockerCloudflareVercel

Production, appliqué à un travail réel.

Travaillez sur des expériences prêtes pour la production et de vraies intégrations métier.

Réunissez décisions produit, intégrations et exploitation dans une même livraison.

L’étape Production aborde les enjeux d’une application réelle : analytics, API d’IA, Stripe et notions de VPS derrière un service en ligne.

Partir des utilisateurs et des signaux produit

Une fonctionnalité de production répond à un besoin et doit permettre de comprendre si elle est utile. Les analytics apportent cette couche de mesure : repérer les activités pertinentes et s’en servir pour éclairer les décisions produit, plutôt que de collecter des chiffres pour eux-mêmes.

Intégrer des services dans une expérience cohérente

Les API d’IA et Stripe apportent des capacités externes différentes : l’une peut fournir un comportement fondé sur un modèle, l’autre intervient dans les paiements. Dans les deux cas, l’intégration doit avoir une place claire dans le produit, un comportement prévisible et une configuration traitée avec soin.

Comprendre ce qui fait fonctionner l’application

Une fonctionnalité ne s’arrête pas lorsqu’elle fonctionne sur l’ordinateur d’un développeur. Les notions de VPS présentent l’environnement serveur qui peut héberger une application en ligne et son contexte d’exploitation. Cette étape relie l’intention produit, les services tiers et la réflexion sur le déploiement.

Du concept au code qui fonctionne

Ces extraits montrent comment les notions de chaque niveau prennent forme dans un projet. Ils servent de points de départ à lire, questionner, adapter et tester — pas de code à copier sans le comprendre.

Garder les identifiants du service côté serveur

La route vérifie la requête avant d’appeler le service d’IA. La clé vient d’une variable d’environnement serveur, les erreurs externes sont converties en réponse maîtrisée et le secret ne part jamais dans le navigateur.

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());
}

Rendre l’exécution reproductible

Le Dockerfile installe les dépendances verrouillées, construit dans une étape séparée et exécute en mode production avec un utilisateur non privilégié. En production, ajoutez une vérification de santé, figez l’image de base et injectez les secrets par la configuration du déploiement.

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"]
Lisez, puis adaptez

Modifiez une exigence, prévoyez le résultat, puis exécutez le code pour vérifier. En revue, expliquez le compromis choisi et une amélioration que vous apporteriez ensuite.

TECHNOLOGIES CLÉS
  • Analytics
  • API IA
  • Stripe
  • Notions de VPS