Anatomia impianto dati

Esistono vari modi per rappresentare un impianto dati, anatomicamente parlando. Dal punto di vista testuale mi piace docker compose, una funzionalità di docker che permette di attaccare vari servizi assieme come i LEGO. Chiaramente non sempre conviene avere tutte le componenti dell’impianto dati aziendale tramite docker.

 

Vedrai l’esempio di n8n, una alternativa a Zapier, quindi non direttamente collegato alla statistica ma più alla informatica, perché permette ad esempio di far scambiare dati tra varie applicazioni. Questo semplice esempio contiene una base di dati, non strettamente necessaria, e l’applicazione n8n dove poter progettare ed eseguire le proprie automazioni, che ovviamente vengono memorizzate.

 

version: '3.8'

volumes:
  db_storage:
  n8n_storage:

services:
  postgres:
    image: postgres:16
    restart: always
    environment:
      - POSTGRES_USER
      - POSTGRES_PASSWORD
      - POSTGRES_DB
      - POSTGRES_NON_ROOT_USER
      - POSTGRES_NON_ROOT_PASSWORD
      # impostazioni di sicurezza
    volumes:
      - db_storage:/var/lib/postgresql/data
    healthcheck:
      test: ['CMD-SHELL', 'pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}']
      interval: 5s
      timeout: 5s
      retries: 10
      # altra impostazione di sicurezza

  n8n:
    image: docker.n8n.io/n8nio/n8n
    restart: always
    environment:
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=postgres
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
      - DB_POSTGRESDB_USER=${POSTGRES_NON_ROOT_USER}
      - DB_POSTGRESDB_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD}
      # configurazione per accedere a postgresql
    ports:
      - 5678:5678
      # come possiamo consumare il servizio internamente. Andrà collegato ad un dominio
      # ad esempio da localhost:5678->n8n.aziendarossi.it
    links:
      - postgres
    volumes:
      - n8n_storage:/home/node/.n8n
    depends_on:
      postgres:
        condition: service_healthy
        # sicurezza

 

Volumi significa magazzino o memoria, chiaramente la metafora della base di dati come magazzino per il servizio può generare confusione. Osservi che come base di dati abbiamo postgre, citato già in articolo e in altre occasioni.

 

Ti porto anche un esempio molto particolare di shiny che si collega ad una base di dati MySQL. Di solito lo si fa dal codice R che ha shiny anziché dal codice dell’impianto, ossia il docker-compose.yml

 

version: '3.8'

services:
  shiny:
    image: rocker/shiny
    # servizio di cruscotto dati basato su R
    ports:
      - "3838:3838"
    volumes:
      - ./shiny_app:/srv/shiny-server
    depends_on: #dipende da 
      - db

  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: shinydb
      MYSQL_USER: user
      MYSQL_PASSWORD: userpassword
      # esiste un modo più furbo per conservare questi segreti

    volumes:
      - mysql_data:/var/lib/mysql

 

Ecco un esempio di CRM a codice sorgente aperto, Odoo. Capirai pià direttamente perché chiamo i CRM basi di dati particolari. In passato ho citato altri CRM aperti, come vTiger e Mautic.

 

version: '3.1'
services:
  web:
	image: odoo:17.0
	depends_on:
  	- mydb
	ports:
  	- "8069:8069"
	environment:
	- HOST=mydb
	- USER=odoo
	- PASSWORD=myodoo
  mydb:
	image: postgres:15 
	#ecco qua la nostra base di dati
	environment:
  	- POSTGRES_DB=postgres
  	- POSTGRES_PASSWORD=myodoo
  	- POSTGRES_USER=odoo

 

L’occhio attento ha osservato che ogni immagine ha un nome e una versione. Che si fa per aggiornare l’impianto alle rispettive ultime versione delle componenti? Si installa un altro container (guarda primo articolo menzionato), di nome watchtower, che automatizza questa procedura piuttosto delicata.

 

Nella realtà, ovviamente, un impianto dati aziendale risulta molto più articolato dei file docker-compose.yaml che ti ho riportato. E non per tutte le componenti si trovano soluzioni aperte. Ad esempio delle aziende, per la visualizzazione dati, preferiscono Tableau o MicroStrategy, o qualcosa di gratuito ma non docker-izabile tipo Google Looker.

 

E la tua azienda quale impianto ha in piedi? Rivediamolo insieme in una prima chiamata gratuita. Magari alcune sue componenti potrebbero costare meno. O magari mancano dei componenti che aiutano il tuo fatturato.

 

 

Privacy Policy
en_USEnglish