Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Applicazioni Web: Sicurezza e Scalabilità

Sfruttiamo le funzionalità di Jelastic Cloud per migliorare la sicurezza delle applicazioni web, e configurare la scalabilità della nostra soluzione.
Sfruttiamo le funzionalità di Jelastic Cloud per migliorare la sicurezza delle applicazioni web, e configurare la scalabilità della nostra soluzione.
Link copiato negli appunti

Le applicazioni web realizzabili in Jelastic possono essere delle più diverse tipologie. Si possono costruire da zero o importare da Marketplace. Si può optare per un linguaggio piuttosto che per un altro, scegliere un database relazionale o uno NoSQL. Tutte hanno però in comune alcuni fattori che rappresentano necessità primarie, soprattutto al giorno d’oggi: la sicurezza e la scalabilità.

Tali fattori sono particolarmente critici per servizi e siti web, dal momento che essi nascono per essere a contatto con un gran numero di utenti, dovendo supportare grandi numeri in termini di accessi simultanei, pur rimanendo inevitabilmente esposti a minacce esterne.

Scalabilità

Jelastic offre funzioni di scalabilità per ogni ambiente server. Questo aspetto è assolutamente fondamentale perché rappresenta la chiave della flessibilità di un servizio in Cloud.

La scalabilità può essere applicata in due sensi:

  • verticalmente: significa modificare la quantità di risorse a disposizione. Parliamo quindi, principalmente, di memoria RAM e CPU. Possiamo potenziare un sistema richiedendo più Gigabyte di RAM oppure incrementando la sua capacità di elaborazione;
  • orizzontalmente: significa replicare il medesimo servizio su più nodi, piuttosto che potenziare le risorse di un singolo nodo.

Entrambe le tecniche sono comunemente utilizzate, sebbene la scalabilità orizzontale, soprattutto nell’era dei Big Data, ha dimostrato una maggiore adattabilità ed efficacia rispetto al modello verticale.

Di sicuro, entrambe queste tecniche possono essere applicate in maniera estremamente agevole in Jelastic. In entrambi i casi, si può operare dal pannello di gestione della topologia dell’applicazione:

Figura 1. Configurazione della scalabilità orizzontale e verticale su Jelastic (click per ingrandire)Configurazione della scalabilità orizzontale e verticale su Jelastic

Le due sezioni di nostro interesse sono ravvicinate all’interno di questo pannello, in modo da poter essere confrontate velocemente. Esse si riferiscono alle capacità del nodo (vertical scaling) ed al numero di nodi (horizontal scaling).

È importante che il modello di scalabilità venga applicato in maniera automatica, e ciò per una serie di motivi. In primis, il suo adattamento è affidato alla reattività della piattaforma, che riconosce il livello di carico ed in completa autonomia reagisce senza dover attendere alcun intervento umano. In secundis, con lo scalamento automatico non capiterà mai di pagare risorse inutilizzate: esse, infatti, verranno sempre rapportate a ciò di cui il sistema ha effettivamente bisogno.

Scalabilità verticale

Tornando alla precedente figura, concentriamoci sui parametri relativi alla scalabilità verticale:

  • tutto viene misurato in cloudlet, come anticipato in una lezione precedente. Sarà questa, infatti, l’unità di misura di riferimento per le risorse impiegate. Ogni cloudlet è costituito da 128 MB di RAM e 400 Mhz di CPU;
  • viene fissato un numero massimo di cloudlet utilizzabili, a tutela del cliente che può quindi limitare i costi da sostenere. Nella figura precedente, il limite superiore è fissato a 8 cloudlet per un totale di 1 GB di RAM e di 3.2 Ghz di CPU;
  • lo slider può essere regolato per indicare quanti sono i cloudlet reserved, ovvero quelli che il sistema impiegherà sempre. I rimanenti cloudlet dynamic verranno usati dall’applicazione in caso di alto carico. Il cliente pagherà quindi sempre l’uso dei cloudlet reserved, mentre quelli dynamic saranno soggetti a costi solo in caso di effettivo sfruttamento.

Al variare di tali parametri verranno aggiornati i servizi, unitamente al costo orario mostrato nella parte destra del pannello della topologia.

Scalabilità orizzontale

La scalabilità orizzontale si estrinseca essenzialmente nello specificare quante istanze vogliamo che interpretino il ruolo del componente selezionato.

Nella figura precedente è selezionata una sola istanza, e questo valore può essere modificato con i pulsanti laterali riportanti le etichette + e -. Si noti anche che esistono due modalità che permettono di abilitare le opzioni di scalabilità orizzontale, selezionabili mediante un menu a tendina:

  • Stateful: copia il servizio in esecuzione comprendendo tutti i file presenti al suo interno. In pratica, avremo lo “stato” dell’istanza replicato nelle sue copie;
  • Steteless: è una modalità più veloce ma non sempre idonea, che replica il servizio in questione a partire dall’immagine originale senza riprodurre lo stato che il componente ha acquisito nel corso della sua attività.

Lo scalamento orizzontale non è automatico di default, ma è possibile impostare la modalità autoscaling tramite la finestra Settings.

Una volta entrati in quest’ultima sezione, si può accedere al pannello che ci interessa selezionando Auto Horizontal Scaling nella sezione Monitoring. Troveremo qui un comando Add che permette di immettere un nuovo componente nella modalità di scalamento automatico.

Figura 2. Configurazione dell’autoscaling orizzontale su Jelastic (click per ingrandire)Configurazione dell’autoscaling orizzontale su Jelastic

Anche questo pannello è ricco di opzioni, rimanendo comunque piuttosto intuitivo, in linea con lo stile di Jelastic.

In alto, dal menu a tendina, possiamo selezionare la componente cui applicare il meccanismo: nel nostro caso, si chiama “App Server”.

Più in basso due sotto-pannelli sono dedicati, rispettivamente, all’aumento di nodi in caso di picco degli accessi, e alla loro riduzione in caso di una significativa diminuzione del carico.

In entrambi i casi si possono indicare delle soglie – minima per l’aumento di nodi, massima per la riduzione – e l’intensità dello scalamento che ci interessa.

Inoltre, nella parte inferiore del pannello, vediamo un controllo switch con cui indicare se si desidera ricevere notifiche via mail.

Sicurezza

Passando alla tematica della sicurezza, possiamo dire che nel web tutto ciò che la riguarda ruota intorno a SSL e certificati. Con tali termini, intendiamo essenzialmente uno strato di crittografia stretto attorno alle transazioni HTTP.

Fortunatamente, in Jelastic non servirà conoscere i dettagli del protocollo in quanto la messa in sicurezza delle applicazioni web viene offerta insieme alle nostre applicazioni in tre modalità diverse:

  • Certificati SSL Built-in: il modo più veloce in assoluto, fornisce sicurezza in tempo zero con la massima praticità. C’è però da dire che non è ideale per applicazioni in produzione in quanto non è compatibile con l’attivazione di un indirizzo IP pubblico ed è associabile solo al dominio principale dell’environment;
  • Let’s Encrypt: si tratta di un add-on che integra le funzionalità di Let’s Encrypt, autorità di certificazione libera che offre certificati SSL, gratuiti e riconosciuti nel mondo;
  • Certificati SSL personalizzati: viene offerto un ambiente completo per definire i propri certificati secondo personali esigenze, domini e disponibilità.

Ti consigliamo anche