Statistiche
Utenti : 3Contenuti : 57
Link web : 6
Tot. visite contenuti : 18820
Login
Chi è online
4 visitatori online| Scalabilità e le performance di Magento |
|
|
|
|
Scalabilità e le performance di Magento La scalabilità e le perfomance sono un punto chiave per ogni applicazione di tipo “enterprise”. Un'applicazione di commercio elettronico deve essere veloce , semplice da utilizzare e scalabile su migliaia di ordini al giorno.Questo è ancora più vero quando si parla di Magento Commerce. Magento è apprezzato dai nostri clienti per le sue funzionalità e per la possibilità di integrazione e di estensione. Molto spesso i nostri clienti sono preoccupati per le performance di una piattaforma che deve scalare su migliaia di ordini al giorno e sulla manutenibilità delle modifiche al catalogo. Sulla scalabilità del sistema le preoccupazioni vengono spesso dalle versioni precedenti di Magento che soffrivano di prestazioni basse soprattutto sul lato amministrativo. Le ultime versioni di Magento Commerce sono decisamente migliorate ma è necessario comprendere come ottimizzare l'ambiente in cui Magento è ospitato per sfruttare al meglio un'infrastruttura estendibile e ricca di funzionalità come è il sistema di commercio elettronico Magento. Sul lato server abbiamo quindi seguito alcune “best pratics” suggerite da Vision Software in un post sul blog ufficiale di Magento. Le prestazioni dei nostri ambienti sono aumentate notevolmente soprattutto sul lato “front – end”. Riportiamo pertanto quelle tecniche che ci sono servite per aumentare notevolemente le prestazioni dei nostri server dedicati al commercio elettronico. Due approcci di ottimizzazione: Back-end e front-end Nell'affrontare i progetti di commercio elettronico abbiamo cercato da un lato di ottimizzare le prestazioni dei nostri server per ospitare sistemi di commercio elettronico , acquistando da Seeweb Srl server dedicati a Magento. Dall'altro lato abbiamo cercato di estendere e migliorare il sistema di back order che a nostro avviso è fondamentale per la riuscita di ogni progetto di commercio elettronico. Per la parte di “back-end” sfruttando l'architettura API magento , abbiamo realizzato un software ad-hoc che permette una gestione più veloce di il processo di back order , dall'invio dell'ordine al suo inserimento nel processo gestionale. A breve rilasceremo su questo sito una parte “open source” del nostro sistema di gestione back-end “magento explorer”. Abbiamo studiato questo sistema per permettere un'integrazione facile e intuitiva con i sistemi di back-end dei nostri clienti , per evitare duplicazioni di dati e di mansioni. Spesso infatti i dati dei prodotti risiedono nei sistemi gestionali dei clienti e tutta la gestione del back-end dell'ordine è fatta nel sistema gestionale. Magento Explorer permette di connettere attraverso le Magento API i sistemi gestionali al sistema di Ecommerce Magento , evitando in questo modo duplicazione di dati e di mansioni. Ma veniamo al dunque. Come si possono aumentare le prestazioni di Magento? Esistono vari metodi il primo è quello di intervenire sulla cache di Mysql. Mysql ha una cache per le query che permette di memorizzare il risultato delle select query per un determinato periodo di tempo. Questa funzione non è impostata di default quando si installa Mysql. Questo perchè le performance dipendono dal tipo di applicazione che si usa. Nel caso di Magento commerce questa impostazione è molto importante e permette di aumentare di molto le prestazioni. Le impostazioni sono le seguenti: ------------------------------------------ query_cache_type=1 query_cache_size=64M ------------------------------------------ Ci sono altre impostazioni che possono aumentare le prestazioni di Mysql. Questo link può essere un buon punto di partenza : http://www.mysqlperformanceblog.com/2006/07/27/mysql-query-cache/ Abilitare “Expires Header” I browser utilizzano la cache in modo intensivo e possono salvare nella loro cache molti elementi che poi non devono essere più richiesti al server. Questo permette di velocizzare notevolmente la parte di “fron end” del sistema di commercio elettronico Magento Commerce. Il problema per i browser è capire quando i contenuti devono essere presi dalla cache o richiesti al server. Per capire quando chiedere al server o alla propria cache interna i browser utilizzano le intestazioni HTTP Expires e Cache-Control. Il file .htaccess di Magento è già configurato per essere aderente alle raccomandazioni di performance definite da Yahoo ma non sono abilitate di default. Per abilitarle occorre inserire le linee seguenti al file di configurazione di apache: ExpiresActive On Se non si ha accesso alle configurazioni del server è possibile aggiungere le configurazioni al file .htaccess ma occorre fare attenzione nel momento in cui si aggiorna Magento perchè queste informazioni andranno perdute. Alcuni accorgimenti avanzati per aumentare scalabilità e performance Abilitare il Block Caching Magento può eseguire una cache dell'output dei blocchi delle pagine del sistema. Quanto un utente richiede lo stesso blocco , viene ritornato l'output precedentemente calcolato senza fare una nuova richiesta al database e chiamare di nuovo la classe model. Questo è molto utile per quelle parti del sistema Magento Commerce che non cambiano troppo spesso e che richiedono molte risorse di calcolo come ad esempio le pagine di categorie. Il block caching non è impostato di default perchè occorre impostare la giusta cache per le esigenze specifiche del sistema. Si consiglia di leggere questa pagina del wiki di Magento : http://www.magentocommerce.com/wiki/development/block_cache_and_html_ouput E' noto che con questa modifica il numero di sessioni che il server in cui è ospitato Magento Commerce possono duplicare. Fare meno chiamate HTTP sul tema Magento Troppe chiamate HTTP per caricare una singola pagina possono rappresentare un vero collo di bottiglia sul caricamento della pagina.Anche abilitando il “keep-alive” è sempre più lento caricare molte immagini piuttosto che caricare un file più grosso ma compresso che contiene tutte le immagini. Attraverso la tecnica dell “Image Sprite” ( un paio di buoni link per iniziare sono questi: http://paulstamatiou.com/how-to-optimize-your-site-with-image-sprites , http://www.alistapart.com/articles/sprites/) è possibile inserire in un unico file tutte le immagini statiche del tema quali i bottoni , le icone etc. Tutto questo presuppone la conoscenza di alcune tecniche CSS. Conclusioni Magento Commerce è uno strumento molto potente che richiede delle risorse adeguate sia in termini di hardware che di banda. Per processare migliaia di ordini al giorno occorre ottimizzare e scalare il sistema. Le tecniche sopra viste sono state da noi utilizzate con successo e abbiamo visto aumentare le performance del sistema di un ordine del 150%. In linea generale consigliamo ai clienti che vogliono un commercio elettronico scalabile e dalle alte perfomance di ricorrere a risorse dedicate e ad un'integrazione con i loro gestionali. E' infatti del tutto evidente che l'introduzione di un nuovo processo aziendale deve comportare il minimo "stravolgimento" possibile nelle logiche di gestione degli ordini soprattutto per quelle aziende che si affacciano per la prima volta a soluzioni di commercio elettronico open source. Magento offre molte funzionalità ed è estendibile. Occorre tuttavia ricorrere ad una consulenza organizzativa che va spesso al di la dello strumento utilizzato. Studiozeropixel fornisce ai propri clienti consulenza organizzativa per valutare al meglio l'impatto di un sistema di commercio elettronico all'interno dell'azienda. Le nostre conoscenze in campo applicativo e gestionale ci permettono di seguire il cliente in tutte le fasi di progettazione e sviluppo del sistema di Commercio Elettronico. Segnala questa pagina |




