Shopify vs. Magento: Die Perspektive eines Entwicklers
Veröffentlicht: 2019-04-23Wenn Sie versuchen, die Entscheidung zwischen Shopify und Magento zu treffen, werden Sie oft hören, dass Shopify eine gehostete Lösung ist, während Magento Open-Source-Software ist. Dies wird oft als Hauptunterschied zwischen Shopify und Magento genannt. Die gehostete Lösung befreit Sie davon, Ihren Online-Shop installieren und hosten zu müssen, aber die Open-Source-Software ermöglicht Ihnen ein höheres Maß an Anpassbarkeit.
Aber was bedeutet das wirklich für Entwickler in der Praxis und wie wirkt sich diese Entscheidung auf Händler und ihre Kunden aus?
Informationssicherheit
In der Magento-Welt ist jeder Online-Shop eine eigene, unabhängige Installation der Magento-Software. Es gibt ungefähr 200.000 Geschäfte, die Magento ausführen, und sie alle führen viele verschiedene Versionen, Module, Patches und Anpassungen aus.
Magento ist Open-Source-Software, was bedeutet, dass sein Code (in allen Versionen und Patches) öffentlich für jedermann online einsehbar ist. Dies, zusammen mit der Tatsache, dass es über 200.000 Magento-Shops in freier Wildbahn gibt, die alle sensible Kunden- und Zahlungsdaten verarbeiten, macht Magento zu einem äußerst attraktiven Ziel für böswillige Akteure, die Sicherheitslücken in der Software finden und ausnutzen wollen.
Wenn ein Sicherheitspatch vom Magento-Team veröffentlicht wird, muss jeder Magento-Shop separat aktualisiert werden, und es liegt in der Verantwortung jedes Händlers, dies sicherzustellen. Dieser Prozess wird oft durch die Tatsache erschwert, dass Magento-Shops in ihrer Implementierung so stark variieren können. Ein Update, das erfolgreich auf einen Store angewendet wird, kann aufgrund von Unterschieden in Modulen, Designs oder lokalen Anpassungen von Drittanbietern leicht zu Problemen führen, wenn es auf einen anderen Store angewendet wird.
Für Händler und Entwickler kann dies zu einer großen und unerwarteten Arbeitsbelastung führen, wie im Fall des Sicherheitsupdates SUPEE-6788 von Magento. Dieses Update hat mehrere Sicherheitslücken in Magento gepatcht, aber auch die Abwärtskompatibilität mit Hunderten beliebter Community-Module unterbrochen. Zusätzlich zum Anwenden des Sicherheitspatches müssten alle betroffenen Community-Module aus Kompatibilitätsgründen aktualisiert werden. Dies gab Entwicklern die schwierige Wahl, entweder auf die Veröffentlichung aktualisierter Versionen ihrer Community-Module durch die Anbieter zu warten oder diese Module selbst manuell zu aktualisieren. Wenn sie auf die Anbieter warten, bleibt ihr Magento-Shop angreifbar; Wenn sie diese Module manuell aktualisieren, ist der Modulcode nicht mehr mit der Anbieterversion synchron, was zukünftige Upgrades möglicherweise erschwert.
Und nicht alle Sicherheitslücken sind gleich. Nehmen Sie zum Beispiel SUPEE-5344, allgemein als „Ladendiebstahl-Bug“ bezeichnet, eine Magento-Schwachstelle, die es Angreifern ermöglichte, Administratorzugriff auf einen Shop und vollen Zugriff auf seine Datenbank zu erhalten. Das Risiko, das Sie eingehen, wenn Sie Ihren Magento-Shop nicht regelmäßig patchen, ist extrem hoch, und der manchmal komplizierte und kostspielige Prozess der Anwendung von Sicherheitspatches hat dazu geführt, dass viele Magento-Shops bis heute ungepatcht und anfällig bleiben.
Seit ich auf der Shopify Plus-Plattform zur Entwicklung gewechselt bin, musste ich keine Zeit mehr damit verbringen, Shopify-Shops auf Sicherheitslücken zu patchen. Dies ist einer der größten Vorteile, die mit der Wahl einer gehosteten Lösung gegenüber Open-Source-Software einhergehen. Die Plattform und alle sensiblen Daten werden von Shopify, einem börsennotierten Unternehmen mit einem Umsatz von mehreren Milliarden Dollar, gehostet und gesichert.
Shopify übernimmt die Verantwortung dafür, seine Plattform auf dem neuesten Stand zu halten und Ihre Daten zu schützen, sodass Entwickler mehr Zeit auf Projekte konzentrieren können, die Händlern helfen, ihre Geschäftsziele zu erreichen.
Hosting, Webverkehr, Datenbanken und Skalierung
Bei A/B-Tests stellte Amazon einmal fest, dass eine Verzögerung von 500 Millisekunden beim Laden von Seiten zu einem Umsatzrückgang von 5 % führte. Google fand in ähnlicher Weise heraus, dass eine Verzögerung von 500 Millisekunden einen Rückgang des Suchverkehrs und der Werbeeinnahmen um 20 % verursachte und die Benutzerzufriedenheit zerstörte.
Die Optimierung der Seitenladegeschwindigkeit ist in der Tat sehr wichtig.
Dies ist ein weiterer Bereich, in dem gehostete E-Commerce-Lösungen wie Shopify wirklich glänzen. Ihr Online-Shop und alle zugehörigen Medien werden von Shopify gehostet, und ihr Geschäftsmodell bedeutet, dass Shopify den gleichen Druck wie Amazon verspürt, Ihre Seiten schnell zu laden, um die Konversionsraten zu maximieren. Ihr Online-Shop ist immer verfügbar und sehr schnell, und es ist nie ein Problem für Händler oder ihre Entwickler.
Als Magento-Entwickler beschäftigen Sie sich ständig mit Seitenladegeschwindigkeiten und Datenbanklasten.
Magento ist eine sehr große Codebasis, die aus Tausenden von Dateien und Millionen von Codezeilen besteht. Es speichert System-, Modul- und Layoutkonfigurationen im Dateisystem als große XML-Dateien, deren Analyse rechenintensiv ist. Es implementiert das Entity-Attribute-Value-Modell der Datenspeicherung, verteilt zugehörige Daten auf viele verschiedene Tabellen in der Datenbank und erfordert selbst für einfache Dinge wie das Abrufen von Produktdaten komplizierte und teure Datenbankabfragen. All dies macht Magento zu einer der anspruchsvollsten Plattformen für das Hosten und Skalieren, und mit wachsendem Traffic auf Ihrer Website werden die Lösungen für diese Herausforderungen immer komplexer.
Damit die Dinge in der Produktion schneller laufen, implementiert Magento viele Caching-Ebenen auf Anwendungsebene, einschließlich Caches für Systemkonfiguration, Layout-XML, Block-HTML-Ausgabe und Generierung ganzer Seiten. Das bedeutet, dass Sie als Entwickler (durch sorgfältige Überlegungen und Tests) sicherstellen müssen, dass alle lokalen Anpassungen und Community-Module alle diese Caches ordnungsgemäß nutzen, da selbst eine einzige Cache-Invalidierung dramatische Auswirkungen auf die Seitenladegeschwindigkeit haben kann.
Für den Händler bedeutet dies alles eine Erhöhung der Gesamtkosten für Entwicklung und Hosting sowie in den meisten Fällen merklich langsamere Seitenladezeiten.
Entwicklung, Technologie & Ressourcen
In Bezug auf die Entwicklung besteht der Hauptunterschied zwischen Magento und Shopify darin, dass Magento ein monolithisches E-Commerce-Framework ist, während Shopify eine gehostete Plattform ist, die mit einer Vielzahl externer Dienste interagiert.
Wenn Sie für Magento entwickeln, finden alle Ihre Entwicklungsaktivitäten in seinem Rahmen statt; Sie fügen Code innerhalb dieses Frameworks hinzu und ändern ihn, um seine Funktionalität zu erweitern und zu ändern. Ihr gesamter Code erstreckt sich vom Magento-Kern, der einen vordefinierten Satz von Technologien verwendet und streng regelt, wie Sie sie verwenden.
Als Magento-Entwickler schreiben Sie objektorientiertes PHP, das von Zend-Bibliotheken auf einer MySQL-Datenbank erbt, mit Prototype und manchmal jQuery am Frontend. Es ist ein sehr kompliziertes und hochspezifiziertes Framework, und es kann eine Menge spezialisierter Schulungen erfordern, um darin produktiv zu werden. Dies erhöht die Kosten und einen gewissen Schwierigkeitsgrad bei der Einstellung und Einarbeitung.
Bei der Entwicklung für Shopify erweitern und modifizieren Sie seine Funktionalität mithilfe einer Kombination aus der Liquid-Vorlagen-Engine, Shopify-Skripten, Webhooks, JavaScript-SDKs und durch Erstellen benutzerdefinierter Anwendungen und Dienste, die extern mit der Shopify-Plattform interagieren.
Shopify bietet eine leistungsstarke REST-API, die externen Anwendungen umfassenden Zugriff auf die Shopify-Plattform ermöglicht und Entwicklern die Freiheit gibt, mehr eigene Technologieentscheidungen zu treffen. Sie können für die Shopify-Plattform mit einer beliebigen Programmiersprache oder einem beliebigen Framework entwickeln. Entwicklern und Agenturen die Flexibilität zu geben, aus moderneren und vertrauteren Technologien auszuwählen, bringt viele Vorteile mit sich, darunter eine erhöhte Entwicklereffizienz und die Möglichkeit, aus einem viel größeren Talentpool einzustellen.
Was das alles für Händler bedeutet
Bei der Auswahl der richtigen E-Commerce-Lösung für Ihr Unternehmen geht es um mehr als nur Funktionslisten und Kontrollkästchen. Es ist wichtig, auch zu berücksichtigen, welche Auswirkungen Ihre Entscheidung auf den Entwicklungszyklus, auf die Sicherheit der Daten Ihrer Kunden und auf Ihre Fähigkeit hat, die Plattform an das Wachstum Ihres Unternehmens anzupassen.
Mit einer gehosteten Lösung wie Shopify sind Ihre sensiblen Daten im Allgemeinen sicherer. Ihr Shop hat konstant schnelle Seitenladezeiten, wird automatisch skaliert und verfügt über eine nahezu unbegrenzte Kapazität, um plötzliche Ausbrüche des Webverkehrs zu absorbieren. Und was noch wichtiger ist, Ihre Entwickler werden in die Lage versetzt, mit modernen und vertrauten Technologien effizienter zu arbeiten, Ihre Entwicklungskosten zu senken und einen größeren Teil Ihres Budgets für die Steigerung des Umsatzes und das Erreichen Ihrer Geschäftsziele einzusetzen.