12-Factor App

DevOps 🟡 Mid

Définition

Méthodologie en 12 principes pour construire des applications cloud-native. Inclut config via env vars, stateless processes, port binding, logs as streams.

Analogie

Les 12 commandements du développeur cloud : suis-les et ton app tournera partout sans problème.

Exemple de code

// Factor 3 : Config via env vars
const dbUrl = process.env.DATABASE_URL;
// Factor 6 : Stateless processes
// Pas de state en mémoire locale
// Factor 11 : Logs as event streams
process.stdout.write(JSON.stringify(logEvent));

Cas d'usage

Concevoir des applications facilement déployables sur n'importe quel cloud ou PaaS.

Anti-pattern

Config hardcodée, sessions en mémoire, fichiers locaux : impossible à scaler.

Termes liés

#devops#cloud#interview

En entretien

  1. Explique-moi ce que sont les 12-factor apps et pourquoi on s'en sert.

    C'est une méthodologie en 12 principes pour construire des applications cloud-native, avec par exemple la config via variables d'environnement et des processus stateless. Ça sert à concevoir des apps facilement déployables sur n'importe quel cloud ou PaaS.

  2. Quel est le problème si on code la configuration en dur dans l'application ?

    C'est l'anti-pattern classique : config hardcodée, sessions en mémoire ou fichiers locaux rendent l'app impossible à scaler. Le principe 12-factor impose au contraire la config via env vars et des processus stateless.

  3. Comment tu gères les logs dans une app 12-factor ?

    On les traite comme des flux d'événements (logs as streams), typiquement écrits sur stdout en JSON plutôt que dans des fichiers locaux. Le code fourni illustre ça avec process.stdout.write(JSON.stringify(logEvent)).

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre