Magento ist eine leistungsstarke eCommerce-Plattform, die weltweit Tausende von Online-Shops betreibt. Seine flexible, skalierbare und funktionsreiche Umgebung macht es zur ersten Wahl für Einzelhändler in verschiedenen Branchen.
Der umfangreiche Funktionsumfang und die Komplexität von Magento können jedoch zu Leistungsengpässen führen, insbesondere wenn Unternehmen skalieren. Wachsende Produktkataloge, hohe Zugriffszahlen und komplizierte Checkout-Prozesse können die Leistung der Website belasten, was zu langsameren Ladezeiten und geringeren Konversionsraten führt.
Durch die Einhaltung der wichtigsten Best Practices, Entwickler, Website-Administratoren und eCommerce-Architekten können sicherstellen, dass ihre Magento-Shops effizient skalieren, die Bereitstellung sowohl hohe Leistung und eine nahtlose Benutzererfahrung.
Dieser Artikel untersucht die kürzlich neu gestaltete Magento 2 Community Edition Template auf Upsun, Hervorhebung der eingebauten Optimierungen. In diese Verbesserungen sind die Best Practices von Magento sowie unsere langjährige Erfahrung im Hosting und der Skalierung der Plattform eingeflossen.
Magento-Bereitstellung mit einem Klick auf Upsun
Einer der größten Vorteile von Upsun ist die Ein-Klick-Bereitstellung von Magento, die den Einrichtungsprozess vereinfacht. Diese vorkonfigurierte Umgebung umfasst:
- ECE-Tools für automatisierte Cloud-Bereitstellungen
- Fastly CDN-Integration für verbesserte Leistung
- Optimiertes Redis-Caching für verbesserte Geschwindigkeit
Die neuesten Magento-Optimierungen für maximale Effizienz
Beginnen wir mit der composer.json-Datei aus diesem Repo. Diese Datei enthält die Bausteine der Anwendung. Wir haben die folgenden Dateien hinzugefügt, um Ihren Entwicklungs-Workflow zu vereinfachen:
"magento/ece-tools": "^2002",
"fastly/magento2": "*",
"markshust/magento2-module-disabletwofactorauth": "*",
"n98/magerun2-dist": "*"
Diese Pakete verbessern die Magento-Erfahrung auf Upsun
- Ece-tools vereinfacht das Erstellen und Bereitstellen auf Upsun, indem es die Plattform erkennt und die Anwendungskonfiguration mit Hilfe unserer bereitgestellten Umgebungsvariablen anpasst.
- Wir enthalten auch das Fastly-Modul, unser CDN der Wahl. Außerdem enthalten wir ein separates Paket, das die Zwei-Faktor-Authentifizierung deaktiviert (notwendig, da Entwicklungsumgebungen nicht immer in der Lage sind, verifizierte E-Mails zu senden) und;
- das Tool n98 magerun, das aus Ihrer Anwendung heraus aufgerufen werden kann mit:
vendor/bin/n98-magerun2
Die Composer-Datei verwendet auch den Spiegel https://mage-os.org/distribution/ .
Die Verwendung des Spiegels https://repo.magento.com/ erfordert eine Authentifizierung. Wenn Sie ihn benutzen wollen, folgen Sie einfach den Anweisungen im Repository.
Die nächste wichtige Schritt-Datei im Repository ist .magento.env. yaml
Diese Datei ist das Herzstück der Magento-Anwendungskonfiguration und enthält eine Menge kleiner Leistungs- und Stabilitätsverbesserungen.
- In unserer Konfiguration haben wir allein für das Caching mehrere Leistungsverbesserungen, einen separaten Redis-Sitzungsdienst, L2-Caching und Stale-Cache sowie das Vorladen bestimmter Cache-Schlüsselhinzugefügt, die nun alle standardmäßig aktiviert sind.
- Wir haben den Cron und die Verbraucher soangepasst , dass nur 250 Nachrichten gleichzeitig verarbeitet werden. Es wird sichergestellt, dass alle Consumer-Crons laufen, aber nicht unbegrenzt. Sie können Crons anpassen und diesen Wert bei größeren Plänen erhöhen.
- Das Static Content Deployment (SCD) ist auf die schnellsten und kürzesten Bereitstellungszeiten eingestellt, die mit Magento möglich sind, wenn Sie eine kompakte SCD-Strategie verwenden. Wenn Sie Module hinzufügen oder entfernen, stellen Sie sicher, dass Sie das folgende Snippet verwenden, um den korrekten Status zu pushen :
vendor/bin/ece-tools config:dump
Unsere .upsun/config.yaml-Datei wurde mit neuen Diensten aktualisiert, um die neueste Version von Magento zu unterstützen. Sie enthält auch zwei MariaDB-Änderungen, die bei langwierigen Indizierungsprozessen helfen :
optimizer_switch: “rowid_filter=off”
optimizer_use_condition_selectivity: 1
Zu guter Letzt noch die .upsun/config.yaml
Wir haben zusätzliche Lese- und Schreib-Endpunkte für den Datenbankdienst hinzugefügt. Und wenn Sie die Vorlage auf einem hochverfügbaren Cluster einsetzen, werden die mehreren Endpunkte auch für Redis verfügbar sein.
- Der Build-Hook installiert nvm und node, nur für den Fall, dass Sie eine PWA in Ihrem Build und/oder MagePack verwenden . Er verwendet dann den ece-tools-Prozess, um SCD zu bauen und zu vervollständigen.
- Die letzte Zeile des Builds ist eine kleine Änderung; sie stellt sicher, dass alle Crons, die an die Anwendung geliefert werden, so eingestellt sind, dass sie sequentiell und nicht parallel laufen. Wenn Sie über ausreichend Ressourcen verfügen, können Sie diese Zeile auch entfernen.
- Ece-tools übernimmt die Bereitstellung und die Prozesse nach der Bereitstellung, indem es notwendige Konfigurationen und Anwendungsupgrades erkennt und aktualisiert.
- Der Cron-Abschnitt wurde aktualisiert, um den sequenziellen Cron-Prozess zu handhaben. Jetzt gibt es einen Bereinigungsprozess für den Berichtsordner und eine 10-tägige Protokollrotation für Anwendungsprotokolle.
Standorte sind der Standard für die Magento-Anwendung, mit dem Zusatz von Beispielen für einen Apple Pay Pass-Through. Wir sehen oft Apple Pay Domain-Verifizierung als eine Händler-Anforderung.
Drei wesentliche Magento Best Practices für Spitzenleistung
Neben der Vorlage und der optimalen Konfiguration für die Anwendung empfehlen wir diese Best Practices für den Einsatz von Magento.
1. Verwenden Sie Content Delivery Networks (CDNs)
Ein CDN wie Fastly kann den Datenverkehr entlasten und die Time to First Byte (TTFB) global reduzieren. Durch die Nutzung von CDNs können Sie die Ladegeschwindigkeit von Seiten um bis zu 60% verbessern, wie sich in der Praxis gezeigt hat.
CDN-Empfehlungen:
- Reduzieren Sie automatische Flushes: Überprüfen Sie Fastly auf übermäßige Cache-Flushes, automatisierte Flushes, die durch falsch konfigurierte Module ausgelöst werden, können das Caching komplett aushebeln.
- Nutzen Sie wichtige Fastly-Funktionen: Upsun bietet zusätzliche Fastly-Funktionen zur Verbesserung der Leistung.
- Full Page Cache für Fastly CDN: Alle Operationen wirken auf das CDN genau so, als ob sie auf Ihren Infrastruktur-Instanzen ausgeführt würden.
- Fastly Image Optimizer (Fastly IO): Verwenden Sie diese Funktion, um die Bildtransformation in die Fastly-Cloud zu verlagern, um die Latenzzeit zu reduzieren und die Geschwindigkeit bei der Bereitstellung von Inhalten für Ihre Endbenutzer zu verbessern. Fastly IO ist in Ihrem Fastly-Service enthalten; Sie können es über Ihr Adobe Commerce-Adminpanel aktivieren. Weitere Informationen finden Sie in der Dokumentation zu Adobe Commerce Cloud.
- Sie müssen nur eine einzige hochauflösende Kopie jedes Bildes auf dem Server vorhalten. Fastly liefert ein Bild in angemessener Größe für Thumbnails und langsame oder niedrig auflösende Geräte. Es funktioniert mit gängigen Bildformaten wie .png, .jpeg und .gif.
- Das Fastly Image Optimization Snippet besteht aus VCL Code, um die Bildoptimierung auf den Fastly Edge Nodes durchzuführen.
- Zweistufiger Cache: Die Antworten werden sowohl in der Nähe des Kunden als auch in der Nähe Ihres Adobe Commerce-Servers zwischengespeichert.
- TLS erzwingen: Wenn diese Einstellung aktiviert ist, werden alle HTTP-Anfragen auf HTTPS umgeleitet.
- Edge-Zugriffskontrolllisten (ACLs): Hier können IP-Adressen verwaltet werden, die den Zugriff auf Ressourcen erlauben oder blockieren.
- Fehler-/Wartungsseite: Mit dieser Funktion können Sie eine benutzerdefinierte 503-Seite mit Ihrem Branding einrichten.
- Grundlegende Authentifizierung: Sie können die HTTP-Basisauthentifizierung einschalten, um den Zugriff auf eine Website zu beschränken.
- Geo-IP: Sie können Besucher auf der Grundlage ihres Ländercodes zum Schaufenster umleiten oder den Zugang für Länder einschränken, in denen Sie nicht geschäftlich tätig sind.
2. die serverseitige Leistung optimieren
Die Erkundung wichtiger Integrationen und das Umschalten der richtigen Einstellungen kann die Leistung Ihres Magento-Shops drastisch verbessern.
Empfehlungen zur serverseitigen Optimierung:
- Setzen Sie Speicherlimits: Setzen Sie geeignete
php.ini
-Speicherlimits für die Serverstabilität. Für die meisten Umgebungen sind 512 MB oder 1 GB ausreichend. Überhöhte Grenzwerte (z. B. 4 GB) können auf zugrundeliegende Leistungsprobleme hinweisen und sollten weitere Untersuchungen nach sich ziehen. - Korrekte Fehlerbehebung: Starten Sie Nginx- und PHP-Prozesse nach wichtigen Korrekturen oder Änderungen neu, um verwaiste Worker zu entfernen und eine effiziente Ressourcennutzung sicherzustellen. Endbenutzer können dies über runsv, systemctl oder pkill tun .
- Um zu verhindern, dass Admin-Backend-Seiten aus dem Takt geraten, wird Magento normalerweise mit einer max_execution_time von mindestens 600s (10 Minuten) konfiguriert. Aber wenn die Dinge zusammenbrechen, enden Sie mit verwaisten PHP-Workern, die versuchen, Anfragen an Kunden zurückzuschicken, die bereits aufgegeben haben, diese Anfragen zu erhalten, oder schlimmer noch, an Kunden, die die Seite bereits aktualisiert haben. Aus diesem Grund ist dies entscheidend, um die Wiederherstellung nach einem Dienstausfall zu beschleunigen.
- PHP- und Webserver-Konfiguration: Optimieren Sie die PHP-FPM-Einstellungen, um sicherzustellen, dass der Speicher für Ihre PHP-Worker nicht knapp wird.
- Datenbank-Tuning: Untersuchen Sie die Strategien zur Leistungsoptimierung von MySQL oder MariaDB, wie z. B. Datenbank-Indizierung, Abfrage-Caching und die Verwendung von Lese-Schreib-Trennung in Umgebungen mit mehreren Servern. Analysieren und optimieren Sie regelmäßig langsame Abfragen mit Tools wie
mysqlslowdump
, um Ausfälle durch schlecht laufende Abfragen zu vermeiden. - Führen Sie Mysqlanalyze häufig aus, mindestens nach jedem Dienst- und Anwendungsupgrade, idealerweise aber regelmäßig.
- Stellen Sie sicher, dass die Tabellen während der Wartungsfenster optimiert werden. Dadurch kann Speicherplatz freigegeben und die Leistung verbessert werden.
3. Nutzen Sie Tools zur Leistungsüberwachung und Profilerstellung
Die Leistungsoptimierung ist keine einmalige Initiative, sondern ein fortlaufender Prozess. Kontinuierliche Überwachung und Tests sind für die Aufrechterhaltung der Stabilität unerlässlich.
Empfehlungen zur Überwachung und Profilerstellung:
- Blackfire: Verwenden Sie Tools wie Blackfire, um den Anfrage-Antwort-Zyklus von Magento zu überwachen und zu profilieren und so Bereiche mit Verbesserungspotenzial zu identifizieren.
- Magento Profiler: Nutzen Sie den in Magento integrierten Profiler, um die Ausführungszeit von Datenbankabfragen, die Block-Rendering-Zeit und den Speicherverbrauch zu messen.
- Kontinuierliche Lasttests: Implementieren Sie Lasttest-Frameworks wie Apache JMeter und Gatling, um Szenarien mit hohem Datenverkehr zu simulieren und die Systemleistung unter Stress zu messen.
- Module: Wenn ein Leistungsproblem auftritt, können Sie das Problem nur mit den Kernmodulen reproduzieren? Wenn nicht, liegt es an den Modulen.
Abschließende Schlussfolgerungen: Nicht einfach mehr Ressourcen hinzufügen - die Ursache beheben
Ein wichtiger Ratschlag aus unserem letzten Magento-Webinar war, nicht einfach mehr Ressourcen hinzuzufügen, um Leistungsprobleme zu beheben. Stattdessen sollten Sie sich darauf konzentrieren, die zugrunde liegenden Engpässe zu diagnostizieren und zu beheben.
Wenn Sie diese Best Practices befolgen und Ihren Magento-Shop korrekt konfigurieren, schaffen Sie die Grundlage für eine nahtlose Skalierbarkeit. Mit den richtigen Optimierungen können Sie sich auf das Wachstum Ihres Unternehmens konzentrieren, anstatt Probleme mit der Plattform zu beheben.
Wenn Sie Fragen zur Optimierung Ihrer Magento-Website auf Upsun haben, stehen wir Ihnen gerne zur Verfügung.
Sind Sie bereit, Ihren Magento-Shop zukunftssicher zu machen?
Erleben Sie mühelose Skalierung, integrierte Leistungsoptimierungen und optimierte Arbeitsabläufe mit Upsun.
Nächste Schritte:
Haben Sie Fragen zur Optimierung Ihrer Magento-Website? Unsere Spezialisten helfen Ihnen dabei, eine optimale Leistung zu erzielen.