comment déployer une architecture microservices node.js sur kubernetes eks pour votre SaaS
18/03/2026
Introduction
Passer d’une application monolithe à une architecture microservices sur Kubernetes peut sembler complexe, mais c’est un atout majeur pour la scalabilité et la résilience de votre SaaS. Dans ce tutoriel, vous verrez comment :
- préparer votre cluster EKS (Amazon Elastic Kubernetes Service),
- containeriser vos services Node.js,
- déployer et gérer la stack avec
kubectletHelm.
À la fin, votre SaaS pourra monter en charge automatiquement et vous maîtriserez les bonnes pratiques pour la production.
Prérequis
- Compte AWS avec droits EKS et IAM configurés.
- eksctl, AWS CLI et kubectl installés.
- Applications Node.js packagées en images Docker (Node.js, Docker).
- Helm pour la gestion des chartes.
Étape 1 : créer et configurer votre cluster EKS
# Installation d'eksctl (selon la doc officielle)
curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" \
| tar xz -C /usr/local/bin
# Création d'un cluster minimal
eksctl create cluster \
--name saas-micro \
--region eu-west-1 \
--nodes 3 \
--node-type t3.medium
Cette commande déploie un cluster de 3 nœuds. Vous pouvez ajuster le type d’instances selon votre charge.
Étape 2 : containeriser vos microservices Node.js
- Dans chaque projet, ajoutez un
Dockerfile:
FROM node:18-alpine
WORKDIR /app
COPY package.json ./
RUN npm install --production
COPY . .
CMD ["node", "server.js"]
Construisez et poussez vos images :
docker build -t 123456789012.dkr.ecr.eu-west-1.amazonaws.com/service-a:latest .
aws ecr get-login-password --region eu-west-1 \
| docker login --username AWS --password-stdin 123456789012.dkr.ecr.eu-west-1.amazonaws.com
docker push 123456789012.dkr.ecr.eu-west-1.amazonaws.com/service-a:latest
Étape 3 : déployer avec Helm
Créer un chart minimal (helm create service-a) puis modifiez values.yaml :
image:
repository: 123456789012.dkr.ecr.eu-west-1.amazonaws.com/service-a
tag: latest
service:
type: ClusterIP
port: 3000
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 250m
memory: 256Mi
Puis :
helm install service-a ./service-a \
--namespace production \
--create-namespace
Vérifiez le déploiement :
kubectl get pods -n production
kubectl get svc -n production
Bonnes pratiques pour la production
- Configurer un Horizontal Pod Autoscaler selon l’usage CPU/mémoire.
- Activer les probes (
livenessProbe&readinessProbe) pour la fiabilité. - Mettre en place une solution de monitoring (Prometheus, Grafana).
- Veiller à la sécurité des secrets via AWS Secrets Manager ou
sealed-secrets. - Automatiser les mises à jour avec des pipelines GitOps (ArgoCD, Flux).
Conclusion
Vous disposez maintenant d’un cluster EKS prêt à recevoir vos microservices Node.js et d’un déploiement piloté par Helm. Cette approche améliore la résilience, la scalabilité et facilite la maintenance de votre SaaS. Pour aller plus loin, vous pouvez intégrer un maillage réseau (service mesh) ou une CI/CD avancée.
Vous visez un projet similaire ou besoin d’un audit de votre architecture ? Contactez nos experts.

