Mémo d'investissement · Infrastructure · Confidentiel

Trois positions,
une variante.
Zéro facture folle.

Un système qui guette les alertes météo hyperlocales et compose le kit qui va avec — grêle, canicule, verglas, première neige. Dès qu'une zone bascule : fiche produit, visuels, campagne géociblée sur le rayon touché, pendant que l'épisode dure encore. Personne ne clique pour déclencher : c'est le ciel qui déclenche. On te présente trois façons de le bâtir dans le budget, chacune avec le même garde-fou non négociable : le morceau cher est prépayé, donc le pire scénario plafonne au solde du mois, jamais à l'infini.

500 $ capital d'amorçage
250 $/mois plafond opérationnel
Veille 24/7 rafales géociblées
Claude Code déploie · le webchat conçoit
01

La thèse partagée

Avant de choisir une position, voici pourquoi les trois sont sécuritaires. Ce ne sont pas des options « au feeling » — elles reposent sur les mêmes quatre invariants. C'est ça qui transforme un pari en investissement borné. Le quatrième est propre à ce produit : il est le seul qui puisse vraiment te ruiner.

Invariant 01

Le prépayé, c'est le plancher dur

La génération (image / LLM) passe par des crédits prépayés — Replicate, fal.ai, Modal. Latence nulle, non destructif : tu ne peux pas dépenser un solde que tu n'as pas. Meilleur que n'importe quel « budget » cloud, qui n'est qu'une alerte à retardement.

Invariant 02

Le compute always-on est borné

La veille tourne jour et nuit, donc elle est à coût plat par construction. Le pic ne se paie jamais en compute qui s'emballe : il frappe une limite de concurrence, ou il est refusé à l'entrée.

Invariant 03

Le webchat conçoit, Claude Code déploie

Aucun déploiement depuis le chat. Claude Code (desktop / CLI) pousse le code sur la cible serverless en une commande. Un VPS n'entre en jeu qu'ultérieurement, dans la phase de stabilisation.

Invariant 04 · le troisième robinet

Le budget pub est plafonné au compte

Le vrai danger n'est pas l'API de génération, c'est la publicité achetée : les régies facturent à la consommation, en post-payé, avec des budgets quotidiens qui se réarment chaque matin. Quatre cents campagnes à 20 $/jour font 8 000 $/jour, et ça continue tant que personne ne regarde. Donc : comptes prépayés, plafond de compte et non de campagne, et un nombre maximum de campagnes actives. Côté kits, rien qui coûte avant la vente — fabrication à la demande, jamais d'inventaire.

02

Les positions

Trois architectures valables dans la contrainte. Même thèse, trois profils de risque et de contrôle. Choisis selon ce que tu veux tenir : le contrôle, la simplicité, ou le managé riche.

Position AAutonomie · anti-lock-in

VPS scalable

Contrôle total, coût 100 % prévisible. Sous charge, ça ralentit — ça n'explose jamais.

Bulletins Veilleur File à péremption Workers bornés API prépayée Kit + campagne

La pile

  • Hôte1 VPS fixe (Hetzner CX22/32 ~5-11 €/mois, ou Linode)
  • VeilleBoucle continue sur les flux d'alertes, scoring bon marché
  • FileRedis + BullMQ, avec TTL — découple alerte → kits
  • WorkersPool à concurrence bornée (3-5) = le cap compute
  • GénérationAPI prépayées, hors du VPS
  • MédiasCloudflare R2, egress gratuit
  • RuntimeDocker Compose, tout reproductible

Plafond de coût / mois

0 $250 $

Mécanisme : VPS plat (~10 €) + solde prépayé. Une tempête qui touche 40 municipalités remplit la file — les zones sont traitées par ordre de valeur, et ce qui déborde la fenêtre est abandonné plutôt que rattrapé. La facture ne bouge pas.

# laptop → VPS
git push && docker compose up -d
Choisir si

Le contrôle et la compréhension de chaque couche priment, portabilité importante, à l'aise avec Docker/Linux. Seul à héberger nativement l'opérateur persistant de phase 2.

Variance coût : nulleOps : élevéLock-in : aucun
Position B★ Notre position

Cloudflare edge

Le meilleur rapport risque / simplicité / coût. Scale-to-zero, egress gratuit, zéro serveur à sécuriser.

Cron de veille Worker Queue bornée API prépayée Kit + campagne

La pile

  • Orchestr.Cloudflare Workers — cron de veille + webhooks des services d'alerte
  • DécouplageQueues, retries bornés (borne le fan-out)
  • ÉtatDurable Objects — dédup, compteurs
  • MédiasR2 — egress gratuit, décisif en média-lourd
  • MétaD1 (SQLite) ou KV
  • GénérationAPI prépayées

Plafond de coût / mois

0 $250 $

Mécanisme : Workers ~5 $/mois + prépayé. Le fan-out est borné par la concurrence de la Queue et max_retries — sinon une boucle de retries multiplie les appels.

# une commande, c'est tout
wrangler deploy
Choisir si

Déploiement le plus simple, coût prévisible sans gérer d'OS, egress gratuit. Défaut recommandé — et c'est celui qui tue le syndrome de l'imposteur : rien à « déployer » à la main.

Variance coût : faibleOps : minimalLock-in : modéré
Position CManagé riche · valeur CV

GCP managé

L'infra d'événements managée la plus riche, plus un vrai pattern de kill-switch. Contrepartie : des footguns.

Alerte météo Eventarc Pub/Sub Cloud Run · max-inst API prépayée

La pile

  • RoutageEventarc — déclencheurs multi-sources (bulletins, webhooks, cron)
  • MessagingPub/Sub — fan-out découplé, une zone par message
  • ComputeCloud Run scale-to-zero · max-instances = cap dur
  • Orchestr.Workflows — pipelines déclaratifs
  • MédiasR2 ou GCS
  • GénérationAPI prépayées

Plafond de coût / mois (empilé)

0 $250 $

Empilé : prépayé → max-instances (borne le compute sans latence) → quotas d'API → disable-billing en dernier recours. ⚠️ Ce dernier est destructif et laggé : un extincteur, pas un thermostat.

gcloud run deploy service-orchestrateur \
  --source . --max-instances=3
Choisir si

Tu veux de l'event-natif managé riche et/ou la valeur CV « stack entreprise », en acceptant la complexité (IAM, service accounts). Sinon, B fait ~pareil en plus simple.

Variance coût : laggéeOps : moyen+Lock-in : fort
03

La matrice de décision

Les mêmes axes, côte à côte. Ici le facteur qui départage A et B n'est plus ouvert : la veille doit tourner sans lui dès le jour 1, sinon il n'y a pas de produit. Ce que la matrice montre alors, c'est qu'aucune des trois positions ne fait bien les deux moitiés du travail — voir la Variante E plus bas.

A · VPS scalable B · Cloudflare ★ C · GCP managé
Déploiementgit push → docker composewrangler deploygcloud run deploy
Cap de coût réelCoût plat + solde prépayéPrépayé + Queue bornéePrépayé + max-instances (+ backstop destructif)
Failure mode sous picÇa ralentit (file)Ça ralentit (concurrence)Concurrence bornée, sinon disable-billing
Rafale d'alertes
40 zones en une heure
Le pool sature, il faut trier à l'entréeAbsorbe la rafale nativementAbsorbe, si max-instances est bien posé
Veille continue
le cœur du produit
Native (le processus vit)Par cron, granularité minutePar cron / Eventarc
Fardeau opsÉlevé (OS à gérer)Minimal (aucun OS)Moyen+ (IAM, comptes)
Egress médiasGratuit via R2Gratuit via R2Gratuit si R2, sinon payant
Lock-inAucunModéréFort
Opérateur phase 2Natif (le VPS est là)Ajouter un petit VPS dédiéAjouter un petit VPS dédié
04

Notre position

Recommandé

On backe la Position B.

Pour son profil — jamais déployé, en mode directeur de produit — Cloudflare gagne : un wrangler deploy et c'est en ligne, egress gratuit pour du média-lourd, aucun OS à sécuriser. La mécanique du déploiement est portée par l'agent, pas par lui. C'est le chemin le plus court entre « idée » et « ça tourne », sans jamais exposer un compte qui peut se vider tout seul.

Reste que B seul veille par cron, à la minute. Si la veille doit être le cœur du produit, lire la Variante E avant de trancher.

Position A · le repli d'autonomie

Si le contrôle total, la portabilité et l'anti-lock-in pèsent plus lourd — et le seul qui héberge nativement l'opérateur persistant de phase 2. Le plus aligné avec une philosophie d'autonomie.

Position C · seulement si…

Managé event-natif riche ou valeur CV, et tu acceptes les footguns. Sinon B fait la même job en plus simple et plus sûr.

Variante D

DigitalOcean (Functions + App Platform) — un hybride de A et B avec un atout unique : un cap mensuel natif avec auto-suspend, le seul gros fournisseur avec un vrai plafond intégré. Si « ça se coupe tout seul à 250 $ sans rien câbler » pèse lourd dans la balance, ça mérite son propre mémo. Dis-le et je le monte.

Variante E★ Pour ce produit-ci

Tête froide, mains rapides

Le veilleur ne s'arrête jamais et ne coûte rien. Les fabricants apparaissent par dizaines et meurent aussitôt.

Bulletins Veilleur (VPS plat) Arbitrage Workers en rafale API prépayée Kit + campagne
La tête · position A

Un petit VPS à coût plat qui roame les bulletins sans jamais dormir, score ce qu'il voit avec un modèle bon marché, et jette tout ce qui ne mérite pas d'exister. Il n'appelle jamais rien de cher de sa propre initiative. C'est lui qui tient le budget d'alertes par heure.

Les bras · position B

Quarante municipalités d'un coup, ça ne se traite pas à trois workers. Les Workers apparaissent en parallèle, fabriquent fiche, visuels et campagne, écrivent dans R2, puis disparaissent. Ils ne décident rien : ils exécutent ce que la tête a déjà validé.

Pourquoi les trois positions ne suffisent pas

Les positions A, B et C tiennent toutes la facture par le même geste : sous pic, ça ralentit. La file absorbe, les jobs attendent, la facture ne bouge pas. C'est excellent quand un usager patiente devant son écran.

Ici, personne ne patiente. Une alerte verglas traitée trois heures trop tard, c'est du budget dépensé en veille, en scoring et en détection pour livrer une campagne que l'épisode a déjà rendue inutile. La file protège la facture et détruit le produit.

Donc le mécanisme de survie change de nature : au lieu de faire attendre, on arbitre à l'entrée. Budget d'alertes par heure plutôt que budget de compute. File à péremption : ce qui n'est pas parti dans la fenêtre est abandonné, jamais rattrapé. Et quand ça chauffe, on dégrade la qualité — moins de variantes, modèle moins cher, un seul format — plutôt que le délai. Sous pic, ce système ne devient pas lent : il devient sélectif.

Plafond de coût / mois

0 $250 $

Mécanisme : VPS plat (~10 €) + Workers (~5 $) + solde prépayé + plafond de compte publicitaire. Les quatre invariants tiennent ensemble, y compris le troisième robinet.

# la tête
git push && docker compose up -d
# les bras
wrangler deploy
Choisir si

Le produit doit guetter en continu et encaisser des rafales géociblées dans une fenêtre courte — c'est-à-dire : dès le jour 1, pour ce produit-ci. Le prix à payer est un deuxième geste de déploiement.

Variance coût : faibleOps : moyenLock-in : faible