Archivio Autore

Il regolamento generale sulla protezione dei dati (GDPR, General Data Protection Regulation) è una normativa Europea (Regolamento Ue 2016/679), già in vigore ma pienamente applicabile dal 25 maggio 2018, che controlla l’utilizzo dei dati personali da parte delle società o altre organizzazioni nel mondo.

Un’iniziativa con un impatto significativo in materia di privacy e protezione dei dati che cambierà il modo in cui le organizzazioni in tutto il mondo potranno e dovranno gestire i dati dei cittadini dell’Unione europea.

Se sei una società o organizzazione che acquisisce, modifica, trasmette, cancella, o esegue una qualsiasi altra azione con dati che identificano un qualsiasi soggetto appartenente all’Unione europea, sei tenuto ad essere GDPR Compliant.

OPT-IN E CONSENSO

Ogni dato personale acquisito da un cittadino europeo, attraverso un form o un qualsiasi altro sistema digitale, deve essere associato ad un consenso esplicito (ad esempio non sono validi i checkbox già confermati) da parte dell’utente.

La registrazione dei consensi, in alcuni casi i classici OPT-IN dei sistemi per l’invio di newsletter, può avvenire su sistemi propri o sistemi terzi. La seconda soluzione, predisposta dalle piattaforme dedicate a tale compito a canone mensile o annuale, risulta più adatta alle micro-piccole-medie imprese in quanto più immediata nella sua applicazione e con un grado di sicurezza maggiore in caso di controllo.

Nella registrazione del consenso da parte dell’utente devono essere esplicitati tutti i dati inerenti l’azione di consenso, tra queste anche l’informativa sulla privacy e trattamento dei dati presente nel momento in cui si è prestato il consenso, IP dell’utente, data, ora, eventuali azioni a conferma del consenso (submit action).

I DIRITTI DELL’UTENTE

Il GDPR sancisce quali sono i diritti del cittadino europeo nei confronti delle società o organizzazioni a cui è stato concesso l’utilizzo dei dati personali.

Ogni cittadino europeo ha il diritto di chiedere i dettagli nell’utilizzo e nel modo in cui i propri dati vengono trattati e gestiti.

Ogni società o organizzazione al mondo, in possesso dei dati personali di cittadini europei, deve essere predisposta a supportare i processi per il trattamento dei dati (modifica, sospensione, cancellazione) ed essere in grado di far fronte alle richieste di ogni singolo individuo per i dettagli del trattamento.

In ogni momento, l’utente ha il diritto di richiedere la modifica, rimozione completa, sospensione per certi usi dei propri dati. Inoltre, il GDPR sancisce il diritto da parte dell’autorità competenti di poter accedere al sistema che esegue il salvataggio e consente la lettura dei dati personali, in questo caso dovranno essere fornite tutte le informazioni relative al consenso da parte dell’utente, le modalità del trattamento e tutti i dati in possesso.

Cosa devo fare?

  • Redigere una Privacy Policy adeguata al GDPR
  • Avere un sistema per tracciare i consensi sui form
  • Utilizzare un sistema OPT-IN per gli iscritti alla newsletter o sistemi analoghi (in caso di mancato opt-in bisogna inviare una nuova comunicazione con il link)

WeFitter Cloud Architecture





WeFitter (https://www.wefitter.com) è un app mobile che incentiva l’attività fisica premiando le attività quotidiane degli utenti iscritti alla community con sfide settimanali e obiettivi individuali, il tutto integrato tramite API con le principali “Fitness Apps” di terze parti. L’obiettivo di WeFitter, inclusa da Google nel programma per le 500 migliori startup, era di passare da un’infrastruttura monolitica su Digital Ocean ad una totalmente dinamica e flessibile su Google Cloud.

La progettazione e il deploy online su GCP hanno richiesto circa 3 mesi di attività costante, tutta l’infrastruttura di Cloud Computing è tutta “usa e getta” (adoro questo termine…), questo significa, che nel caso estremo in cui tutte le istanze siano cancellate nello stesso momento, il tempo necessario per ripristinare tutta l’infrastruttura è pari al tempo di inizializzazione delle nuove istanze e i rispettivi tempi di boot. Ad ogni boot ognuna delle istanze verifica il suo stato e il tipo di servizio da fornire, in caso di necessità esegue il deploy e la configurazione degli applicativi necessari al corretto funzionamento dei servizi. Tutti i sorgenti degli applicativi sono gestiti da 2 repository distinti, BitBucket per la parte di development e GitLab per la parte di  Continuous Deployment.

Ad Ansible è affidata tutta la gestione e verifica delle istanze e dei servizi necessari per:

  • App Front-end / Back-end
  • Job scheduler
  • WordPress website e blog
  • Caching System (Redis)

I Front-end sono configurati su webserver Nginx su cui sono stati apportate modifiche per migliorarne le performance e l’efficienza, in particolare sono stati assegnati un numero di processi sempre disponibili pari al numero medio di richieste giornaliere, così facendo il carico della macchina rimane più stabile rispetto ad una gestione variabile dei processi (carico / scarico) nel corso della giornata, il grafico di monitoraggio di CPU e RAM non presenta picchi ed è più semplice notare anomalie.

Cloud SQL


La gestione del database relazionale MySQL è affidata a Cloud SQL, servizio in grado di fornire supporto anche per la replica dei dati su un database server slave in modalità failover, soluzione utilizzata anche come READ Replica per i backend dell’applicazione principale (API last release). L’accesso al database da parte di tutta l’infrastruttura di Computing Engine è garantito da Cloud SQL Proxy. La parte di autenticazione è gestita tramite permessi impostati su Google IAM ma soprattutto l’utilizzo di questo componente risulta fondamentale per la gestione delle connessioni da parte dei gruppi di auto-scaling con IP temporaneo.

Networking


L’accesso da internet è configurato con Google CDN e Google Load Balancer, diverse regole (Forwarding Rules) pre-impostante manualmente consentono di redirigere il traffico in base all’indirizzo di destinazione tra API requests, Webpages public / private, blog, third party web sites (resource reselling) and so on… Come consuetudine tutta la parte di Front-end rimane esposta a internet, comunque protetta dal Firewall di Google, mentre la parte di Back-end rimane privata tramite private subnetwork (no legacy!).

Una delle caratteristiche che impongo sempre alle mie architetture scalabili è quella di essere impostata su un modello master-group, ciò rappresenta che il mio servizio X che deve rispondere ai requisiti di alta affidabilità e alta disponibilità, gestito da un sistema di auto-scaling, è distribuito su un’istanza master, di solito con elevata capacità di lavoro, e ad un gruppo di istanze in modalità auto-scaling, ognuna di queste con capacità di lavoro ridotte rispetto al master ma utilizzabili in cluster per distribuire il carico su più macchine. In questo modo ottengo un’alta affidabilità del servizio X, ho almeno 2 istanze che lavorano in cluster e il bilanciatore si occupa di gestire la distruzione del carico / traffico, e ottengo un’alta disponibilità in quanto, se la capacità del master non dovesse essere sufficiente, il gruppo in auto-scaling associato si occuperà di aumentare o diminuire le risorse quando si renderà necessario.

Security


La sicurezza di tutta l’infrastruttura è garantita dagli interventi effettuati prima del rilascio online e tramite aggiornamenti periodici automatizzati (Ansible). Sul Firewall sono state controllate tutte le porte incrociandole con i servizi presenti sull’infrastruttura in cloud e abilitando solo quelle strettamente necessarie (closed by design), l’accesso ai servizi riservati è assicurato solo da certe reti private, così come l’accesso al DB da remoto è possibile sono tramite IP/subnet autenticata.

Prima del rilascio online sono stati eseguiti diversi stress-test con il fine di individuare la corretta configurazione per i diversi servizi coinvolti nella gestione del traffico, tra questi troviamo Load Balancer e le regole di Balancing mode (RPS), auto-scaling groups (2 per 2 differenti compiti) e il carico massimo assimilabile, in questo ultimo caso è stato molto utile valutare il comportamento dell’applicazione stessa in caso di carico estremo.

Google Next 2017 – Milano

Come ogni anno anche in Italia Google organizza il Google Next, evento dedicato al 100% alle tecnologie in cloud, ovvero tutte le principali tecnologie di Google. 
I vantaggi di un’architettura bilanciata sono molteplici e garantiscono un’elevata affidabilità dei nostri servizi online grazie al numero variabile di nodi disponibili.