Shopify vs Magento: Perspektywa programisty

Opublikowany: 2019-04-23

Próbując podjąć decyzję między Shopify a Magento, często słyszysz, że Shopify to rozwiązanie hostowane, podczas gdy Magento to oprogramowanie typu open source. Jest to często wymieniane jako kluczowa różnica między Shopify a Magento. Hostowane rozwiązanie zwalnia Cię z konieczności instalowania i hostowania sklepu internetowego, ale oprogramowanie typu open source pozwala na większy stopień dostosowywania.

Ale co to tak naprawdę oznacza w praktyce dla programistów i jak ten wybór wpływa na sprzedawców i ich klientów?

Bezpieczeństwo informacji

W świecie Magento każdy sklep internetowy to własna, niezależna instalacja oprogramowania Magento. Istnieje około 200 000 sklepów obsługujących Magento i wszystkie mają wiele różnych wersji, modułów, poprawek i dostosowań.

Magento jest oprogramowaniem typu open source, co oznacza, że ​​jego kod (we wszystkich wersjach i łatach) jest publicznie dostępny do przeglądania online. To, w połączeniu z faktem, że na wolności istnieje ponad 200 000 sklepów Magento, z których wszystkie obsługują poufne dane klientów i płatności, sprawia, że ​​Magento jest niezwykle atrakcyjnym celem dla złośliwych aktorów, którzy chcą znaleźć i wykorzystać luki w zabezpieczeniach oprogramowania.

Gdy zespół Magento wyda łatkę bezpieczeństwa, każdy sklep Magento musi zostać zaktualizowany osobno, a zapewnienie tego jest obowiązkiem każdego sprzedawcy. Proces ten często komplikuje fakt, że sklepy Magento mogą się tak bardzo różnić pod względem implementacji. Aktualizacja, która została pomyślnie zastosowana w jednym sklepie, może łatwo spowodować problemy po zastosowaniu w innym sklepie z powodu różnic w modułach, motywach lub lokalnych dostosowaniach innych firm.

Dla sprzedawców i programistów może to spowodować duże i nieoczekiwane obciążenie pracą, jak w przypadku aktualizacji zabezpieczeń SUPEE-6788 Magento. Ta aktualizacja załatała kilka luk w zabezpieczeniach Magento, ale także zepsuła kompatybilność wsteczną z setkami popularnych modułów społecznościowych. Oprócz zastosowania poprawki bezpieczeństwa wszystkie moduły społeczności, których dotyczy problem, musiałyby zostać zaktualizowane w celu zapewnienia zgodności. Dało to programistom trudny wybór, czy czekać, aż dostawcy opublikują zaktualizowane wersje ich modułów społecznościowych, czy ręcznie aktualizować te moduły samodzielnie. Jeśli czekają na dostawców, ich sklep Magento pozostaje podatny na ataki; jeśli ręcznie zaktualizują te moduły, kod modułu nie będzie zsynchronizowany z wersją dostawcy, potencjalnie komplikując przyszłe aktualizacje.

I nie wszystkie luki w zabezpieczeniach są sobie równe. Weźmy na przykład SUPEE-5344, powszechnie określany jako „błąd kradzieży sklepowej”, lukę Magento, która umożliwiła atakującym uzyskanie dostępu administratora do sklepu i pełnego dostępu do jego bazy danych. Ryzyko, jakie podejmujesz, nie instalując regularnie łat w sklepie Magento, jest niezwykle wysokie, a czasami skomplikowany i kosztowny proces stosowania łatek bezpieczeństwa spowodował, że wiele sklepów Magento pozostaje niezałatanych i podatnych na ataki do dziś.

Odkąd przeszedłem na programowanie na platformie Shopify Plus, nie musiałem tracić czasu na łatanie sklepów Shopify pod kątem luk w zabezpieczeniach. Jest to jedna z największych zalet wyboru rozwiązania hostowanego w porównaniu z oprogramowaniem typu open source. Platforma i wszystkie poufne dane są hostowane i zabezpieczane przez Shopify, spółkę notowaną na giełdzie o wartości wielu miliardów dolarów.

Shopify bierze na siebie odpowiedzialność za aktualizowanie swojej platformy i zabezpieczanie Twoich danych, dzięki czemu programiści mogą poświęcić więcej czasu na projekty, które pomogą sprzedawcom osiągnąć ich cele biznesowe.

Hosting, ruch internetowy, bazy danych i skalowanie

skalowanie_migracji

W testach A/B Amazon stwierdził kiedyś, że 500-milisekundowe opóźnienie w szybkości ładowania strony spowodowało 5% spadek sprzedaży. Google podobnie stwierdził, że 500-milisekundowe opóźnienie spowodowało 20% spadek ruchu w wyszukiwarce i przychodów z reklam oraz zabiło zadowolenie użytkowników.

Optymalizacja prędkości ładowania strony jest rzeczywiście bardzo ważna.

To kolejny obszar, w którym hostowane rozwiązania e-commerce, takie jak Shopify, naprawdę błyszczą. Twój sklep internetowy i wszystkie powiązane media są hostowane przez Shopify, a ich model biznesowy oznacza, że ​​Shopify odczuwa taką samą presję jak Amazon, aby Twoje strony ładowały się szybko, aby zmaksymalizować współczynniki konwersji. Twój sklep internetowy jest zawsze dostępny i bardzo szybki, a sprzedawcy ani ich programiści nigdy nie muszą się tym przejmować.

Pracując jako programista Magento, ciągle myślisz o szybkości ładowania strony i obciążeniu bazy danych.

Magento to bardzo duża baza kodów składająca się z tysięcy plików i milionów linii kodu. Przechowuje konfiguracje systemu, modułu i układu w systemie plików jako duże pliki XML, których analiza jest kosztowna obliczeniowo. Implementuje model przechowywania danych Entity-Attribute-Value, rozkładając powiązane dane na wiele różnych tabel w bazie danych, co wymaga skomplikowanych i kosztownych zapytań do bazy danych, nawet w przypadku prostych rzeczy, takich jak pobieranie danych produktu. Wszystko to sprawia, że ​​Magento jest jedną z najtrudniejszych platform do hostowania i skalowania, a wraz ze wzrostem ruchu w Twojej witrynie rozwiązania tych wyzwań stają się coraz bardziej złożone.

Aby przyspieszyć działanie w środowisku produkcyjnym, Magento implementuje wiele warstw pamięci podręcznej na poziomie aplikacji, w tym pamięci podręczne do konfiguracji systemu, układu XML, blokowego wyjścia HTML i generowania pełnych stron. Oznacza to, że jako programista musisz upewnić się (poprzez uważne rozważenie i przetestowanie), że wszystkie lokalne modyfikacje i moduły społecznościowe prawidłowo wykorzystują wszystkie te pamięci podręczne, ponieważ nawet pojedyncze unieważnienie pamięci podręcznej może mieć dramatyczny wpływ na szybkość ładowania strony.

Dla sprzedawcy wszystko to przekłada się na wzrost ogólnych kosztów rozwoju i hostingu oraz zauważalnie wolniejsze ładowanie strony w większości przypadków.

Rozwój, technologia i zasoby

ramy_migracyjne

Jeśli chodzi o rozwój, podstawową różnicą między Magento i Shopify jest to, że Magento to monolityczna platforma e-commerce, podczas gdy Shopify to hostowana platforma współpracująca z szeroką gamą usług zewnętrznych.

Podczas tworzenia dla Magento cała Twoja aktywność programistyczna odbywa się w jego ramach; dodajesz i modyfikujesz kod w ramach tych ram, aby rozszerzyć i zmodyfikować jego funkcjonalność. Cały Twój kod wywodzi się z rdzenia Magento, który wykorzystuje predefiniowany zestaw technologii i ściśle reguluje sposób, w jaki z nich korzystasz.

Jako programista Magento piszesz zorientowane obiektowo PHP dziedziczące z bibliotek Zend na bazie danych MySQL, z Prototype i czasami jQuery na froncie. Jest to bardzo skomplikowana i wysoce specyficzna platforma, a osiągnięcie produktywności w niej może wymagać wielu specjalistycznych szkoleń. Zwiększa to koszty i stopień trudności w zatrudnianiu i wprowadzaniu na pokład.

Tworząc dla Shopify, rozszerzasz i modyfikujesz jego funkcjonalność, korzystając z kombinacji silnika szablonów Liquid, skryptów Shopify, webhooków, zestawów SDK JavaScript oraz tworząc niestandardowe aplikacje i usługi, które współpracują z platformą Shopify na zewnątrz.

Shopify zapewnia potężny interfejs API REST, który umożliwia aplikacjom zewnętrznym bogaty dostęp do platformy Shopify i daje programistom swobodę podejmowania większej liczby własnych decyzji technologicznych. Możesz tworzyć dla platformy Shopify przy użyciu dowolnego języka programowania lub frameworka, który Ci się podoba. Zapewnienie programistom i agencjom elastyczności w wyborze bardziej nowoczesnych i znanych technologii zapewnia wiele korzyści, w tym zwiększoną wydajność programistów i możliwość zatrudniania ze znacznie większej puli talentów.

Co to wszystko oznacza dla handlowców

Wybór odpowiedniego rozwiązania e-commerce dla Twojej firmy to coś więcej niż tylko listy funkcji i pola wyboru. Ważne jest również, aby zastanowić się, jaki wpływ Twoja decyzja będzie miała na cykl rozwoju, na bezpieczeństwo danych Twoich klientów oraz na możliwość skalowania platformy w celu dopasowania do rozwoju Twojej firmy.

Dzięki hostowanemu rozwiązaniu, takiemu jak Shopify, Twoje poufne dane będą generalnie bezpieczniejsze. Twój sklep będzie miał niezmiennie krótkie czasy ładowania strony, będzie skalował się automatycznie i będzie miał niemal nieograniczoną pojemność do pochłaniania nagłych wzrostów ruchu w sieci. Co ważne, twoi programiści będą mogli pracować wydajniej, korzystając z nowoczesnych i znanych technologii, zmniejszając koszty rozwoju i pozwalając, aby większa część budżetu została przeznaczona na zwiększenie sprzedaży i osiągnięcie celów biznesowych.