Scegliere un servizio di server - hosting adatto alla piattaforma Magento è indispensabile per rendere l’esperienza di navigazione dell’e-commerce o marketplace che sia, piacevole e gratificante all’utente che lo visita.
Questo è un aspetto fondamentale per migliorare il tasso di conversione, le vendite e fidelizzare i clienti.
E’fondamentale che gli utenti non abbandonino troppo presto il sito perché magari risulta lento a caricare le pagine.
La scelta si basa su una serie di fattori complessi che riguardano ad esempio, come viene allestito e ottimizzato il server come ad esempio Varnish, Redis, Nginx, sistemi di full page cache che consentono un miglioramento ulteriore delle performance di Magento. Il carico di lavoro che deve gestire ovvero quanti utenti visiteranno il sito, quante richieste effettueranno e soprattutto quanti prodotti si prevede di mettere in vendita.
A seconda di che progetto stiamo realizzando avremo quantità di prodotti differenti ad esempio un Magento Marketplace probabilmente dovrà gestire molti più prodotti di un semplice Magento E-commerce, che né avrà di meno.
In buona sostanza la scelta di un server dipende da quanti articoli si dovranno gestire, di quale volume di traffico atteso ovvero di quanti utenti giorno si prevedono sul sito e quindi avremo bisogno di un server con più o meno risorse.
E’ bene sapere che la piattaforma Magento è piuttosto esigente in termini di risorse “macchina”!
Detta anche in altre parole Magento necessita di un server con capacità di calcolo medio/grandi per poter esprimere al meglio le potenzialità del proprio software. Quindi è strategico dedicare del tempo per fare delle simulazioni di carico di lavoro standard e picchi di carico attesi, in modo tale da poter scegliere un server dimensionato alle aspettative.
La “velocità” di un sistema software è un concetto fumoso. È legata al tempo che il sistema spende a gestire le richieste ricevute, ma può fare riferimento a vari fenomeni misurabili, ognuno dei quali entra in gioco quando si analizza il sistema da una diversa angolazione.
Di solito, le due misure usate per definire la velocità sono il tempo di elaborazione e il throughput.
Il primo è il tempo che il software impiega per elaborare una richiesta e produrre una risposta. Il secondo, che si potrebbe tradurre con “capacità”, è il numero di richieste che vengono elaborate nell’unità di tempo.
Il software che elabora le richieste viene eseguito dai core della CPU di uno o più computer. Le due caratteristiche che determinano la potenza di calcolo del sistema sono, quindi, il numero di core a disposizione e la frequenza dei core.
Ogni richiesta ha un certo “peso” in termini di calcoli necessari e ogni core valuta una richiesta alla volta, di conseguenza il tempo di elaborazione dipende dalla “potenza” di un singolo core, ossia dalla sua frequenza.
Il throughput, invece, è influenzato dal numero di core disponibili.
Ciascuna richiesta corrisponde alla visita di una pagina da parte di un visitatore: aumentando i core aumenteranno i visitatori serviti nello stesso istante, e ciascuno di essi dovrà attendere un tempo tanto minore quanto più alta è la frequenza dei core.
Per fare un’analogia, potremmo paragonare un sistema software ad un Ufficio Postale. Ogni utente corrisponde ad una richiesta, mentre gli sportelli con i loro operatori sono analoghi ai core.
Posto che ogni utente viene servito da un singolo sportello, il tempo allo sportello dipenderà dal “peso” delle pratiche (il loro numero e la loro complessità) e dalla “potenza” dello sportello (abilità ed esperienza dell’operatore e validità dei mezzi tecnici a disposizione).
Il tempo allo sportello non sarà invece influenzato dal numero di sportelli disponibili, ciascuno dei quali sarà impegnato a servire un altro utente.
Nell’ambito del software web, abbiamo a disposizione due grandi categorie di soluzioni per eseguire un’applicazione: quelle basate su server e quelle basate su cloud (dette anche serverless, “senza server”).
Le soluzioni basate su server consistono nell’uso di singoli computer ciascuno con un determinato numero di core. Le soluzione cloud, invece, consentono di scegliere in modo arbitrario il numero di core da usare, senza i limiti fisici che un server ha.
Un cloud è come un Ufficio Postale in cui si possono aggiungere e togliere sportelli al volo per adeguarsi al numero di utenti e far sì che ciascuno venga servito al più presto.
La grande flessibilità del cloud ha un costo: a parità di potenza di calcolo erogata, uno o più server sono meno costosi di un cloud.
Per questo è utile ricorrere al cloud in presenza di traffico con grande variabilità o con periodi di picco, che però può essere misurato solo dopo il lancio di un sito, analizzando i dati reali.
Esistono anche soluzioni Server più complesse che hanno il preciso scopo di cercare di garantire una maggior continua operativa possibile dell’e-commerce.
I piani di disaster recovery entrare in funzione in caso di guasti tecnici, grazie alla ridondanza dei server ovvero l’utilizzo di più unità hardware per far si che in caso di guasto dell’unità principale, entri in funzione la seconda senza quindi discontinuità del servizio.
Come è facile intuire quale sia la soluzione perfetta/ideale per l’Hosting Magento dipende da progetto e progetto.
Certo è che sarà importante avvalersi di sistemisti esperti di Magento per decidere la miglior infrastruttura tecnologica disponibile al momento anche in base al budget dedicato.