Shopify vs Magento: a perspectiva de um desenvolvedor

Publicados: 2019-04-23

Ao tentar tomar a decisão entre Shopify e Magento, muitas vezes você ouvirá que Shopify é uma solução hospedada, enquanto Magento é um software de código aberto. Isso é frequentemente citado como a principal diferença entre Shopify e Magento. A solução hospedada evita que você precise instalar e hospedar sua loja online, mas o software de código aberto permite um maior grau de personalização.

Mas o que isso realmente significa para os desenvolvedores na prática e como essa escolha afeta os comerciantes e seus clientes?

Segurança da informação

No mundo Magento, cada loja online é sua própria instalação independente do software Magento. Existem cerca de 200.000 lojas executando o Magento, e todas elas estão executando muitas versões, módulos, patches e personalizações diferentes.

O Magento é um software de código aberto, o que significa que seu código (em todas as versões e patches) está disponível publicamente para qualquer pessoa visualizar online. Isso, juntamente com o fato de que existem mais de 200.000 lojas Magento em estado selvagem, lidando com dados confidenciais de clientes e pagamentos, torna o Magento um alvo extremamente atraente para agentes mal-intencionados que buscam encontrar e explorar vulnerabilidades de segurança no software.

Quando um patch de segurança é lançado pela equipe Magento, cada loja Magento precisa ser atualizada separadamente, e é responsabilidade de cada comerciante garantir que isso aconteça. Esse processo geralmente é complicado pelo fato de que as lojas Magento podem variar drasticamente em sua implementação. Uma atualização aplicada com êxito a uma loja pode facilmente causar problemas quando aplicada a outra loja devido a diferenças em módulos, temas ou personalizações locais de terceiros.

Para comerciantes e desenvolvedores, isso pode criar uma carga de trabalho grande e inesperada, como no caso da atualização de segurança SUPEE-6788 do Magento. Esta atualização corrigiu várias vulnerabilidades no Magento, mas também quebrou a compatibilidade com centenas de módulos populares da comunidade. Além de aplicar o patch de segurança, todos os módulos afetados da comunidade precisariam ser atualizados para compatibilidade. Isso deu aos desenvolvedores a difícil escolha de esperar que os fornecedores lançassem versões atualizadas de seus módulos de comunidade ou atualizar manualmente esses módulos. Se eles esperarem pelos fornecedores, sua loja Magento permanecerá vulnerável; se eles atualizarem manualmente esses módulos, o código do módulo ficará fora de sincronia com a versão do fornecedor, o que pode complicar futuras atualizações.

E nem todas as vulnerabilidades de segurança são criadas iguais. Tomemos, por exemplo, o SUPEE-5344, comumente referido como o “bug do furto”, uma vulnerabilidade do Magento que permitia aos invasores obter acesso de administrador a uma loja e acesso total ao seu banco de dados. O risco que você corre por não corrigir regularmente sua loja Magento é extremamente alto, e o processo às vezes complicado e caro de aplicar patches de segurança resultou em muitas lojas Magento permanecendo sem patches e vulneráveis ​​até hoje.

Desde que mudei para o desenvolvimento na plataforma Shopify Plus, não precisei perder tempo corrigindo as lojas Shopify em busca de vulnerabilidades de segurança. Essa é uma das maiores vantagens de escolher uma solução hospedada em vez de um software de código aberto. A plataforma e todos os dados confidenciais são hospedados e protegidos pela Shopify, uma empresa multibilionária de capital aberto.

A Shopify assume a responsabilidade de manter sua plataforma atualizada e seus dados seguros, permitindo que os desenvolvedores concentrem mais tempo em projetos que ajudarão os comerciantes a atingir suas metas de negócios.

Hospedagem, Tráfego Web, Bancos de Dados e Dimensionamento

migration_scaling

Em testes A/B, a Amazon descobriu certa vez que um atraso de 500 milissegundos na velocidade de carregamento da página causava uma queda de 5% nas vendas. Da mesma forma, o Google descobriu que um atraso de 500 milissegundos causava uma queda de 20% no tráfego de pesquisa e na receita de anúncios e matava a satisfação do usuário.

Otimizar as velocidades de carregamento da página é muito importante.

Essa é outra área em que as soluções de comércio eletrônico hospedadas, como o Shopify, realmente se destacam. Sua loja online e todas as mídias associadas são hospedadas pela Shopify, e seu modelo de negócios significa que a Shopify está sentindo a mesma pressão que a Amazon para manter suas páginas carregando rapidamente para maximizar as taxas de conversão. Sua loja online está sempre disponível e muito rápida, e nunca é uma preocupação para os comerciantes ou seus desenvolvedores.

Trabalhando como desenvolvedor Magento, a velocidade de carregamento da página e o carregamento do banco de dados estão constantemente em sua mente.

Magento é uma base de código muito grande composta por milhares de arquivos e milhões de linhas de código. Ele armazena configurações de sistema, módulo e layout no sistema de arquivos como grandes arquivos XML que são computacionalmente caros para analisar. Ele implementa o modelo Entity-Attribute-Value de armazenamento de dados, espalhando dados relacionados em muitas tabelas diferentes no banco de dados, necessitando de consultas de banco de dados complicadas e caras, mesmo para coisas simples como recuperar dados de produtos. Tudo isso torna o Magento uma das plataformas mais desafiadoras para hospedar e dimensionar e, à medida que o tráfego para seu site aumenta, as soluções para esses desafios tornam-se cada vez mais complexas.

Para tornar as coisas mais rápidas na produção, o Magento implementa muitas camadas de cache no nível do aplicativo, incluindo caches para configuração do sistema, layout XML, bloco de saída HTML e geração de página inteira. Isso significa que, como desenvolvedor, você deve garantir (por meio de consideração e teste cuidadosos) que todas as personalizações locais e módulos da comunidade utilizem adequadamente todos esses caches, porque até mesmo uma única invalidação de cache pode ter um impacto dramático nas velocidades de carregamento da página.

Para o comerciante, tudo isso se traduz em um aumento nos custos gerais de desenvolvimento e hospedagem e em tempos de carregamento de página visivelmente mais lentos na maioria dos casos.

Desenvolvimento, Tecnologia e Recursos

migration_frameworks

Em termos de desenvolvimento, a principal diferença entre o Magento e o Shopify é que o Magento é uma estrutura monolítica de comércio eletrônico, enquanto o Shopify é uma plataforma hospedada que interage com uma ampla variedade de serviços externos.

Ao desenvolver para Magento, toda a sua atividade de desenvolvimento está acontecendo dentro de sua estrutura; você adiciona e modifica o código dentro dessa estrutura para estender e modificar sua funcionalidade. Todo o seu código se estende do núcleo do Magento, que utiliza um conjunto predefinido de tecnologias e regula rigorosamente como você as usa.

Como desenvolvedor Magento, você escreve PHP orientado a objeto herdado de bibliotecas Zend sobre um banco de dados MySQL, com Prototype e às vezes jQuery no frontend. É uma estrutura muito complicada e altamente especificada, e pode exigir muito treinamento especializado para se tornar produtivo nela. Isso adiciona custo e um grau de dificuldade para contratação e integração.

Ao desenvolver para a Shopify, você estende e modifica sua funcionalidade usando uma combinação do mecanismo de modelo Liquid, Scripts da Shopify, webhooks, SDKs de JavaScript e criando aplicativos e serviços personalizados que interagem externamente com a plataforma da Shopify.

A Shopify fornece uma poderosa API REST, que permite acesso avançado de aplicativos externos à plataforma da Shopify e oferece aos desenvolvedores a liberdade de tomar mais decisões sobre sua própria tecnologia. Você pode desenvolver para a plataforma Shopify usando qualquer linguagem de programação ou estrutura que desejar. Oferecer aos desenvolvedores e agências a flexibilidade de selecionar tecnologias mais modernas e familiares confere muitos benefícios, incluindo maior eficiência do desenvolvedor e a capacidade de contratar de um pool de talentos muito maior.

O que tudo isso significa para os comerciantes

Escolher a solução de comércio eletrônico certa para sua empresa é mais do que apenas listas de recursos e caixas de seleção. É importante também considerar o impacto que sua decisão terá no ciclo de desenvolvimento, na segurança dos dados de seus clientes e em sua capacidade de dimensionar a plataforma para atender ao crescimento de seus negócios.

Com uma solução hospedada como Shopify, seus dados confidenciais geralmente estarão mais seguros. Sua loja terá tempos de carregamento de página consistentemente rápidos, escalará automaticamente e terá uma capacidade quase ilimitada para absorver rajadas repentinas no tráfego da web. E o mais importante, seus desenvolvedores serão capacitados para trabalhar com mais eficiência usando tecnologias modernas e familiares, reduzindo seus custos de desenvolvimento e permitindo que mais de seu orçamento seja direcionado para aumentar as vendas e atingir suas metas de negócios.