Sviluppo applicazioni e web app cloud native

App e web app cloud native: come affrontare i picchi di traffico con AWS

Home » Sviluppo Software » App e web app cloud native: come affrontare i picchi di traffico con AWS

Da Cognito a API gateway e Lambda: scopri i servizi gestiti e serverless AWS per scalare quando lo chiede il mercato

Se ti occupi di sviluppo di applicazioni e web app cloud native sai quanto possano essere critici i picchi di traffico. In questo articolo vediamo come affrontarli usando servizi gestiti e serverless di AWS come Lambda, Cognito e Amplify.In alcuni periodi, infatti, possono verificarsi aumenti improvvisi dei carichi di lavoro a cui la tua applicazione o il tuo sito sono sottoposti. Servizi gestiti e serverless di AWS offrono una soluzione in termini di flessibilità, scalabilità e alta disponibilità in un contesto di utilizzo variabile.Se devi sviluppare un sito per un grande evento ibrido, un e-commerce che sarà preso d’assalto nel periodo di Natale o un’app mobile per il settore viaggi potresti trovarti in una situazione simile a quella che abbiamo affrontato noi di Eleva per sviluppare web app e sito di uno dei più noti settimanali italiani, irrinunciabile in vacanza. In questo articolo vogliamo condividere alcune best practice di sviluppo cloud native con cui abbiamo affrontato il boom di utilizzo estivo della storica rivista!
  • App cloud native e picchi di traffico: come affrontarli con servizi gestiti e serverless di AWS 
  • Sviluppo di app e web app: a cosa serve AWS Amplify Gen2 
  • Case history di web app con picchi stagionali 
  • Conclusioni 

App cloud native e picchi di traffico: come affrontarli con servizi gestiti e serverless di AWS

Sviluppare app cloud native, con un approccio serverless o a servizi gestiti, potrebbe migliorare drasticamente la Dev Experience (DX), specie se il prodotto è facilmente soggetto a picchi di traffico.Gli sviluppatori di app, dovrebbero potersi concentrare solo sulla logica di business, senza preoccuparsi eccessivamente dell’infrastruttura sottostante. I servizi gestiti e serverless di AWS permettono appunto di automatizzare molte funzioni legate al funzionamento e alla sicurezza dell’architettura sottostante, in presenza di improvvise variazioni di utilizzo di un’app. Vediamo le principali tecnologie di cui le migliori agenzie di sviluppo app non potranno più fare a meno.
Lambda
Alla base dell’approccio serverless, Lambda è il servizio di AWS che si occupa dell’esecuzione del codice, senza bisogno di configurare e gestire l’infrastruttura sottostante. Utilizza un’infrastruttura di elaborazione ad alta disponibilità ed esegue il codice solo quando necessario, scalando automaticamente verso l’alto e verso il basso la capacità, a seconda dei picchi o cali di traffico. Questo permette agli sviluppatori di web app di ottimizzare notevolmente il proprio lavoro, utilizzando strumenti di infrastruttura come codice (IaC) e di orchestrazione come AWS CloudFormation.
API gateway
API gateway è un servizio AWS per creare e pubblicare API.  Gestisce tutte le attività necessarie per accettare ed elaborare picchi di chiamate API simultanee, come gestione del traffico, controllo di autorizzazioni e accessi, caching, monitoraggio, manutenzione e gestione delle modifiche delle API nel tempo.
Cognito
Cognito e un servizio serverless managed che permette di gestire le identità degli utenti soddisfacendo le esigenze essenziali di un’interfaccia di autenticazione per app mobile o web app, garantendo i massimi standard di sicurezza per le operazioni di accesso, registrazione e reimpostazione delle password degli utenti, anche in caso di autenticazione attraverso provider di terze parti, come Facebook, Apple o Google.
AWS Amplify Gen2
AWS Amplify Gen2 è uno strumento per accelerare lo sviluppo di app mobile e web app su AWS. Riunisce una serie di strumenti e servizi utili per le agenzie di sviluppo app, tra cui un framework open source che permette di connettersi facilmente a Cognito, alle API o a servizi di storage come Amazon S3. Vediamolo più in dettaglio nel prossimo paragrafo.

Sviluppo di app e web app: a cosa serve AWS Amplify Gen2

Il framework open source di AWS Amplify Gen2 favorisce la creazione del back-end delle app, permettendo di integrarlo con app iOS, Android, Web e React Native. Il framework sfrutta un core set di servizi Cloud AWS per offrire capacità come autenticazione (Cognito), archiviazione (S3), funzioni serverless (Lambda) e molto altro, integrandosi dietro le quinte con CloudFormation per il deploy delle risorse necessarie al funzionamento dell’applicazione.Sfruttando un approccio IaC (Infrastructure as Code), Amplify consente agli sviluppatori di app di implementare infrastrutture cloud, indicando tramite TypeScript i data model, la logica di business, le regole di autenticazione e autorizzazione delle proprie app. Attraverso servizi come CloudFormation, configura poi automaticamente le risorse cloud corrette.

Case history di web app con picchi stagionali

Eleva ha potuto sviluppare una web app front-end per uno dei settimanali più letti in Italia, realizzata con React e l’utilizzo dell’sdk di AWS Amplify per l’integrazione di servizi AWS (Amazon S3, Amazon Cognito). I contenuti dell’app sono stati memorizzati su Amazon S3 e resi disponibili tramite la CDN di Amazon CloudFront, previa autenticazione tramite signed URL.La sfida era creare un nuovo sito che traducesse l’esperienza della rivista cartacea in digitale, permettendo di gestire le diverse tipologie di giochi su desktop e mobile.  Dal lato gestionale, la piattaforma doveva consentire l’importazione diretta di giochi e contenuti dal gestionale redazionale e un accesso unificato per gli utenti su tutte le piattaforme digitali del brand.sviluppare web app Durante la stagione estiva e nei giorni festivi, gli accessi al sito della nota rivista aumentano mediamente del 50%. Anche per questo motivo, si è scelto fin da subito un approccio allo sviluppo cloud native per la web application. Una strategia che ha permesso di sfruttare al meglio l’ambiente cloud in termini di flessibilità, scalabilità e affidabilità. La piattaforma, infatti, si basa su servizi IaaS e un’architettura serverless (con AWS Lambda e Serverless Framework) e sfrutta AWS Amplify Gen 2 per autenticazione e autorizzazione e per la connessione ad API sviluppate in serverless. I dati dei giochi sono salvati in un database no-SQL (DynamoDB) per consentire massima scalabilità e alta disponibilità in un contesto d’utilizzo variabile. Questo garantisce la continuità del servizio anche durante i picchi di accesso, elevate prestazioni e grande capacità di adattarsi automaticamente al traffico.

Conclusioni

Quali aspetti devo allora considerare se con la mia web agency sviluppo app soggette a picchi stagionali?
  1. Sviluppo cloud native: scegliere fin da subito servizi gestiti e serverless consente di dimensionare automaticamente l’infrastruttura, con il duplice vantaggio di ottimizzare i costi quando cala la domanda e garantire sempre alta affidabilità e sicurezza ai miei utenti nei momenti di picco
  2. Autenticazione ottimizzata: l’uso di servizi come Cognito permette di gestire nativamente il processo e i dati in modo sicuro, senza intoppi per gli utenti che accedono da dispositivi, browser o frontend diversi e senza necessità di sincronizzazione con piattaforme locali
  3. Sicurezza: i servizi cloud AWS permettono agli utenti di accedere a contenuti in modo sicuro e controllato, proteggendo allo stesso tempo i dati aziendali. Funzionalità come i signed URL, basati su criteri come la durata della connessione, consentono l’accesso agli storage solo a determinate condizioni, limitando i rischi di violazione