So machen wir es für den Angrybirds-Webshop:
Englische Präsentation auf der Magento Imagine 2012.
Deutsche Präsentation bei Meet Magento # 6.12
Das aktuelle deutsche "PHP Magazin" hat auch einen 6-seitigen Artikel mit einigen Details
Nachdem ich alle oben verlinkten Präsentationen von Fabrizio viele Male gelesen habe, denke ich, dass diese Antwort wirklich die beste ist, auch wenn ich zustimme, dass es mehr Erklärungen und eine Extraktion der Schlüsselideen aus den Präsentationen gebrauchen könnte (zumal der ursprüngliche erste Link bereits vorhanden war Zu dem Zeitpunkt, als ich dieses Update gepostet habe, waren es 404.)
Das einzige, was ich zu den Schlüsselkonzepten in den Präsentationen hinzufügen möchte, ist, dass die modernen Fortschritte in den Technologien von AWS / Konkurrenten einige Verbesserungen nahe legen ... wie die Tatsache, dass Cloudfront gzip für CDN-Leistungsverbesserungen jetzt unterstützt, obwohl es nicht so schnell wie noch ist Gibt es eine kostenlose SSL-Kündigung, wie sie CloudFlare anbietet ? Ihr Route 53-DNS ist auch nicht so schnell oder funktionsreich wie CloudFlares, und AWS verfügt auch nicht über eine vergleichbare Webanwendungsfirewall oder einen DDOS-Schutz, die alle in den CloudFlare-Angeboten enthalten sind.
Es gibt ein paar andere Möglichkeiten, die ursprüngliche Präsentation von Fabrizio zu verbessern, aber ich wäre kein guter Berater, wenn ich ALLES verraten würde, was ich auf jedem StackExchange-Post wusste, den ich beantwortete, oder? Darüber hinaus würden einige der neuesten Angebote die Vorschläge in den Originalpräsentationen erheblich ändern, die alle NOCH eine hervorragende Leistung bieten, selbst wenn mit verschiedenen Optionen mehr aus AWS herausgedrückt werden könnten.
Zusammenfassung der wichtigsten Konzepte :
Kennen Sie Ihre Engpässe genau : und optimieren Sie sie entsprechend. Jede Schicht des Stapels weist spezifische Engpässe auf (Bandbreite, CPU, Datenbank). Das Lösen der Engpässe auf jeder Schicht erfordert eine unterschiedliche Lösung, die für jede spezifische Herausforderung optimiert ist. Zwischenspeichern ist jedoch auf jeder Ebene das übliche Element, was dazu führt, dass ...
Zwischenspeichern aller Dinge : Nutzen Sie AWS-Systeme, wo immer dies möglich ist (Elasticache für das Zwischenspeichern von Daten vom Typ Redis / Memcache, Cloudfront für das Zwischenspeichern von Image-, Js- und CSS-Assets, die den Endbenutzern über CDN am nächsten sind) und Lackieren, um die Antworten der Serverinstanzen auf die anfängliche Asset-Ebene zu beschleunigen Caching-Anforderungen von CDN. Stellen Sie außerdem sicher, dass Ihre Bereitstellungssysteme komprimiert und minimiert sind, BEVOR Sie sie auf CDNs bereitstellen
Autoscaling ist unerlässlich : Der Bedarf ändert sich häufig und schneller, als Sie manuell überwachen und reagieren können. Die Anpassung an diese Änderungen in Echtzeit erfordert die Verwendung von Automatisierungstools, die in AWS verfügbar sind, wie z. B. Auto-Scaling Groups, um die Teile des Systems hochzufahren, die für diese Aufgabe am besten geeignet sind. AWS handhabt dies transparent für CloudFront CDN, Route 53 DNS, Elastic Load Balancers und S3 Buckets. Sie müssen es handhaben, indem Sie die Größe für EC2-Instanzen anpassen und automatisch skalieren und nur die Größe für RDS- und Elasticache-Ebenen anpassen
Automatisierung ist die einzige Möglichkeit, um all dies effektiv miteinander zu verknüpfen: Bei so vielen miteinander verbundenen Komponenten, von denen einige zum Zeitpunkt der Bereitstellung initialisiert werden müssen, erfordert die Verwaltung eines auf optimale Leistung optimierten Systems eine Automatisierung. Die Nutzung der Bereitstellung und Systemautomatisierung zum Löschen des Caches, zum Aufwärmen des Caches, zur Image-Verarbeitung usw. ist die einzig sinnvolle Möglichkeit, um diese vielen verschiedenen Subsysteme zu verwalten und sie gut geölt und problemlos zu halten.
Aber auch das ist ohne Testautomatisierung nicht möglich : Bei so vielen beweglichen Teilen bricht bei fast jeder Änderung etwas. Und Sie müssen Änderungen vornehmen, um mit den Entwicklungen in Magento und AWS Schritt zu halten. Und das wird OFT passieren . Um die Änderungskosten so gering wie möglich zu halten, müssen alle Arten von Tests implementiert und vollständig automatisiert werden - von Komponententests über Integrationstests bis hin zu selenbasierten Funktionstests des tatsächlichen Standorts, die in tatsächlichen Testkonfigurationen durchgeführt werden, die die Produktionsumgebung imitieren. Jetzt sind Sie WIRKLICH froh, dass Sie alle Bereitstellungsprozesse automatisiert haben, oder?