Archivio Fotografico Enrico Appetito
Cliente.
A.E.A. S.r.l. – L’ Archivio Enrico Appetito è un archivio fotografico che raccoglie foto di scena scattate dal maestro Enrico Appetito sui set di oltre cinquecento film, dagli anni Cinquanta al 2003.
FithBeat S.r.l. – Società esperta di UX/UI che si è occupata della gestione dei requisiti utente, della prototipazione del prodotto e del coordinamento delle attività di sviluppo a nostro carico come software house.
Richiesta.
Realizzare una piattaforma per lo shop online in cui poter effettuare l’acquisto e il download degli scatti presenti nell’archivio fotografico. La richiesta comprende anche un sito web di back office per la gestione degli utenti e editor della piattaforma che si occuperanno dell’inserimento e della catalogazione delle fotografie.
Aspetti critici.
L’archivio è formato da un grandissimo numero di scatti (circa un milione di fotografie divise in oltre 500 film), che di volta in volta verranno caricati e catalogati, con l’utilizzo di tag e metadati, nella piattaforma utilizzando il sito web di back office.
E’ stata anche richiesta la possibilità di acquistare la fotografia con delle diverse licenze d’uso, per ognuna delle quali è stata definita una risoluzione del file.
Tutte le operazioni di data entry sono consentite solo agli utenti con ruolo editor e admin.
Tutto cercando sempre di minimizzare i costi di gestione dell’infrastruttura IT garantendo massima la qualità del servizio.
La nostra soluzione.
L’intera piattaforma si basa su servizi offerti da differenti cloud provider: Amazon (Amazon Web Services), MongoDB (Atlas) e Stripe.
Il software del backend è stata scritto in linguaggio Python e si appoggia su due diverse architetture: una serverless, basata su Lambda Function, per soddisfare le API necessarie all’autenticazione, autorizzazione e visualizzazione dei contenuti della piattaforma, e una basata su container docker per la gestione di upload, download e manipolazione delle immagini.
I front end, sia quello per gli utenti che il back office di amministrazione, sono stati realizzati con il framework VueJS e distribuiti sulla CDN di AWS, CloudFront.
I dati degli utenti e dei vari componenti del sistema sono memorizzati sul database noSQL MongoDB su cloud Atlas. Per quanto riguarda lo storage delle immagini invece si è optato per il servizio Simple Storage Service (S3) di AWS, il quale garantisce un altissimo livello di sicurezza e bassi tempi di latenza anche per enormi quantità di dati, offrendo anche il supporto allo storage long term per un’ulteriore riduzione dei costi.
Vantaggi.
Abbiamo deciso di implementare il servizio sviluppando un’architettura moderna e dinamica che consente di abbattere notevolmente i costi della infrastruttura IT in quanto non prevede l’utilizzo di macchine virtuali o server dedicati, ma funzionalità snelle e scalabili: le Lambda Function consentono di gestire ottimamente i picchi di traffico, mantenendo ottime performance in termini di tempi di risposta anche con un elevato numero di richieste concorrenti, il tutto azzerando i costi se non utilizzate.
I container docker (servizio Elastic Container Service di AWS) invece sono stati utilizzati per svolgere quelle operazioni che hanno una durata lunga nel tempo, come l’upload delle fotografie ad alta risoluzione che possono avere anche una dimensione di 50/60 MB. I container docker all’occorrenza possono scalare rapidamente per adattarsi al numero di richieste di upload e download.
Sempre nell’ottica di ottimizzazione dei costi e delle performance, è stato scelto il database MongoDB su cloud Atlas: questo servizio ha il duplice vantaggio di avere tempi di risposta estremamente bassi che fa risparmiare sui tempi di esecuzione delle Lambda Function, ma ad un costo di circa un ventesimo rispetto all’equivalente DocumentDB di AWS.
I front end sono distribuiti in modo capillare sia a livello nazionale che europeo grazie alla CDN CloudFront, in questo modo l’utente finale sperimenta una maggiore reattività nell’utilizzo della piattaforma. Inoltre il cliente può beneficiare della levatissima affidabilità e disponibilità della CDN con costi minori rispetto ad un classico hosting web.