Shopify vs Magento: la prospettiva di uno sviluppatore

Pubblicato: 2019-04-23

Quando provi a prendere una decisione tra Shopify e Magento, sentirai spesso che Shopify è una soluzione ospitata, mentre Magento è un software open source. Questo è spesso citato come la differenza chiave tra Shopify e Magento. La soluzione ospitata ti solleva dalla necessità di installare e ospitare il tuo negozio online, ma il software open source ti consente un maggior grado di personalizzazione.

Ma cosa significa realmente questo per gli sviluppatori nella pratica e in che modo questa scelta influisce sui commercianti e sui loro clienti?

Informazioni di sicurezza

Nel mondo Magento, ogni negozio online è la propria installazione indipendente del software Magento. Ci sono circa 200.000 negozi che eseguono Magento e tutti eseguono molte versioni, moduli, patch e personalizzazioni differenti.

Magento è un software open source, il che significa che il suo codice (in tutte le versioni e patch) è pubblicamente disponibile per chiunque possa visualizzarlo online. Questo, unito al fatto che ci sono oltre 200.000 negozi Magento in circolazione che gestiscono tutti i dati sensibili dei clienti e dei pagamenti, rende Magento un obiettivo estremamente attraente per gli attori malintenzionati che cercano di trovare e sfruttare le vulnerabilità di sicurezza nel software.

Quando una patch di sicurezza viene rilasciata dal team di Magento, ogni negozio Magento deve essere aggiornato separatamente ed è responsabilità di ciascun commerciante garantire che ciò avvenga. Questo processo è spesso complicato dal fatto che i negozi Magento possono variare notevolmente nella loro implementazione. Un aggiornamento che si applica correttamente a un negozio potrebbe facilmente causare problemi se applicato a un altro negozio a causa di differenze nei moduli, nei temi o nelle personalizzazioni locali di terze parti.

Per commercianti e sviluppatori, questo può creare un carico di lavoro ampio e inaspettato, come nel caso dell'aggiornamento di sicurezza SUPEE-6788 di Magento. Questo aggiornamento ha corretto diverse vulnerabilità in Magento, ma ha anche interrotto la retrocompatibilità con centinaia di popolari moduli della community. Oltre ad applicare la patch di sicurezza, tutti i moduli della comunità interessati dovrebbero essere aggiornati per compatibilità. Ciò ha dato agli sviluppatori la difficile scelta di attendere che i fornitori rilasciassero versioni aggiornate dei loro moduli della comunità o di aggiornare manualmente quei moduli da soli. Se aspettano i venditori, il loro negozio Magento rimane vulnerabile; se aggiornano manualmente quei moduli, il codice del modulo non è sincronizzato con la versione del fornitore, complicando potenzialmente futuri aggiornamenti.

E non tutte le vulnerabilità della sicurezza sono uguali. Prendiamo ad esempio SUPEE-5344, comunemente indicato come "bug del taccheggio", una vulnerabilità di Magento che ha consentito agli aggressori di ottenere l'accesso amministrativo a un negozio e l'accesso completo al suo database. Il rischio che corri non applicando regolarmente le patch al tuo negozio Magento è estremamente elevato e il processo a volte complicato e costoso di applicazione delle patch di sicurezza ha portato molti negozi Magento a rimanere senza patch e vulnerabili fino ad oggi.

Da quando sono passato allo sviluppo sulla piattaforma Shopify Plus, non ho dovuto perdere tempo ad applicare patch ai negozi Shopify per le vulnerabilità di sicurezza. Questo è uno dei maggiori vantaggi che deriva dalla scelta di una soluzione ospitata rispetto al software open source. La piattaforma e tutti i dati sensibili sono ospitati e protetti da Shopify, una società multimiliardaria quotata in borsa.

Shopify si assume la responsabilità di mantenere la propria piattaforma aggiornata e i tuoi dati al sicuro, consentendo agli sviluppatori di dedicare più tempo a progetti che aiuteranno i commercianti a raggiungere i loro obiettivi di business.

Hosting, traffico Web, database e ridimensionamento

migrazione_scaling

Nei test A/B, una volta Amazon ha scoperto che un ritardo di 500 millisecondi nella velocità di caricamento della pagina ha causato un calo delle vendite del 5%. Allo stesso modo, Google ha scoperto che un ritardo di 500 millisecondi ha causato un calo del 20% del traffico di ricerca e delle entrate pubblicitarie e ha ucciso la soddisfazione degli utenti.

L'ottimizzazione della velocità di caricamento della pagina è davvero molto importante.

Questa è un'altra area in cui le soluzioni di e-commerce ospitate come Shopify brillano davvero. Il tuo negozio online e tutti i media associati sono ospitati da Shopify e il loro modello di business significa che Shopify sente la stessa pressione di Amazon per mantenere le tue pagine caricate velocemente per massimizzare i tassi di conversione. Il tuo negozio online è sempre disponibile e molto veloce e non è mai un problema per i commercianti o i loro sviluppatori.

Lavorando come sviluppatore Magento, la velocità di caricamento della pagina e il caricamento del database sono costantemente nella tua mente.

Magento è una base di codice molto ampia composta da migliaia di file e milioni di righe di codice. Memorizza le configurazioni di sistema, modulo e layout nel file system come file XML di grandi dimensioni che sono computazionalmente costosi da analizzare. Implementa il modello di archiviazione dei dati Entity-Attribute-Value, distribuendo i dati correlati su molte tabelle diverse nel database, richiedendo query di database complicate e costose anche per cose semplici come il recupero dei dati di prodotto. Tutto ciò rende Magento una delle piattaforme più impegnative da ospitare e scalare, e man mano che il traffico verso il tuo sito cresce, le soluzioni a queste sfide diventano sempre più complesse.

Per rendere le cose più veloci in produzione, Magento implementa molti livelli di memorizzazione nella cache a livello di applicazione, incluse le cache per la configurazione del sistema, il layout XML, l'output HTML a blocchi e la generazione di pagine complete. Ciò significa che in qualità di sviluppatore, devi assicurarti (attraverso un'attenta considerazione e test) che tutte le personalizzazioni locali e i moduli della community utilizzino correttamente tutte queste cache, perché anche un singolo invalidamento della cache può avere un impatto notevole sulla velocità di caricamento della pagina.

Per il commerciante, tutto ciò si traduce in un aumento dei costi complessivi di sviluppo e hosting e tempi di caricamento delle pagine notevolmente più lenti nella maggior parte dei casi.

Sviluppo, tecnologia e risorse

framework_migrazione

In termini di sviluppo, la differenza principale tra Magento e Shopify è che Magento è un framework di e-commerce monolitico, mentre Shopify è una piattaforma ospitata che interagisce con un'ampia varietà di servizi esterni.

Quando sviluppi per Magento, tutta la tua attività di sviluppo avviene all'interno del suo framework; aggiungi e modifichi il codice all'interno di quel framework per estenderne e modificarne la funzionalità. Tutto il tuo codice si estende dal core di Magento, che utilizza un insieme predefinito di tecnologie e regola strettamente il modo in cui le usi.

Come sviluppatore Magento, scrivi PHP orientato agli oggetti ereditando dalle librerie Zend su un database MySQL, con Prototype e talvolta jQuery sul frontend. È un framework molto complicato e altamente specifico e può richiedere molta formazione specializzata per diventare produttivo al suo interno. Ciò aggiunge costi e un grado di difficoltà all'assunzione e all'onboarding.

Quando sviluppi per Shopify, estendi e modifichi le sue funzionalità utilizzando una combinazione di motore di modelli Liquid, script Shopify, webhook, SDK JavaScript e creando applicazioni e servizi personalizzati che interagiscono con la piattaforma Shopify esternamente.

Shopify fornisce una potente API REST, che consente alle applicazioni esterne un accesso completo alla piattaforma Shopify e offre agli sviluppatori la libertà di prendere più decisioni tecnologiche. Puoi sviluppare per la piattaforma Shopify utilizzando qualsiasi linguaggio di programmazione o framework che ti piace. Offrire agli sviluppatori e alle agenzie la flessibilità di scegliere tra tecnologie più moderne e familiari conferisce molti vantaggi, tra cui una maggiore efficienza degli sviluppatori e la possibilità di assumere da un pool di talenti molto più ampio.

Cosa significa tutto questo per i commercianti

La scelta della giusta soluzione di e-commerce per la tua azienda non riguarda solo elenchi di funzionalità e caselle di controllo. È importante considerare anche quale impatto avrà la tua decisione sul ciclo di sviluppo, sulla sicurezza dei dati dei tuoi clienti e sulla tua capacità di scalare la piattaforma per adeguarla alla crescita della tua attività.

Con una soluzione ospitata come Shopify, i tuoi dati sensibili saranno generalmente più sicuri. Il tuo negozio avrà tempi di caricamento delle pagine costantemente rapidi, si ridimensionerà automaticamente e avrà una capacità quasi illimitata di assorbire picchi improvvisi nel traffico web. E, cosa importante, i tuoi sviluppatori avranno la possibilità di lavorare in modo più efficiente utilizzando tecnologie moderne e familiari, riducendo i costi di sviluppo e consentendo a una parte maggiore del tuo budget di essere destinata all'aumento delle vendite e al raggiungimento dei tuoi obiettivi aziendali.