CI/CD per progetti basati su stack MEAN con AWS e GitHub Actions - SHELLONBACK

  • Home
  • -
  • CI/CD per progetti basati su stack MEAN con AWS e GitHub Actions

CI/CD per progetti basati su stack MEAN con AWS e GitHub Actions

Automatizzare il deploy è oggi una necessità per ogni team di sviluppo che vuole essere rapido, sicuro e professionale. In questo articolo descriviamo una pipeline CI/CD completa per progetti con frontend Angular e backend Node.js, integrata su AWS tramite GitHub Actions, con ambienti separati per staging e produzione.


Stack utilizzato

La struttura è tipica di molte applicazioni moderne:

  • Frontend Angular: single page application
  • Backend Node.js: API REST, deployato su EC2 con PM2
  • Database MongoDB Atlas: gestito, scalabile, sicuro

L’obiettivo è creare un flusso GitHub Actions che consenta di:

  • Rilasciare automaticamente in staging su ogni push nel branch dedicato
  • Rilasciare in produzione su push nel branch principale

Ogni ambiente è definito all’interno di GitHub come environment (staging e production), con i rispettivi secret configurati in modo separato e sicuro (access key, ID distribuzione CloudFront, chiavi SSH, ecc.).


Architettura CI/CD e flusso di deploy

Frontend

  • Build Angular (npm run build) tramite GitHub Actions
  • Upload automatico su Amazon S3
  • Cache invalidata su Amazon CloudFront
  • Accessibile via HTTPS grazie a Let’s Encrypt + Certbot
  • DNS gestito da Amazon Route 53 con sottodomini tipo staging.dominio.com

Backend

  • Deploy su EC2 tramite SSH + rsync
  • Installazione e build (npm install && npm run build)
  • Avvio tramite PM2 con configurazione cluster
  • Separazione tra ambienti staging e produzione

CI/CD con GitHub Actions

  • Pipeline definita in .github/workflows/deploy.yml
  • Secrets separati per ciascun environment (staging, production)
  • Deploy totalmente automatizzato a ogni push

Componenti tecnologiche coinvolte

  • GitHub Actions: orchestrazione CI/CD
  • Angular: frontend SPA con output statico
  • Node.js: backend API modulari
  • PM2: process manager in cluster mode
  • Amazon EC2: hosting backend per ogni ambiente
  • Amazon S3: hosting statico frontend
  • Amazon CloudFront: CDN globale con invalidazione automatica
  • Amazon Route 53: gestione DNS e sottodomini
  • Let’s Encrypt / Certbot: HTTPS gratuito
  • MongoDB Atlas: database documentale managed

È importante notare che l’intero stack è perfettamente scalabile in ambienti serverless o containerizzati come AWS Lambda o AWS ECS con Fargate. Tuttavia, su richiesta esplicita del cliente, si è scelto di mantenere la gestione tramite istanze EC2 per garantire maggiore controllo sull’ambiente di runtime e facilitare eventuali personalizzazioni specifiche.


Vantaggi

  • Deploy sicuro e tracciabile per ogni ambiente
  • Nessuna operazione manuale da eseguire sul server
  • Riduzione drastica dei tempi di rilascio
  • Separazione chiara tra ambienti
  • Architettura flessibile e scalabile su AWS

Affidati a Shellonback per implementarlo

Se stai lavorando con Angular, Node.js e AWS e vuoi strutturare un flusso CI/CD professionale e automatico, possiamo aiutarti a configurarlo, personalizzarlo e metterlo in produzione senza rallentare il tuo team.

Contattaci. Ti aiutiamo a portare il tuo deploy al livello successivo.

Tags:

Share: