Pas de verrouillage fournisseur dans NuxSaaS
Introduction
NuxSaaS est conçu avec une forte volonté d’éviter le verrouillage fournisseur. Cela signifie que vous pouvez déployer, migrer et exploiter votre application SaaS sur différents fournisseurs cloud et environnements sans être lié aux services ou API propriétaires d’un seul fournisseur. Ce document explique comment NuxSaaS y parvient, et pourquoi cela compte pour la flexibilité et la pérennité de votre projet.
Comment NuxSaaS évite le verrouillage fournisseur
1. Configuration pilotée par l’environnement
- Tous les points de terminaison critiques des services (base de données, cache, email, etc.) sont configurés via des variables d’environnement, et non des valeurs codées en dur.
- Voir
.env.example
pour la liste complète des variables configurables :NUXT_NITRO_PRESET
pour basculer entre serveur Node.js et Cloudflare WorkersNUXT_CF_HYPERDRIVE_ID
pour la chaîne de connexion à la base de données, requise lors de l’utilisation de Cloudflare WorkersNUXT_DATABASE_URL
pour la chaîne de connexion à la base de données, requise lors de l’utilisation du serveur Node.jsNUXT_REDIS_URL
pour le backend de cache, requis lors de l’utilisation du serveur Node.js
Cette approche vous permet de remplacer des composants d’infrastructure (par exemple, passer de Postgres local à Postgres serverless, ou de Redis à un autre cache) simplement en modifiant les variables d’environnement, sans aucun changement de code.
2. Pilotes de base de données et de cache modulaires
- Le fichier
server/utils/drivers.ts
abstrait l’accès à la base de données et au cache. - Pour la base de données, il utilise un pilote PostgreSQL standard (
pg
), et la chaîne de connexion est sélectionnée dynamiquement selon l’environnement d’exécution (serveur Node.js ou Cloudflare Hyperdrive). - Pour le cache, il utilise soit Redis (via
ioredis
), soit une abstraction de stockage clé-valeur (hubKV
) selon le preset de déploiement.
Extrait de code clé :
const getDatabaseUrl = () => {
if (runtimeConfig.preset == 'node-server') {
return runtimeConfig.databaseUrl
} else {
return hyperdrive?.connectionString || runtimeConfig.databaseUrl
}
}
Cela signifie que vous pouvez exécuter NuxSaaS sur votre propre serveur ou sur Cloudflare Worker, sans réécrire votre logique d’accès aux données.
Pourquoi l’absence de verrouillage fournisseur est importante
- Portabilité : Vous pouvez déployer NuxSaaS sur n’importe quel fournisseur cloud, sur site, ou même localement pour le développement et les tests.
- Contrôle des coûts : Migrez facilement vers un autre fournisseur si les tarifs ou la qualité de service changent.
- Pérennité : Évitez d’avoir à réécrire une grande partie de votre code si un fournisseur arrête un service ou modifie son API.
- Conformité : Respectez les exigences de résidence des données ou de réglementation en choisissant où et comment vos données sont stockées et traitées.
- Communauté et écosystème : En s’appuyant sur des standards ouverts et des bibliothèques populaires, vous bénéficiez du support de la communauté et évitez de dépendre de la feuille de route d’un seul fournisseur.