Salta el contingut

Temari N8N - Unitat 1

Introducció a N8N


Unitat 1: Introducció a N8N

1.1. Què és N8N?

Concepte d'automatització de workflows

L'automatització de workflows (fluxos de treball) és el procés de dissenyar i executar seqüències d'accions predefinides que es realitzen automàticament sense intervenció humana. En l'àmbit de Big Data, això és especialment rellevant perquè permet:

  • Reduir errors humans: Les tasques repetitives són propenses a errors quan es fan manualment
  • Augmentar l'eficiència: Processos que trigaven hores es poden completar en minuts
  • Escalabilitat: Un workflow ben dissenyat pot processar 10 registres o 10 milions amb la mateixa facilitat
  • Consistència: Les mateixes regles s'apliquen sempre de la mateixa manera
  • Alliberament de recursos: Els professionals poden dedicar-se a tasques de més valor

Exemples pràctics d'automatització: - Extreure dades d'una API cada hora i desar-les a una base de dades - Processar fitxers CSV rebuts per email i generar informes - Sincronitzar dades entre diferents sistemes (CRM, ERP, eines d'analítica) - Enviar alertes quan es detecten anomalies en dades en temps real

N8N com a plataforma d'automatització visual

N8N (pronunciat "n-eight-n", provinent de "nodemation" = node + automation) és una plataforma d'automatització de workflows que combina:

1. Editor visual (No-code/Low-code) - Interfície de drag-and-drop on arrossegues i connectes "nodes" - Cada node representa una acció o una integració amb un servei - Les connexions entre nodes defineixen el flux de dades - Pots veure els resultats de cada pas en temps real

2. Flexibilitat amb codi (Code) - Permet injectar codi JavaScript o Python quan la configuració visual no és suficient - Ideal per a transformacions complexes de dades - Accés complet a llibreries npm i Python - Combina el millor dels dos mons: rapidesa visual + potència del codi

3. Orientació a desenvolupadors i data engineers - Dissenyat pensant en professionals tècnics - Suport per a Git, CI/CD, ambients separats - API REST completa per a gestió programàtica - Capacitat de self-hosting amb control total

Arquitectura bàsica:

[Trigger] → [Action 1] → [Transform] → [Action 2] → [Output]

Per exemple, un pipeline simple seria:

[Schedule: cada hora] → [HTTP Request: API] → [Function: processar JSON] → [PostgreSQL: INSERT] → [Slack: notificar]

Diferències entre N8N i altres eines

N8N vs Zapier:

Aspecte N8N Zapier
Model Fair-code, self-hosted SaaS tancat
Preu Gratuït (self-hosted), Cloud amb preu/execució Per "Zaps" i execucions
Control Total sobre infraestructura i dades Dades al núvol de Zapier
Codi personalitzat JavaScript i Python natives Limitat
Complexitat Workflows molt complexos amb branching Millor per a automatitzacions simples
Corba d'aprenentatge Mitjana-alta Baixa

N8N vs Make (Integromat):

Aspecte N8N Make
Editor visual Node-based Visual però diferent paradigma
Hosting Self-hosted o cloud Només cloud
Integracions +400, més HTTP Request genèric +1500 apps
Codi personalitzat Molt integrat Més limitat
Preu Més econòmic en self-hosted Per operacions

N8N vs Apache Airflow:

Aspecte N8N Airflow
Enfocament General purpose automation Orquestració de data pipelines
Configuració Visual + codi Només codi (Python DAGs)
Facilitat d'ús Més accessible Requereix coneixements avançats
Integració IA Nativa i fàcil Requereix desenvolupament
Escalabilitat Bona (fins a 220 exec/seg) Excel·lent per a big data massiu
Best for SMB a enterprise, prototipatge ràpid Enterprise, data engineering complex

Quan utilitzar N8N: - Necessites automatitzar processos entre múltiples aplicacions - Vols control sobre la infraestructura (compliance, GDPR) - El teu equip té coneixements tècnics però vol rapidesa - Necessites integrar IA en els teus workflows - Vols prototipatge ràpid de pipelines de dades

Quan NO utilitzar N8N: - Processament de petabytes de dades (millor Spark, Airflow) - Streaming de dades massiu en temps real (millor Kafka, Flink) - Només necessites automatitzacions molt simples (millor Zapier)

Fair-code license: avantatges del codi obert

N8N utilitza una llicència "fair-code" (Apache 2.0 amb Commons Clause), que és un híbrid entre open-source i propietari:

Què pots fer: - ✅ Veure tot el codi font a GitHub - ✅ Self-hostejar gratuïtament sense límits - ✅ Modificar el codi per a ús intern - ✅ Contribuir amb millores a la comunitat - ✅ Usar comercialment dins la teva organització

Què NO pots fer: - ❌ Vendre N8N com a servei (crear un competidor de N8N Cloud) - ❌ Crear un producte comercial basat en N8N

Avantatges per a usuaris:

  1. Transparència: Pots auditar el codi per seguretat
  2. No vendor lock-in: Sempre pots migrar les teves dades
  3. Comunitat activa: +200.000 usuaris contribuint
  4. Evolució ràpida: Updates constants amb noves funcionalitats
  5. Confiança: No desapareixerà si l'empresa té problemes
  6. Customització: Pots crear els teus propis nodes

Comparativa de models:

Tancat (Zapier) ───────────── Fair-code (N8N) ───────────── Open-source pur (Apache)
       │                              │                                │
   No pots veure codi          Pots veure i modificar           Tot és lliure
   Depens del vendor           Certa autonomia                 Autonomia total
   Menys control               Control mitjà-alt              Control absolut

Casos d'ús en el context de Big Data

1. Pipelines ETL/ELT

N8N excel·leix en la creació de pipelines Extract-Transform-Load:

Exemple 1: Agregació de dades de múltiples APIs

[Schedule: diari 2AM]
[HTTP: API Vendes] ──┐
[HTTP: API Inventari] ┼→ [Function: merge i clean] → [PostgreSQL: staging] → [DBT: transformacions] → [BigQuery: DWH]
[HTTP: API Clients] ──┘

Exemple 2: Streaming de dades IoT

[Webhook: sensors] → [Validate] → [IF: anomalia?] ──Yes→ [Slack: alerta]
                                        No
                                  [TimescaleDB: insert] → [Aggregate cada 5min] → [Grafana API]

2. Data Quality i Monitoring

Exemple: Sistema de qualitat de dades

[Schedule: cada hora]
[PostgreSQL: count nulls] ──┐
[PostgreSQL: check dupes] ──┼→ [Function: data quality score] → [IF: score < 90%] → [PagerDuty: incident]
[PostgreSQL: check ranges] ─┘                                           ↓
                                                                    [Log a DB]

3. Machine Learning Operations (MLOps)

Exemple: Pipeline de reentrenament de model

[Schedule: setmanal]
[S3: fetch new data] → [Python: preprocess] → [SageMaker: train] → [IF: accuracy > threshold]
                                                                         Deploy
                                                            [Update model registry] → [Slack: notify team]

4. Real-time Analytics

Exemple: Dashboard en temps real de vendes

[Webhook: nova venda]
[Enrich amb dades client] → [PostgreSQL: insert] → [Redis: update cache] → [Pusher: notify dashboard]
[Check: venda gran?] → [Slack: notificar equip comercial]

5. Data Integration i Sincronització

Exemple: Sincronitzar CRM amb Data Warehouse

[Schedule: cada 15 min]
[Salesforce: get modified records] → [Transform: map fields] → [Snowflake: MERGE] → [dbt Cloud: trigger refresh]

6. Automatització de Reports

Exemple: Report diari de mètriques

[Schedule: diari 8AM]
[BigQuery: query KPIs] → [Function: format data] → [Google Sheets: update] → [SendGrid: email to stakeholders]
                                                                            [Slack: post to #metrics]

Avantatges específics per a Big Data:

  1. Prototipatge ràpid: Pots provar idees de pipelines en minuts
  2. Cost-efectiu: Self-hosting gratuït vs eines empresarials cares
  3. Flexibilitat: Des de MB fins a GB de dades (amb optimitzacions)
  4. Integració fàcil: +400 connectors predefinits
  5. Debugging visual: Veus exactament què passa a cada pas
  6. Orquestració simple: No necessites Airflow per a molts casos

Limitacions a considerar:

  1. No és per a streaming massiu: Millor Kafka/Flink per a milions d'events/seg
  2. Transformacions in-memory: Dades molt grans (>1GB) poden tenir problemes
  3. No substitueix un data warehouse: És per a orquestració, no emmagatzematge
  4. Escalabilitat té límits: OK per a SMB/mid-market, enterprise massiu pot necessitar altres eines

1.2. Arquitectura de N8N

Components principals

L'arquitectura de N8N està dissenyada per ser modular i escalable. Aquests són els components clau:

1. Editor (Frontend) - Aplicació web Vue.js - Interfície de drag-and-drop - Permet crear i editar workflows visualment - Mostra resultats en temps real - S'executa al navegador de l'usuari

2. Server (Backend) - Node.js + TypeScript - Gestiona l'execució de workflows - API REST per a operacions CRUD - Gestiona autenticació i autorització - Coordina l'execució dels nodes

3. Executor - Component que executa els workflows - Pot córrer en diferents modes (main, queue, webhook) - Gestiona el flux de dades entre nodes - Implementa retry logic i error handling

4. Database - Emmagatzema workflows, executions, credencials - Suporta: SQLite (dev), PostgreSQL, MySQL, MariaDB - Credencials encriptades amb clau mestra - Historial d'execucions amb TTL configurable

5. File Storage - Emmagatzema fitxers binaris - Per defecte: sistema de fitxers local - Pot configurar-se S3, Google Cloud Storage, etc.

Diagrama d'arquitectura bàsica:

┌─────────────────────────────────────────┐
│           User Browser                  │
│  ┌───────────────────────────────────┐ │
│  │     N8N Editor (Vue.js)           │ │
│  └───────────────────────────────────┘ │
└──────────────┬──────────────────────────┘
               │ HTTPS/WSS
┌──────────────────────────────────────────┐
│         N8N Server (Node.js)             │
│  ┌────────────┐  ┌──────────────────┐   │
│  │    API     │  │  Workflow Engine │   │
│  │  REST/WS   │  │   Executor       │   │
│  └────────────┘  └──────────────────┘   │
│         ↓                  ↓              │
│  ┌────────────┐  ┌──────────────────┐   │
│  │ Auth/ACL   │  │  Node Registry   │   │
│  └────────────┘  └──────────────────┘   │
└───────┬────────────────────┬─────────────┘
        ↓                    ↓
┌───────────────┐    ┌──────────────┐
│   Database    │    │ File Storage │
│  PostgreSQL   │    │   /uploads   │
└───────────────┘    └──────────────┘

Nodos (nodes) i connexions

Els nodes són els blocs de construcció fonamentals de N8N. Cada node representa una acció específica o una integració amb un servei.

Tipus de nodes:

1. Trigger Nodes (Inicien el workflow)

Manual Trigger    → Execució manual pel usuari
Schedule Trigger  → Execució temporitzada (cron)
Webhook Trigger   → Rep peticions HTTP externes
Email Trigger     → Detecta emails nous (IMAP)

2. Action Nodes (Realitzen accions)

HTTP Request   → Crida a APIs REST
PostgreSQL     → Operacions amb base de dades
Send Email     → Envia correus
Slack          → Envia missatges a Slack
Google Sheets  → Llegeix/escriu a fulls de càlcul

3. Logic Nodes (Control de flux)

IF                → Condicional (si/no)
Switch            → Múltiples condicions
Merge             → Combina fluxos
Split In Batches  → Divideix en lots
Loop              → Iteracions

4. Transform Nodes (Transformació de dades)

Set          → Estableix valors
Function     → JavaScript personalitzat
Code         → JavaScript o Python
Move         → Reorganitza dades
Aggregate    → Agrupa i suma

Connexions entre nodes:

Les connexions defineixen com flueixen les dades:

[Node A] ──main──> [Node B]

Tipus de connexions:

  1. Main connection (connexió principal)
  2. Passa totes les dades d'un node a l'altre
  3. Representada amb línia sòlida

  4. Multiple outputs (sortides múltiples)

    [IF Node] ──true──> [Node A]
              └─false─> [Node B]
    

  5. Multiple inputs (múltiples entrades)

    [Node A] ──┐
    [Node B] ──┼──> [Merge Node] ──> [Node C]
    [Node C] ──┘
    

Exemple pràctic de workflow:

[Manual Trigger]
[HTTP Request: GET https://api.github.com/users/torvalds]
[Set Node]
    name = {{ $json.login }}
    repos = {{ $json.public_repos }}
[Function Node]
    // Calcula una mètrica
    return [{
      json: {
        ...items[0].json,
        repo_quality_score: items[0].json.public_repos / 10
      }
    }];
[PostgreSQL: INSERT]
    table: github_users
[Slack: Post message]
    channel: #data-updates
    text: "Nou usuari processat: {{ $json.name }}"

Flux de dades en format JSON

Totes les dades a N8N es passen entre nodes en format JSON. Això proporciona:

  • Uniformitat: Tots els nodes parlen el mateix "idioma"
  • Flexibilitat: JSON pot representar estructures complexes
  • Interoperabilitat: Fàcil integració amb APIs modernes

Estructura de dades:

Cada node rep i retorna un array d'items, on cada item té aquesta estructura:

[
  {
    json: {
      // Les teves dades aquí
      name: "Joan",
      age: 30,
      city: "Barcelona"
    },
    binary: {
      // Fitxers binaris opcionals (imatges, PDFs, etc.)
      data: Buffer,
      mimeType: "image/png",
      fileName: "photo.png"
    },
    pairedItem: {
      // Metadata per tracking
      item: 0
    }
  },
  {
    json: {
      name: "Maria",
      age: 25,
      city: "Girona"
    }
  }
]

Per què un array?

Perquè un node pot processar múltiples registres alhora:

[HTTP Request] → Retorna 100 usuaris
[Function] → Processa tots 100 usuaris
[PostgreSQL] → Insereix els 100 registres

Accés a dades amb expressions:

N8N utilitza expressions per accedir a dades dels nodes anteriors:

// Dades del node actual
{{ $json.name }}

// Dades d'un node específic
{{ $node["HTTP Request"].json.users[0].email }}

// Funcions integrades
{{ $now }}                    // Timestamp actual
{{ $today }}                  // Data actual
{{ $json.price * 1.21 }}     // Operacions matemàtiques
{{ $json.name.toLowerCase() }} // Funcions de string

Exemple de transformació:

Node d'entrada (HTTP Request):

{
  "json": {
    "id": 1,
    "first_name": "Joan",
    "last_name": "Garcia",
    "email": "joan@example.com",
    "salary": 50000
  }
}

Set Node transforma a:

full_name = {{ $json.first_name }} {{ $json.last_name }}
email_domain = {{ $json.email.split('@')[1] }}
annual_cost = {{ $json.salary * 1.35 }}  // Amb impostos

Output:

{
  "json": {
    "full_name": "Joan Garcia",
    "email_domain": "example.com",
    "annual_cost": 67500
  }
}

Modes d'execució

N8N pot executar-se en diferents modes segons les necessitats:

1. Main Mode (Mode principal)

┌──────────────────┐
│   N8N Process    │
│                  │
│  Editor + Engine │
│                  │
└──────────────────┘
  • Ús: Desenvolupament, proves, projectes petits
  • Característiques:
  • Tot en un sol procés
  • Fàcil de configurar
  • Workflow s'executa al mateix procés que l'editor
  • Limitacions:
  • No escala horitzontalm ent
  • Si el procés mor, tot s'atura
  • Quan usar-lo: <1000 execucions/dia

2. Queue Mode (Mode amb cua)

┌─────────────┐     ┌──────────────┐
│ N8N Main    │────>│  Redis Queue │
│  (Editor)   │     └──────┬───────┘
└─────────────┘            │
              ┌────────────────────────┐
              │   N8N Workers (x3)     │
              │  ┌──────┐  ┌──────┐   │
              │  │Worker│  │Worker│   │
              │  │  1   │  │  2   │   │
              │  └──────┘  └──────┘   │
              └────────────────────────┘
  • Ús: Producció, alta càrrega
  • Característiques:
  • Main process gestiona editor i reb workflows
  • Redis com a cua de missatges
  • Workers executen workflows en paral·lel
  • Pot escalar afegint més workers
  • Avantatges:
  • Alta disponibilitat
  • Escalabilitat horitzontal
  • Isolation: si un worker peta, altres continuen
  • Quan usar-lo: >1000 execucions/dia, producció crítica

Configuració Queue Mode:

# docker-compose.yml
services:
  redis:
    image: redis:7

  n8n-main:
    image: n8nio/n8n
    environment:
      - EXECUTIONS_MODE=queue
      - QUEUE_BULL_REDIS_HOST=redis
    ports:
      - "5678:5678"

  n8n-worker-1:
    image: n8nio/n8n
    command: worker
    environment:
      - EXECUTIONS_MODE=queue
      - QUEUE_BULL_REDIS_HOST=redis

  n8n-worker-2:
    image: n8nio/n8n
    command: worker
    environment:
      - EXECUTIONS_MODE=queue
      - QUEUE_BULL_REDIS_HOST=redis

3. Webhook Mode

  • Els workflows amb webhook trigger estan sempre escoltant
  • Responen immediatament a peticions HTTP
  • No depenen de cron ni execucions manuals
Internet → [Webhook URL] → N8N → Processa → Respon

Escalabilitat i rendiment

Capacitat de N8N:

  • Single instance: fins a 220 execucions/segon
  • Queue mode: pràcticament il·limitat (afegeix workers)
  • Concurrent executions: configurable (default: 10)

Factors que afecten el rendiment:

  1. Complexitat del workflow

    Simple workflow (3 nodes): ~50ms
    Complex workflow (20+ nodes): ~500ms-2s
    

  2. Operacions externes

  3. API calls: 100-1000ms segons latència
  4. Database queries: 10-100ms
  5. File I/O: 50-500ms

  6. Volum de dades

    10 items: negligible
    1,000 items: ~100ms overhead
    100,000 items: considerar batch processing
    

Optimitzacions:

1. Batch Processing

[Source: 10,000 items]
[Split In Batches: 100 items per batch]
[Process batch]
[Loop until done]

2. Parallel Execution

[Trigger]
[Split] ──┬─> [Worker 1] ─┬─> [Merge]
          ├─> [Worker 2] ─┤
          └─> [Worker 3] ─┘

3. Caching

[Check Redis cache]
  ¿Hit?
  ├─ Yes → Return cached
  └─ No → [Fetch from API] → [Cache in Redis] → Return

Mètriques de monitoratge:

  • Execution time: temps total del workflow
  • Node execution time: temps per node
  • Success rate: % d'execucions exitoses
  • Error rate: % d'execucions amb errors
  • Queue depth: workflows pendents (queue mode)
  • Worker utilization: % d'us dels workers

1.3. Opcions de desplegament

N8N Cloud (SaaS)

Què és: - Servei gestionat per n8n.io - No necessites gestionar infraestructura - Sempre actualitzat amb l'última versió

Característiques:

┌─────────────────────────────┐
│    n8n.io Infrastructure    │
│                             │
│  ┌───────────────────────┐ │
│  │  Your N8N Instance    │ │
│  │  - Editor             │ │
│  │  - Workflows          │ │
│  │  - Executions         │ │
│  └───────────────────────┘ │
│                             │
│  Managed by n8n.io:         │
│  - Updates                  │
│  - Backups                  │
│  - Security                 │
│  - Scaling                  │
└─────────────────────────────┘

Avantatges: - ✅ Setup en 5 minuts - ✅ Manteniment zero - ✅ Backups automàtics - ✅ SSL/HTTPS inclòs - ✅ Uptime garantit - ✅ Suport oficial

Desavantatges: - ❌ Cost recurrent per execució - ❌ Dades al núvol (pot ser problema amb GDPR) - ❌ Menys control sobre infraestructura - ❌ Depens de la disponibilitat de n8n.io

Plans i preus (2026):

Starter:   Gratuït - 100 execucions/dia
Pro:       $20/mes - 5,000 execucions/mes
Business:  $50/mes - 25,000 execucions/mes
Enterprise: Custom - Il·limitat

Quan usar N8N Cloud: - Projectes petits/mitjans - No tens equip DevOps - Prioritzes rapidesa sobre control - No tens requisits estrictes de compliance

Self-hosted (Docker, Kubernetes)

Què és: - Instal·les i gestiones N8N a la teva infraestructura - Control total sobre dades i configuració - Gratuït (només pagues infraestructura)

Opcions d'instal·lació:

1. Docker (més simple)

# Single container
docker run -d \
  --name n8n \
  -p 5678:5678 \
  -v n8n_data:/home/node/.n8n \
  n8nio/n8n

2. Docker Compose (recomanat)

version: '3.8'
services:
  postgres:
    image: postgres:15
    volumes:
      - postgres_data:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: n8n
      POSTGRES_USER: n8n
      POSTGRES_PASSWORD: secret

  n8n:
    image: n8nio/n8n
    ports:
      - "5678:5678"
    environment:
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=postgres
      - N8N_ENCRYPTION_KEY=your-encryption-key
    volumes:
      - n8n_data:/home/node/.n8n
    depends_on:
      - postgres

volumes:
  postgres_data:
  n8n_data:

3. Kubernetes (producció enterprise)

apiVersion: apps/v1
kind: Deployment
metadata:
  name: n8n
spec:
  replicas: 3
  selector:
    matchLabels:
      app: n8n
  template:
    metadata:
      labels:
        app: n8n
    spec:
      containers:
      - name: n8n
        image: n8nio/n8n:latest
        ports:
        - containerPort: 5678
        env:
        - name: EXECUTIONS_MODE
          value: "queue"
        - name: QUEUE_BULL_REDIS_HOST
          value: "redis-service"
---
apiVersion: v1
kind: Service
metadata:
  name: n8n-service
spec:
  selector:
    app: n8n
  ports:
  - port: 80
    targetPort: 5678
  type: LoadBalancer

Arquitectura self-hosted recomanada:

                    Internet
                  [CloudFlare]
                   [Nginx/Traefik]
                   SSL termination
          ┌────────────┴────────────┐
          ↓                         ↓
    [N8N Main]              [N8N Workers x3]
          ↓                         ↓
      [Redis Queue] ←───────────────┘
    [PostgreSQL]
    [S3 / Object Storage]

Avantatges: - ✅ Cost fix (infraestructura) - ✅ Control total de dades - ✅ Compliance més fàcil (GDPR, etc.) - ✅ Personalització sense límits - ✅ No vendor lock-in

Desavantatges: - ❌ Requires gestió i manteniment - ❌ Tu fas les actualitzacions - ❌ Necessites expertise DevOps - ❌ Tu gestiones backups i seguretat

Quan usar Self-hosted: - Dades sensibles (sanitat, finances) - Requisits de compliance estrictes - Gran volum d'execucions (>100k/mes) - Vols control total - Tens equip DevOps

Avantatges del desplegament on-premise

1. Seguretat i Control de Dades

┌──────────────────────────────┐
│   Your Private Network       │
│                              │
│  ┌────────────────────────┐ │
│  │   N8N Instance         │ │
│  │   ├── Workflows        │ │
│  │   ├── Credentials      │ │
│  │   └── Execution Data   │ │
│  └────────────────────────┘ │
│           ↓                  │
│  ┌────────────────────────┐ │
│  │  Your Databases        │ │
│  │  - PostgreSQL          │ │
│  │  - MongoDB             │ │
│  └────────────────────────┘ │
│                              │
│  Everything stays inside     │
│  your infrastructure         │
└──────────────────────────────┘

Beneficis: - Dades mai surten de la teva xarxa - Pots auditar tot el codi - Compleix amb requisits air-gapped - Control d'encriptació

2. Compliance i Regulació

Per sectors regulats (sanitat, finances, govern):

GDPR (Europa): - Data residency garantida - Right to deletion implementable - Data processing agreements no necessaris amb tercers

HIPAA (Sanitat USA): - PHI (Protected Health Information) no surt de la teva xarxa - Audit logs complets - Encriptació end-to-end

Exemple: Pipeline de dades mèdiques

[Hospital EHR] → [N8N self-hosted] → [Private Data Warehouse]
                [Local AI models]
              [Encrypted Backup]
Tot dins de la xarxa privada de l'hospital.

3. Cost-efectivitat a escala

Comparativa de costos (100,000 execucions/mes):

N8N Cloud:
  ~$200-500/mes (segons pla)

Self-hosted:
  Server VPS: $50/mes (Hetzner, OVH)
  o
  AWS t3.large: ~$60/mes
  PostgreSQL: inclòs
  Storage: ~$10/mes
  Total: ~$70/mes

Estalvi: ~65-85%

A més gran escala, més estalvi:

1M execucions/mes:
  Cloud: $2000+/mes
  Self-hosted: ~$200/mes (més gran server)

4. Personalització sense límits

// Pots crear custom nodes
class MyCustomNode implements INodeType {
  description: INodeTypeDescription = {
    displayName: 'My Company Integration',
    name: 'myCompanyNode',
    // ... teva lògica
  };

  async execute(this: IExecuteFunctions) {
    // Lògica personalitzada per integració interna
  }
}

5. Integració amb sistemes interns

┌──────────────────────────────────┐
│    Your Corporate Network        │
│                                  │
│  [N8N] ← → [Internal CRM]       │
│     ↕                            │
│  [Legacy System]                 │
│     ↕                            │
│  [Private API]                   │
│     ↕                            │
│  [On-premise Database]           │
│                                  │
│  No need to expose anything      │
│  to the internet!                │
└──────────────────────────────────┘

Consideracions de seguretat i compliance

1. Seguretat de la xarxa

Internet
[Firewall/WAF]
[VPN/Bastion Host] ← Només admins
[N8N Instance]
[Internal Network]

Best practices: - ✅ N8N darrera VPN - ✅ Whitelist d'IPs - ✅ SSL/TLS obligatori - ✅ Rate limiting - ✅ DDoS protection

2. Autenticació i Autorització

Opcions: 1. Basic Auth (simple) 2. LDAP/Active Directory (enterprise) 3. SAML SSO (enterprise) 4. OAuth2

Exemple LDAP:

environment:
  - N8N_AUTH_TYPE=ldap
  - N8N_AUTH_LDAP_URI=ldap://ldap.company.com
  - N8N_AUTH_LDAP_BASE_DN=dc=company,dc=com

RBAC (Role-Based Access Control):

Admin    → Pot tot
Editor   → Pot crear/editar workflows
Viewer   → Només pot veure workflows
Executor → Només pot executar workflows

3. Encriptació

En trànsit:

Client ←HTTPS→ [N8N] ←TLS→ [PostgreSQL]
              ←SSL→ [Redis]

En repòs:

environment:
  # Encryption key per credencials
  - N8N_ENCRYPTION_KEY=your-256-bit-key

  # Database encryption
  - DB_POSTGRESDB_SSL_CA=/path/to/ca.crt
  - DB_POSTGRESDB_SSL_REJECT_UNAUTHORIZED=true

4. Auditoria i Logs

Què auditar: - Qui crea/modifica workflows - Qui executa workflows - Accessos a credencials - Canvis en configuració - Errors i excepcions

Configuració:

environment:
  # Log level
  - N8N_LOG_LEVEL=info

  # Log streaming (opcional)
  - N8N_LOG_OUTPUT=console,file
  - N8N_LOG_FILE_LOCATION=/var/log/n8n/

Integració amb SIEM:

[N8N] → [Filebeat] → [Elasticsearch] → [Kibana]
                      [Alert Rules]
                   [Security Team]

5. Backup i Disaster Recovery

Què fer backup: 1. Database (workflows, credentials, executions) 2. File storage (binary files) 3. Configuration files 4. Custom nodes (si n'has creat)

Estratègia 3-2-1: - 3 còpies de les dades - 2 tipus de mitjans diferents - 1 còpia off-site

Exemple script backup:

#!/bin/bash
# Backup N8N

# 1. Backup database
docker exec n8n-postgres pg_dump -U n8n n8n > backup_$(date +%Y%m%d).sql

# 2. Backup files
docker cp n8n:/home/node/.n8n ./backup_n8n_data/

# 3. Encrypt
gpg --encrypt --recipient admin@company.com backup_$(date +%Y%m%d).sql

# 4. Upload to S3
aws s3 cp backup_$(date +%Y%m%d).sql.gpg s3://company-backups/n8n/

# 5. Cleanup old backups (keep 30 days)
find ./backups -name "*.sql.gpg" -mtime +30 -delete

Recovery Time Objective (RTO): - Cloud: ~5 minuts (failover automàtic) - Self-hosted: ~30 minuts (restore manual)

Recovery Point Objective (RPO): - Continuous: Real-time replication - Daily: Backups diaris (màx 24h de pèrdua)

6. Compliance Checklist

GDPR: - ✅ Data residency (EU servers) - ✅ Encryption at rest and in transit - ✅ Right to deletion implemented - ✅ Audit logs - ✅ Data processing agreement (si cloud)

ISO 27001: - ✅ Access control - ✅ Incident management - ✅ Risk assessment - ✅ Security policies documented

SOC 2: - ✅ Monitoring and alerting - ✅ Change management - ✅ Vendor management - ✅ Penetration testing


Resum Unitat 1:

En aquesta unitat hem cobert: 1. Què és N8N i per què és útil per Big Data 2. Com es compara amb altres eines del mercat 3. L'arquitectura interna i com funciona 4. Les opcions de desplegament (Cloud vs Self-hosted) 5. Consideracions crítiques de seguretat i compliance

Conceptes clau: - N8N combina automatització visual amb potència de codi - Fair-code license ofereix transparència i control - Modes d'execució (main vs queue) per escalar - Self-hosted dóna control total sobre dades - Seguretat i compliance són crítics en Big Data

Pròxims passos: A la Unitat 2 veurem com instal·lar N8N pas a pas i configurar-lo per començar a treballar.