• 1. prérequis et architecture cible

  • 2. étape 1 : définir l’infrastructure Kubernetes avec Terraform

  • 3. étape 2 : packager l’application en chart Helm

  • 4. étape 3 : déployer la release avec Helm

  • 4.1. configurer l’autoscaling (HPA)

  • 5. bonnes pratiques et sécurité

  • 6. conclusion

déployer un SaaS Node.js sur Kubernetes avec Terraform et Helm : guide pas à pas

Image de déployer un SaaS Node.js sur Kubernetes avec Terraform et Helm : guide pas à pas

Dans ce tutoriel, vous apprendrez à automatiser le déploiement de votre application SaaS Node.js sur un cluster Kubernetes en utilisant Terraform pour l’infrastructure et Helm pour la gestion des releases. Résultat : un workflow reproductible, évolutif et versionné, idéal pour les startups et PME tech en quête de robustesse.

prérequis et architecture cible

  • Kubernetes v1.26+ (hébergé ou on-premise)
  • Terraform v1.7+ avec provider kube
  • Helm v3+
  • Une application Node.js packagée en image Docker (Docker, Node.js)
  • Cluster RKE2 / GKE / EKS / AKS compatible

étape 1 : définir l’infrastructure Kubernetes avec Terraform

Dans main.tf, on crée le namespace, puis un rôle de service account pour Helm :

// main.tf
terraform {
  required_providers {
    kubernetes = { source = "hashicorp/kubernetes", version = ">= 2.15.0" }
  }
}

provider "kubernetes" {
  config_path = "~/.kube/config"
}

resource "kubernetes_namespace" "saas_app" {
  metadata { name = "saas-app" }
}

resource "kubernetes_service_account" "helm" {
  metadata {
    name      = "tiller"
    namespace = kubernetes_namespace.saas_app.metadata[0].name
  }
}

Commandes :

terraform init      # initialise le backend
terraform plan      # vérifie la planification
terraform apply     # crée les ressources Kubernetes

Erreur fréquente : Error: Cannot create namespace → vérifiez la version du provider et vos droits RBAC sur le cluster.

étape 2 : packager l’application en chart Helm

Générez la structure de chart :

helm create saas-nodejs

Personnalisez values.yaml :

replicaCount: 2

image:
  repository: yourrepo/saas-nodejs
  tag: v1.2.0
  pullPolicy: IfNotPresent

service:
  type: ClusterIP
  port: 3000

resources:
  limits:
    cpu: 200m
    memory: 256Mi
  requests:
    cpu: 100m
    memory: 128Mi

étape 3 : déployer la release avec Helm

  1. Ajouter un repo (exemple Bitnami) :
    helm repo add bitnami https://charts.bitnami.com/bitnami
    helm repo update
  2. Installer votre chart :
    helm install saas-nodejs ./saas-nodejs \
      --namespace saas-app \
      --create-namespace
  3. Vérifier le déploiement :
    kubectl -n saas-app get all

Tip perf : activez l’HorizontalPodAutoscaler (Kubernetes v1.23+) pour adapter dynamiquement le nombre de pods selon la charge.

configurer l’autoscaling (HPA)

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: saas-nodejs-hpa
  namespace: saas-app
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: saas-nodejs
  minReplicas: 2
  maxReplicas: 5
  metrics:
    - type: Resource
      resource:
        name: cpu
        target:
          type: Utilization
          averageUtilization: 60

bonnes pratiques et sécurité

  • Versionnez vos chart et modules Terraform dans Git (git tag + CI/CD).
  • Stockez l’état Terraform dans un backend distant (S3 + DynamoDB ou Terraform Cloud).
  • Scan de sécurité : intégrez kubectl-trivy ou snyk pour vos images Docker.
  • RBAC : limitez les permissions des ServiceAccounts pour éviter la montée en privilèges.

conclusion

En combinant Terraform et Helm, vous obtenez un processus de déploiement automatisé, reproductible et sécurisé pour votre SaaS Node.js sur Kubernetes. Vous gagnez en agilité et en fiabilité tout en maîtrisant vos mises à jour et vos rollbacks.

Envie d’aller plus loin dans l’industrialisation de votre infrastructure ? Contactez nos experts DevOps pour un accompagnement sur mesure.

Image de 5 lieux tech à Toulouse pour coder, networker et booster vos projets

5 lieux tech à Toulouse pour coder, networker et booster vos projets

Découvrez 5 lieux incontournables à Toulouse pour coder efficacement, échanger avec la communauté tech et donner un coup d'accélérateur à vos projets.
Image de erpnext 14 : plongée technique dans le nouvel open-source erp-crm

erpnext 14 : plongée technique dans le nouvel open-source erp-crm

Découvrez les nouveautés d’ERPNext 14 : frontend Vue 3/Vite, API REST optimisée, moteur Python 3.11, index SQL et guide de migration technique.
Image de mettre en place une architecture multi-tenant pour votre saas node.js avec postgresql

mettre en place une architecture multi-tenant pour votre saas node.js avec postgresql

Apprenez à mettre en place une architecture multi-tenant sécurisée et évolutive pour votre SaaS Node.js avec PostgreSQL grâce à RLS et TypeORM.
DEVIS GRATUIT

Un projet en tête ? Vous avez des questions ?

Contactez nous pour recevoir un devis gratuitement, des réponses à vos questions ou une séance de consulting offerte avec l'un de nos experts :

Femme en chemise jaune