• 1. pipeline ci/cd pour saas node.js avec github actions et aws ecs

  • 2. prérequis

  • 3. créer un Dockerfile optimisé

  • 4. définir le workflow GitHub Actions

  • 5. déployer sur AWS ECS

  • 5.1. 1 créer le cluster et le repository ECR

  • 5.2. 2 rédiger la task definition

  • 6. bonnes pratiques CI/CD

  • 7. conclusion

pipeline ci/cd pour saas node.js avec github actions et aws ecs

Image de pipeline ci/cd pour saas node.js avec github actions et aws ecs

pipeline ci/cd pour saas node.js avec github actions et aws ecs

Mettre en place un pipeline CI/CD robuste permet d’accélérer vos livraisons, d’améliorer la qualité de votre code et de réduire les risques liés aux déploiements. Dans ce tutoriel, vous découvrirez comment automatiser le build, les tests et le déploiement d’une application Node.js conteneurisée avec Docker, GitHub Actions et AWS ECS.

1. prérequis

  • Compte AWS avec IAM user et permissions ECS/ECR
  • CLI AWS configurée (aws configure)
  • Repository GitHub avec code Node.js
  • Docker Desktop ou moteur Docker sur votre poste

2. créer un Dockerfile optimisé

# Dockerfile
FROM node:18-alpine AS build
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]

– on utilise l’image node:18-alpine pour un conteneur léger. – séparer build et runtime réduit la taille finale.

3. définir le workflow GitHub Actions

Dans .github/workflows/ci-cd.yml :

name: CI CD Pipeline

on:
  push:
    branches: [ main ]

jobs:
  build-and-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Setup Node.js
        uses: actions/setup-node@v3
        with: node-version: '18'
      - run: npm ci
      - run: npm test

  build-and-push:
    needs: build-and-test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Login to ECR
        run: |
          aws ecr get-login-password --region ${{ secrets.AWS_REGION }} \
          | docker login --username AWS --password-stdin ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.${{ secrets.AWS_REGION }}.amazonaws.com
      - name: Build & Push Docker Image
        run: |
          docker build -t my-saas-app:${{ github.sha }} .
          docker tag my-saas-app:${{ github.sha }} ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.${{ secrets.AWS_REGION }}.amazonaws.com/my-saas-app:${{ github.sha }}
          docker push ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.${{ secrets.AWS_REGION }}.amazonaws.com/my-saas-app:${{ github.sha }}
      - name: Deploy to ECS
        uses: aws-actions/amazon-ecs-deploy-task-definition@v1
        with:
          aws-region: ${{ secrets.AWS_REGION }}
          service: my-saas-service
          cluster: my-saas-cluster
          task-definition: my-task-def.json

4. déployer sur AWS ECS

4.1 créer le cluster et le repository ECR

# créer un repository ECR
aws ecr create-repository \
  --repository-name my-saas-app \
  --region eu-west-1

# créer un cluster ECS
aws ecs create-cluster \
  --cluster-name my-saas-cluster

4.2 rédiger la task definition

{
  "family": "my-saas-task",
  "networkMode": "awsvpc",
  "containerDefinitions": [{
    "name": "api",
    "image": ".dkr.ecr.eu-west-1.amazonaws.com/my-saas-app:latest",
    "cpu": 256,
    "memory": 512,
    "portMappings": [{ "containerPort": 3000 }]
  }]
}

5. bonnes pratiques CI/CD

  • Stocker les secrets GitHub dans GitHub Secrets (AWS keys, region, account)
  • Scanner les vulnérabilités : npm audit ou SonarQube
  • Mettre en place le rollback en cas d’échec de health-check
  • Versionner vos images avec des tags sémantiques (semver)
  • Surveiller les métriques ECS et CloudWatch pour anticiper la charge

6. conclusion

En quelques étapes, vous avez automatisé le build, les tests et le déploiement de votre SaaS Node.js sur AWS ECS grâce à GitHub Actions. Cette organisation réduit les erreurs humaines, accélère les itérations et renforce la fiabilité de vos livraisons. Prêt à sophistiquer votre pipeline CI/CD ou à intégrer des tests de sécurité avancés ? Contactez-nous pour une séance de consulting offerte.

Image de Top 10 des extensions Chrome gratuites pour booster votre productivité en 2025

Top 10 des extensions Chrome gratuites pour booster votre productivité en 2025

Boostez votre productivité en 2025 avec 10 extensions Chrome gratuites pour optimiser la gestion d’onglets, le temps, l’écriture et la concentration.
Image de oracle netsuite intègre des microservices de gen ai pour l’erp et crm

oracle netsuite intègre des microservices de gen ai pour l’erp et crm

Découvrez comment Oracle NetSuite intègre des microservices Gen AI pour automatiser prévisions, gestion des stocks, rapports financiers et relances clients
Image de implémenter un cache distribué Redis dans votre SaaS Node.js pour booster les performances

implémenter un cache distribué Redis dans votre SaaS Node.js pour booster les performances

Apprenez à intégrer un cache Redis distribué dans votre SaaS Node.js pour réduire la latence, soulager votre base de données et améliorer la scalabilité.
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