In the Code: Welche Technologie im E-Commerce?

Programmiersprachen, Frameworks und E-Commerce Lösungen im Vergleich. Ein kleiner Leitfaden von Liip-Partner Lukas K. Smith.
 
Egal ob grossflächiger Online-Handel oder kleiner Webshop – jedes Unternehmen fragt sich, auf welche Technologie es setzen soll. Magento und ähnliche E-Commerce-Systeme waren darauf ausgelegt, eine Parallel-Welt aufzubauen. Sie waren ein Shop, ein Warenwirtschaftssystem, ein CMS, ein Payment System und vieles mehr in einem. Die Anforderungen an einen Online-Shop steigen jedoch kontinuierlich. Insbesondere B2B, der Trend zu Marktplätzen aber auch der Schritt von Multi-Channel zu Omni-Channel erhöhen die Komplexität. Dies stellt ganz neue Anforderungen an die Wahl der Technologie.
 
Wählen Sie Ihre Programmiersprache mit weiser Voraussicht
Die Komplexität wächst. Wir wissen heute nicht, was ein System morgen alles leisten muss. Um für die Zukunft bereit zu sein, ist Flexibilität der Technologiewahl zentral. Deshalb ist die Auswahl der Implementierungssprachen sehr wichtig. PHP ist eine für das Internet optimierte Programmiersprache. In den Nutzungsstatistiken liegt PHP daher wenig überraschend weit vor allen anderen Sprachen. Somit ist auch eine Vielzahl erfahrener Entwickler vergleichbar leicht zu finden. Node.js ist eine interessante Alternative. Jedoch sind Entwickler schwer zu finden und es mangelt an stabilen E-Commerce Frameworks.
 
Applikationen sind passé – setzen Sie auf Frameworks
Für Multi-Channel-Projekte decken Applikationen die meisten Wunsch-Funktionen ab. Das reicht für die Ansprüche von Omni-Channel nicht mehr. Denn die fix-fertigen Funktionen einer Applikation stellen ein erhöhtes Risiko dar, sich einzuengen und damit den Anschluss an die Entwicklung des Marktes zu verlieren. Frameworks bieten die nötige Flexibilität. In der PHP-Welt hat sich das Framework Symfony durchgesetzt. Auf diesem bauen eine Vielzahl von E-Commerce Lösungen auf. Besonders interessant sind hier Sylius und Spryker.
 
Die Wahl der E-Commerce Lösung – vergleichen Sie genau
Sylius ist komplett Open Source, wobei die Firma hinter Sylius aktuell an einer proprietären Marktplatzerweiterung arbeitet und B2B Funktionalitäten plant. Spryker wiederum, verlangt bei der kommerziellen Nutzung eine Lizenzgebühr, welche in der Praxis nur wenige Franken pro Entwicklerstunde ausmachen. Aktuell arbeitet Spryker verstärkt daran, B2B-Funktionalitäten hinzuzufügen. Marktplatz-Funktionen sind ebenfalls auf der Roadmap.
 
Sprich beide Lösungen sind fit für verschiedene Anforderungen. Je nach Projekttyp und Strategie empfiehlt sich die eine oder andere. Eine saubere Analyse der Bedürfnisse ist unumgänglich, bevor Sie sich für einen Ansatz entscheiden.
 
Sylius und Spryker: Die Unterschiede
Dank Symfony als Basis können für beide Frameworks automatische Tests implementiert werden. Sylius bietet dabei eine ausgeklügelte Infrastruktur, um bei Bedarf auf BDD (Behavior Driven Development) zu setzen. Ein weiterer Pluspunkt von Sylius: Die Dokumentation ist deutlich detaillierter. Sylius greift zudem auf eine grosse und aktive Community zurück, die Fragen beantwortet. Im Gegensatz zu Spryker integriert Sylius alle Entwickler-Tools des Symfony Framework. Das steigert die Produktivität.
 
Bei Spryker läuft alles darauf hinaus, noch mindestens einen Entwickler des Herstellers in das Projekt zu integrieren, um eventuelle Fragen beantwortet zu bekommen. Dies ist in der Praxis ein lohnendes Investment. So kann sich das eigene Entwicklungsteam mit den Entwicklungen von Spryker direkt abstimmen. Das kann durchaus sehr effizient sein.
 
Sylius und Spryker: Die Gemeinsamkeiten
Sylius und Spryker bieten eine komplette Shop-Lösung "Out-of-the-Box" an. Beide können sich mit E-Commerce-Lösungen der vergangenen Generationen durchaus messen. Und zwar inklusive Katalog, Kundenverwaltung und Login, Shopping Cart, Checkout und Order Management. Beide Frameworks bieten auch eine State Machine, um z.B. die internen Order-Prozesse modellieren bzw. visualisieren zu können.
 
Das Attraktive an Sylius und Spryker: beide Lösungen legen extrem viel Wert auf Erweiterbarkeit. So können Umsysteme schnell und effizient integriert werden. Es können auch Kernkomponenten mit vertretbarem Aufwand ausgetauscht oder um Funktionen erweitert werden, ohne die Kompatibilität mit Standard Plug-Ins zu verlieren. Diese Eigenschaft ist wichtig, denn ein erfolgreiches E-Commerce-Projekt wird sich verändern und mit immer mehr Umsystemen verbinden, wie die Erfahrung zeigt. Somit kann am Anfang des Projektes eine synchrone Datenverarbeitung sinnvoll sein, muss aber später durch eine asynchrone ersetzt werden, da nicht mehr alle Systeme in Real-Time angesprochen werden können.
 
Spryker setzt von Anfang an auf asynchrone Datenverarbeitung. Dies bringt langfristig Vorteile, bedeutet aber zu Beginn eine höhere Komplexität, alleine schon, weil eine Message Queue mit betrieben werden muss.
 
Sylius hingegen eignet sich auch für kleinere und mittlere Projekte und kann somit bei den ersten Schritten schneller und einfacher Ergebnisse liefern und dann mit dem Projekt mitwachsen.
 
Need: Micro-Service-Architektur
Die asynchrone Datenverarbeitung wird auch dann relevant, wenn Sie eine Micro-Service-Architektur aufgebaut werden soll. Hier ist die Empfehlung: Monolith First. Sprich, Sie starten mit einem Monolith und fügen nach den ersten Erfahrungen Micro-Services hinzu. Kunden denken oft, dass Micro-Services aus Performance Gründen attraktiv sind. Die Realität zeigt, dass meist organisatorische Anforderungen Micro-Services aufzwingen: Zum Beispiel müssen Systeme von Drittherstellern oder anderen Teams in das E-Commerce Projekt integriert werden. Da Spryker auf Grossprojekte ausgerichtet ist, hat der Hersteller hier vom Start weg eine Separierung von Backend und Frontend implementiert. Damit lassen sich primär Skalierungsprobleme lösen, da der Code doch noch eng verzahnt ist. Hier bietet es sich an, einen Living Style Guide mit z.B. Fractal zu implementieren, um die Entwicklung von Frontend und Backend zu separieren.
 
Need: Mehrere Frontend- und Backend- Server
Apropos Skalierung: Hier hat Spryker einiges zu bieten. Man kann ohne weiteres mehrere Frontend und Backend Server parallel betreiben. Dabei wird standardmässig der gesamte Shopping-Katalog im Frontend in Redis und ElasticSearch denormalisiert. Dies hilft insbesondere bei B2C-Projekten um die Performance hoch zu halten. Bei Sylius würde man dafür einen Reverse-Proxy, wie etwa Varnish, einsetzen. Jedoch ist ein Reverse-Proxy nicht optimal, wenn ein Grossteil der Seiteninhalte personalisiert ist. Somit hat Spryker hier einen Vorteil.
 
Need: Wiederkehrendes Deployment
Das bringt uns zum Thema Deployment, was in diesem Kontext heutzutage Continuous Integration (kurz CI) und Continuous Delivery (kurz CD) heisst. Wie oben erwähnt: beide Systeme sind optimal ausgelegt für automatisiertes Testen. Sylius lässt sich leicht auf einem PaaS wie zum Beispiel Platform.sh aufsetzen. Mit der Grundvoraussetzung CI lässt sich dann auch ein CD aufsetzen. Spryker und Sylius folgen den Konzepten der "12 Factor Applikationen". Damit steht einem Hosting in der Cloud nichts im Wege.
 
Der Einsatz von Feature Flags empfiehlt sich, um sich bei der Entwicklung von grösseren Funktionen nicht zu blockieren. So können auch noch nicht fertiggestellte Funktionen in Produktion gehen, diese werden einfach erstmal deaktiviert. Sobald sie fertig sind, kann man so auch leicht via A/B Testing schauen, ob die neue Funktion die Kunden überzeugt.
 
Zusammenfassung
Moderne E-Commerce-Systeme sind der Treiber jeder Digitalisierungsstrategie. Dabei kristallisieren sich insbesondere Sylius und Spryker als sehr interessante Optionen hervor. Beide bieten alle wichtigen Grundfunktionen und sind flexibel genug, um über Jahre weiterentwickelt zu werden. Mit beiden Systemen kann sehr erfolgreich gearbeitet werden, was im Einzelfall am besten passt hängt von der Grösse des Projektes und den spezifischen Anforderungen ab. Sprich die saubere Analyse der Bedürfnisse zahlt sich weit in die Zukunft aus.
 
Über den Autor:
Lukas K. Smith ist Partner bei Liip und befasst sich als Experte im E-Commerce vor allem mit technischen Herausforderungen in der Umsetzung von Marktplätzen und Onlineshops. Er hat zum Beispiel für Kunden wie Siroop, Raiffeisen und Freitag E-Commerce-Plattformen konzipiert und implementiert. Sie finden ihn auf Twitter unter @lsmith, wo er täglich zu verschiedenen technischen Themen postet. Bei Fragen erreichen Sie Lukas unter: [email protected]
 
Über "In The Code":
Im Monatsrhythmus erhalten Spezialisten unterschiedlicher Schweizer Unternehmen Gelegenheit, ihre Praxis-Erfahrungen zu teilen.