SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Downloaden Sie, um offline zu lesen
High Performance
Multi-Server Magento
in der Cloud
                   Fabrizio Branca
             Meet Magento #6.12 in Leipzig
San Francisco
Und Sie?!
 • Wer war bei meinen Caching/Varnish Vortrag letztes Jahr?
 • Wer betreibt einen Magento Shop auf mehr als einem
   Frontend-Server?
 • Wer hat Erfahrungen mit Amazon AWS oder Cloud-Hosting
   im Allgemeinen?
 • Wer betreibt einen Shop mit mehr als 500 Bestellungen am
   Tag?
 • 1000 Bestellungen am Tag?
 • 10 pro Minute?
Angry Birds
Angry Birds
Angry Birds
Angry Birds
Das Angry Birds Magento Universum
                                                                        DRM Server


 3 Storefronts       Custom            Banner        Catalog
  (US, EU, ASIA)    Reporting        Management       Rules

                                                                      Mail Service
 Warehouse                           Custom Tax,
                   Splitshipping   Custom Shipping
                                                       …
 Inventory




                                                                  Giftcards


                       Warehouse /
  Fullfillment          Inventory                     Braintree
                       Management
Anforderungen
 • Gutes, flexibles Shopsystem
 • Hochverfügbar / Ausfallsicher
 • Lastspitzen
 • Schnell
 • Backendserver unabhängig von den Frontend-Instanzen
 • Effizientes und unabhängige Abarbeitung von
   Hintergrund-Tasks
 • Shop-Betrieb darf nicht von neu hinzukommenden oder
   wegfallenden Server-Instanzen oder neuen Deployments
   beeinträchtigt werden
Lösungsbausteine
Cloud Services



   EC2            S3    RDS   Cloud-   Elasti-   ELB     Route 53
                              Front    Cache


                       Amazon AWS Console

   Management                                      Monitoring
   Deployments            RightScale Services       Logging
   Auto-Scaling                                   Scripting API
Magento in der Cloud
Share nothing?
               JS/CSS                 Code
               Bundles



 Assets
Produktbilder,               Server           Daten-
 CMS-Bilder,
Skalierte Bilder
                                               bank



                   Session            Cache
                   Storage
Magento Anpassungen für die Cloud
 • MinifyJavaScript + CSS während des Builds
 • JavaScript + CSS mit Zeitstempel versehen und auf
   allen Servern verfügbar machen
 • Deployment Name im Cache Prefix          Aoe_JsCssTstamp
 • Cache-Warmup Script als Teil des Deployments
 • Health-Checks für Varnish
 • Automatisches und manuelles Varnish Purging
 • E-Mail Service
                                               Aoe_Static
 • Asset-Handling
Sonstige Module


       Aoe_Scheduler   Aoe_Apilog
shop.angrybirds.com




CloudFront            S3                                                 Route 53                  CloudFront
CDN for Assets   Assets Storage                                          DNS-Service                 CDN for Skin

                                                 ELB
                                            Load Balancer


                                                                                             Monitoring     Logging
                                   EC2    EC2          Varnish Array




     EC2         Backend Array     EC2    EC2       Frontend Array            EC2                   Worker Array




                                                                                                  DRM          Mail
    S3           ElastiCache             RDS
 Deployment        Cache Backend         MySQL                                                  Giftcards Braintree
shop.angrybirds.com


                                                                               Direkter Zugriff mit
                                                                              lokalem Hosteintrag
      Route 53                                                                    zum Testen
      DNS-Service

                                                         ELB
                                                     Load Balancer
X    Deployment X+1
     Release Y                                                                      Cache
                                                                                    warming
                                             EC2   EC2        Varnish Array




             EC2    EC2      Backend Array   EC2   EC2      Frontend Array        EC2                 Worker Array




                    S3                         RDS
                Deployment                     MySQL
Deployment / Rollback
                                         shop.angrybirds.com




                                           Route 53
                                           DNS-Service

   ELB                                                                                        ELB
Load Balancer                                                                              Load Balancer
                        Deployment X                  Deployment X+1
                                                      Release Y
  Varnish Array                                                                              EC2   EC2




 Frontend Array   EC2     Worker Array                         EC2   EC2   Backend Array     EC2   EC2
Downtime während eines Deployments:
Alle Warenkörbe,
aktive Logins und Sessions
       bleiben beim
  Deployment / Rollback
         erhalten.
Magento, schnell!
Optimierungsfelder



     Magento    Frontend   Caching
Frontend-Optimierungen
 JavaScript / CSS
 • Bundling (Magento)
 • Minifying (mit YUI Compressor)
 • Gzip-Komprimierung (Apache)
 • Zeitstempel im Dateiennamen für lange Cachedauer
                                                           Aoe_JsCssTstamp
 Cache-Header senden
 CDN (Cloudfront)
 • Produktbilder (+ skalierte Versionen), CMS-Bilder,...
 • Skin
 • JS/CSS
Magento-Optimierungen
 Logging reduzieren
 Uncachebare Features entfernen


 Caching
                                                       Aoe_AsyncCache
 • Asynchronous Cache Clearing Queue
 • Alte Cache-Einträge löschen                         Aoe_CacheCleaner

 Cookie Storage von Benutzername und Warenkorbinhalt
 Ajax-Warenkorb


 und... Profiling, Profiling, Profiling,…
   (xdebug + kcachegrind, Newrelic, xhprof)
Caching

    95% der Hits
   sind cachebar!

                    5% dynamischer
                        Inhalt
 Startseite
 Kategorien              Warenkorb
 Produkte                 Checkout
   CMS                  Kundenkonto
Caching


                                      Varnish                                  Magento
                                      Reverse Proxy




http://www.fabrizio-branca.de/make-your-magento-store-fly-using-varnish.html
Lösungen


        Aoe_Static         Magneto_Varnish
          Caching +            Purging
         Handling von
     dynamischem Content
Lessons learned

 • 404s sind teuer
   => cache or redirect
 • Cloudfront mit S3 Backend
   kann kein gzip
   => deploy time bundeling/compression

 • Kein Reports auf der Live-Datenbank!
 • Man kann nicht alles vorhersagen
   => Aber man kann vorbereitet sein, schnell zu reagieren
   => continuous deployment
Continuous
Integration und
Deployment
Keine Angst vor
Production-Deployments!
Magento Installationspaket
     Dateien*
     ‣htdocs [Magento Source]                                                      Dateien
     ‣.modman [Custom Packages]                                                    ‣media
                                                                                                     System-
                                                                                                     storage
     SVN
     GIT
                                                                                    Datenbank-
                            Installer                                                 Tabellen


                                                                                   Settings
                           ChangeLog                                               ‣URLs
                                                                                   ‣Datenbank-Parameter
                                                                                   ‣…
                                                                                                           Settings

* http://www.webguys.de/magento/turchen-08-magento-projekte-mit-dem-module-manager-clever-strukturieren/
Deployment Pipeline


          Installation auf
                                          Acceptance   Performance
  Build     „Latest“         Unit-Tests
                                             Tests        Tests
              System

                              PHPUnit
Deployment Pipeline



 Installation auf                  Cloud      Integration     Cloud
 Deployment         Copy to S3   Deployment      Tests      Deployment
     System                       Staging     AOE + Rovio   Production
Launch!

                                      USA wacht auf
                     Space game
                     launch
                     Array skaliert
                     hoch
    Deployment des
    neuen Releases
Besucher/Tag
(echte) Besucher gleichzeitig!
Danke!

         http://www.aoemedia.de
         http://www.fabrizio-branca.de

              @aoemedia
              @fbrnc

Weitere ähnliche Inhalte

Was ist angesagt?

Campixx 2012-ladezeit-extreme
Campixx 2012-ladezeit-extremeCampixx 2012-ladezeit-extreme
Campixx 2012-ladezeit-extremeAlexander Merkel
 
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling  am Beispiel von AngrybirdCloud Deployment und (Auto)Scaling  am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von AngrybirdAOE
 
Webanwendungen mit Apache HBase entwickeln
Webanwendungen mit Apache HBase entwickelnWebanwendungen mit Apache HBase entwickeln
Webanwendungen mit Apache HBase entwickelnRoman Roelofsen
 
Infinispan - NoSQL für den Enterprise Java Alltag
Infinispan - NoSQL für den Enterprise Java AlltagInfinispan - NoSQL für den Enterprise Java Alltag
Infinispan - NoSQL für den Enterprise Java Alltaggedoplan
 
DOAG: NoSQL with MySQL
DOAG: NoSQL with MySQLDOAG: NoSQL with MySQL
DOAG: NoSQL with MySQLFromDual GmbH
 
WJAX 2012: Dreamteam "BPM + Java EE"
WJAX 2012: Dreamteam "BPM + Java EE"WJAX 2012: Dreamteam "BPM + Java EE"
WJAX 2012: Dreamteam "BPM + Java EE"camunda services GmbH
 
Performance durch Caching
Performance durch CachingPerformance durch Caching
Performance durch CachingAOE
 
JBoss EAP clustering
JBoss EAP clustering JBoss EAP clustering
JBoss EAP clustering hwilming
 
JBoss AS / EAP Clustering
JBoss AS / EAP  ClusteringJBoss AS / EAP  Clustering
JBoss AS / EAP Clusteringhwilming
 
Service Orchestrierung mit Apache Mesos
Service Orchestrierung mit Apache MesosService Orchestrierung mit Apache Mesos
Service Orchestrierung mit Apache MesosRalf Ernst
 

Was ist angesagt? (13)

Campixx 2012-ladezeit-extreme
Campixx 2012-ladezeit-extremeCampixx 2012-ladezeit-extreme
Campixx 2012-ladezeit-extreme
 
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling  am Beispiel von AngrybirdCloud Deployment und (Auto)Scaling  am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
 
Dockerize It - Mit apex in die amazon cloud
Dockerize It - Mit apex in die amazon cloudDockerize It - Mit apex in die amazon cloud
Dockerize It - Mit apex in die amazon cloud
 
VDI-in-a-Box
VDI-in-a-BoxVDI-in-a-Box
VDI-in-a-Box
 
Webanwendungen mit Apache HBase entwickeln
Webanwendungen mit Apache HBase entwickelnWebanwendungen mit Apache HBase entwickeln
Webanwendungen mit Apache HBase entwickeln
 
Infinispan - NoSQL für den Enterprise Java Alltag
Infinispan - NoSQL für den Enterprise Java AlltagInfinispan - NoSQL für den Enterprise Java Alltag
Infinispan - NoSQL für den Enterprise Java Alltag
 
DOAG: NoSQL with MySQL
DOAG: NoSQL with MySQLDOAG: NoSQL with MySQL
DOAG: NoSQL with MySQL
 
WJAX 2012: Dreamteam "BPM + Java EE"
WJAX 2012: Dreamteam "BPM + Java EE"WJAX 2012: Dreamteam "BPM + Java EE"
WJAX 2012: Dreamteam "BPM + Java EE"
 
Performance durch Caching
Performance durch CachingPerformance durch Caching
Performance durch Caching
 
JBoss EAP clustering
JBoss EAP clustering JBoss EAP clustering
JBoss EAP clustering
 
JBoss AS / EAP Clustering
JBoss AS / EAP  ClusteringJBoss AS / EAP  Clustering
JBoss AS / EAP Clustering
 
Spring 2.0
Spring 2.0Spring 2.0
Spring 2.0
 
Service Orchestrierung mit Apache Mesos
Service Orchestrierung mit Apache MesosService Orchestrierung mit Apache Mesos
Service Orchestrierung mit Apache Mesos
 

Ähnlich wie High Performance Multi-Server Magento in der Cloud

High Performance Multi-Server Magento in der Cloud
High Performance Multi-Server Magento in der CloudHigh Performance Multi-Server Magento in der Cloud
High Performance Multi-Server Magento in der CloudAOE
 
papaya AWS Präsentation CeBIT 2010
papaya AWS Präsentation CeBIT 2010papaya AWS Präsentation CeBIT 2010
papaya AWS Präsentation CeBIT 2010papaya
 
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von AngrybirdCloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von AngrybirdAOE
 
Meet Magento - High performance magento
Meet Magento - High performance magentoMeet Magento - High performance magento
Meet Magento - High performance magentoAOE
 
Amazon Lightsail Webinar
Amazon Lightsail WebinarAmazon Lightsail Webinar
Amazon Lightsail WebinarAWS Germany
 
OOP 2014 SQL oder NoSQL - die Auswahl der richtigen Datenbankplattform für di...
OOP 2014 SQL oder NoSQL - die Auswahl der richtigen Datenbankplattform für di...OOP 2014 SQL oder NoSQL - die Auswahl der richtigen Datenbankplattform für di...
OOP 2014 SQL oder NoSQL - die Auswahl der richtigen Datenbankplattform für di...AWS Germany
 
SQL oder NoSQL - Die Auswahl der richtigen Datenbankplattform für die Cloud
SQL oder NoSQL - Die Auswahl der richtigen Datenbankplattform für die CloudSQL oder NoSQL - Die Auswahl der richtigen Datenbankplattform für die Cloud
SQL oder NoSQL - Die Auswahl der richtigen Datenbankplattform für die CloudAWS Germany
 
CloudOps Summit 2012 - 3 Wege in die Cloud
CloudOps Summit 2012 - 3 Wege in die CloudCloudOps Summit 2012 - 3 Wege in die Cloud
CloudOps Summit 2012 - 3 Wege in die CloudSascha Dittmann
 
3 Wege in die Cloud, Sascha Dittmann, Ernst & Young
3 Wege in die Cloud, Sascha Dittmann, Ernst & Young3 Wege in die Cloud, Sascha Dittmann, Ernst & Young
3 Wege in die Cloud, Sascha Dittmann, Ernst & YoungCloudOps Summit
 
Süßwarenhersteller und Discounter launchen Webportal für EM 2016-Gewinnspiel
Süßwarenhersteller und Discounter launchen Webportal für EM 2016-GewinnspielSüßwarenhersteller und Discounter launchen Webportal für EM 2016-Gewinnspiel
Süßwarenhersteller und Discounter launchen Webportal für EM 2016-GewinnspielAWS Germany
 
Cloud Computing: Eine Einführung
Cloud Computing: Eine EinführungCloud Computing: Eine Einführung
Cloud Computing: Eine EinführungTelekom MMS
 
Webinar 4 Server in der Cloud – die AWS Compute Dienste
Webinar 4 Server in der Cloud – die AWS Compute DiensteWebinar 4 Server in der Cloud – die AWS Compute Dienste
Webinar 4 Server in der Cloud – die AWS Compute DiensteAWS Germany
 
Performance durch Caching
Performance durch CachingPerformance durch Caching
Performance durch CachingAOE
 
Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!OPEN KNOWLEDGE GmbH
 
Caching - Hintergründe, Patterns und Best Practices
Caching - Hintergründe, Patterns und Best PracticesCaching - Hintergründe, Patterns und Best Practices
Caching - Hintergründe, Patterns und Best PracticesMichael Plöd
 
Webinar Neues von der re:invent 2013 Teil 1: PostgreSQL RDS, CloudTrail, neue...
Webinar Neues von der re:invent 2013 Teil 1: PostgreSQL RDS, CloudTrail, neue...Webinar Neues von der re:invent 2013 Teil 1: PostgreSQL RDS, CloudTrail, neue...
Webinar Neues von der re:invent 2013 Teil 1: PostgreSQL RDS, CloudTrail, neue...AWS Germany
 
Jug nbg containerplattform dcos
Jug nbg containerplattform dcosJug nbg containerplattform dcos
Jug nbg containerplattform dcosRalf Ernst
 
Überblick Oracle Datenbank Hochverfügbarkeit
Überblick Oracle Datenbank HochverfügbarkeitÜberblick Oracle Datenbank Hochverfügbarkeit
Überblick Oracle Datenbank HochverfügbarkeitIleana Somesan
 

Ähnlich wie High Performance Multi-Server Magento in der Cloud (20)

High Performance Multi-Server Magento in der Cloud
High Performance Multi-Server Magento in der CloudHigh Performance Multi-Server Magento in der Cloud
High Performance Multi-Server Magento in der Cloud
 
papaya AWS Präsentation CeBIT 2010
papaya AWS Präsentation CeBIT 2010papaya AWS Präsentation CeBIT 2010
papaya AWS Präsentation CeBIT 2010
 
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von AngrybirdCloud Deployment und (Auto)Scaling am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
 
Meet Magento - High performance magento
Meet Magento - High performance magentoMeet Magento - High performance magento
Meet Magento - High performance magento
 
Amazon Lightsail Webinar
Amazon Lightsail WebinarAmazon Lightsail Webinar
Amazon Lightsail Webinar
 
OOP 2014 SQL oder NoSQL - die Auswahl der richtigen Datenbankplattform für di...
OOP 2014 SQL oder NoSQL - die Auswahl der richtigen Datenbankplattform für di...OOP 2014 SQL oder NoSQL - die Auswahl der richtigen Datenbankplattform für di...
OOP 2014 SQL oder NoSQL - die Auswahl der richtigen Datenbankplattform für di...
 
SQL oder NoSQL - Die Auswahl der richtigen Datenbankplattform für die Cloud
SQL oder NoSQL - Die Auswahl der richtigen Datenbankplattform für die CloudSQL oder NoSQL - Die Auswahl der richtigen Datenbankplattform für die Cloud
SQL oder NoSQL - Die Auswahl der richtigen Datenbankplattform für die Cloud
 
CloudOps Summit 2012 - 3 Wege in die Cloud
CloudOps Summit 2012 - 3 Wege in die CloudCloudOps Summit 2012 - 3 Wege in die Cloud
CloudOps Summit 2012 - 3 Wege in die Cloud
 
Amazon Redshift
Amazon RedshiftAmazon Redshift
Amazon Redshift
 
3 Wege in die Cloud, Sascha Dittmann, Ernst & Young
3 Wege in die Cloud, Sascha Dittmann, Ernst & Young3 Wege in die Cloud, Sascha Dittmann, Ernst & Young
3 Wege in die Cloud, Sascha Dittmann, Ernst & Young
 
Süßwarenhersteller und Discounter launchen Webportal für EM 2016-Gewinnspiel
Süßwarenhersteller und Discounter launchen Webportal für EM 2016-GewinnspielSüßwarenhersteller und Discounter launchen Webportal für EM 2016-Gewinnspiel
Süßwarenhersteller und Discounter launchen Webportal für EM 2016-Gewinnspiel
 
Cloud Computing: Eine Einführung
Cloud Computing: Eine EinführungCloud Computing: Eine Einführung
Cloud Computing: Eine Einführung
 
Webinar 4 Server in der Cloud – die AWS Compute Dienste
Webinar 4 Server in der Cloud – die AWS Compute DiensteWebinar 4 Server in der Cloud – die AWS Compute Dienste
Webinar 4 Server in der Cloud – die AWS Compute Dienste
 
Digicomp sqlday migration
Digicomp sqlday migrationDigicomp sqlday migration
Digicomp sqlday migration
 
Performance durch Caching
Performance durch CachingPerformance durch Caching
Performance durch Caching
 
Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!Cloud-native and Enterprise Java? Hold my beer!
Cloud-native and Enterprise Java? Hold my beer!
 
Caching - Hintergründe, Patterns und Best Practices
Caching - Hintergründe, Patterns und Best PracticesCaching - Hintergründe, Patterns und Best Practices
Caching - Hintergründe, Patterns und Best Practices
 
Webinar Neues von der re:invent 2013 Teil 1: PostgreSQL RDS, CloudTrail, neue...
Webinar Neues von der re:invent 2013 Teil 1: PostgreSQL RDS, CloudTrail, neue...Webinar Neues von der re:invent 2013 Teil 1: PostgreSQL RDS, CloudTrail, neue...
Webinar Neues von der re:invent 2013 Teil 1: PostgreSQL RDS, CloudTrail, neue...
 
Jug nbg containerplattform dcos
Jug nbg containerplattform dcosJug nbg containerplattform dcos
Jug nbg containerplattform dcos
 
Überblick Oracle Datenbank Hochverfügbarkeit
Überblick Oracle Datenbank HochverfügbarkeitÜberblick Oracle Datenbank Hochverfügbarkeit
Überblick Oracle Datenbank Hochverfügbarkeit
 

Mehr von AOE

Multithreaded XML Import (San Francisco Magento Meetup)
Multithreaded XML Import (San Francisco Magento Meetup)Multithreaded XML Import (San Francisco Magento Meetup)
Multithreaded XML Import (San Francisco Magento Meetup)AOE
 
rock-solid TYPO3 development with continuous integration and deployment
rock-solid TYPO3 development with continuous integration and deploymentrock-solid TYPO3 development with continuous integration and deployment
rock-solid TYPO3 development with continuous integration and deploymentAOE
 
Agile Management - Best Practice Day der Deutschen Bahn am 17.10.2013
Agile Management - Best Practice Day der Deutschen Bahn am 17.10.2013Agile Management - Best Practice Day der Deutschen Bahn am 17.10.2013
Agile Management - Best Practice Day der Deutschen Bahn am 17.10.2013AOE
 
Continuous Quality Assurance using Selenium WebDriver
Continuous Quality Assurance using Selenium WebDriverContinuous Quality Assurance using Selenium WebDriver
Continuous Quality Assurance using Selenium WebDriverAOE
 
Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reac...
Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reac...Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reac...
Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reac...AOE
 
SONY on TYPO3 - Rapid Global CMS Deployment
SONY on TYPO3 - Rapid Global CMS DeploymentSONY on TYPO3 - Rapid Global CMS Deployment
SONY on TYPO3 - Rapid Global CMS DeploymentAOE
 
The typo3.org Relaunch Project
The typo3.org Relaunch ProjectThe typo3.org Relaunch Project
The typo3.org Relaunch ProjectAOE
 
Searchperience Indexierungspipeline
Searchperience   IndexierungspipelineSearchperience   Indexierungspipeline
Searchperience IndexierungspipelineAOE
 
Selenium 2 for PHP(Unit)
Selenium 2 for PHP(Unit)Selenium 2 for PHP(Unit)
Selenium 2 for PHP(Unit)AOE
 
Angrybirds Magento Cloud Deployment
Angrybirds Magento Cloud DeploymentAngrybirds Magento Cloud Deployment
Angrybirds Magento Cloud DeploymentAOE
 
T3DD12 Caching with Varnish
T3DD12 Caching with VarnishT3DD12 Caching with Varnish
T3DD12 Caching with VarnishAOE
 
T3DD12 community extension
T3DD12  community extensionT3DD12  community extension
T3DD12 community extensionAOE
 
Performance measurement and tuning
Performance measurement and tuningPerformance measurement and tuning
Performance measurement and tuningAOE
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven DesignAOE
 
Debugging, Monitoring and Profiling in TYPO3
Debugging, Monitoring and Profiling in TYPO3Debugging, Monitoring and Profiling in TYPO3
Debugging, Monitoring and Profiling in TYPO3AOE
 
Panasonic search
Panasonic searchPanasonic search
Panasonic searchAOE
 
Open Source CMS TYPO3 at Cisco WebEx
Open Source CMS TYPO3 at Cisco WebExOpen Source CMS TYPO3 at Cisco WebEx
Open Source CMS TYPO3 at Cisco WebExAOE
 
Case Study NDD Distribution on TYPO3
Case Study NDD Distribution on TYPO3Case Study NDD Distribution on TYPO3
Case Study NDD Distribution on TYPO3AOE
 
Monier Enterprise Web CMS Global Relaunch
Monier Enterprise Web CMS Global RelaunchMonier Enterprise Web CMS Global Relaunch
Monier Enterprise Web CMS Global RelaunchAOE
 
Hankook Tire Europe TYPO3 Implementation
Hankook Tire Europe TYPO3 ImplementationHankook Tire Europe TYPO3 Implementation
Hankook Tire Europe TYPO3 ImplementationAOE
 

Mehr von AOE (20)

Multithreaded XML Import (San Francisco Magento Meetup)
Multithreaded XML Import (San Francisco Magento Meetup)Multithreaded XML Import (San Francisco Magento Meetup)
Multithreaded XML Import (San Francisco Magento Meetup)
 
rock-solid TYPO3 development with continuous integration and deployment
rock-solid TYPO3 development with continuous integration and deploymentrock-solid TYPO3 development with continuous integration and deployment
rock-solid TYPO3 development with continuous integration and deployment
 
Agile Management - Best Practice Day der Deutschen Bahn am 17.10.2013
Agile Management - Best Practice Day der Deutschen Bahn am 17.10.2013Agile Management - Best Practice Day der Deutschen Bahn am 17.10.2013
Agile Management - Best Practice Day der Deutschen Bahn am 17.10.2013
 
Continuous Quality Assurance using Selenium WebDriver
Continuous Quality Assurance using Selenium WebDriverContinuous Quality Assurance using Selenium WebDriver
Continuous Quality Assurance using Selenium WebDriver
 
Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reac...
Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reac...Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reac...
Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reac...
 
SONY on TYPO3 - Rapid Global CMS Deployment
SONY on TYPO3 - Rapid Global CMS DeploymentSONY on TYPO3 - Rapid Global CMS Deployment
SONY on TYPO3 - Rapid Global CMS Deployment
 
The typo3.org Relaunch Project
The typo3.org Relaunch ProjectThe typo3.org Relaunch Project
The typo3.org Relaunch Project
 
Searchperience Indexierungspipeline
Searchperience   IndexierungspipelineSearchperience   Indexierungspipeline
Searchperience Indexierungspipeline
 
Selenium 2 for PHP(Unit)
Selenium 2 for PHP(Unit)Selenium 2 for PHP(Unit)
Selenium 2 for PHP(Unit)
 
Angrybirds Magento Cloud Deployment
Angrybirds Magento Cloud DeploymentAngrybirds Magento Cloud Deployment
Angrybirds Magento Cloud Deployment
 
T3DD12 Caching with Varnish
T3DD12 Caching with VarnishT3DD12 Caching with Varnish
T3DD12 Caching with Varnish
 
T3DD12 community extension
T3DD12  community extensionT3DD12  community extension
T3DD12 community extension
 
Performance measurement and tuning
Performance measurement and tuningPerformance measurement and tuning
Performance measurement and tuning
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Debugging, Monitoring and Profiling in TYPO3
Debugging, Monitoring and Profiling in TYPO3Debugging, Monitoring and Profiling in TYPO3
Debugging, Monitoring and Profiling in TYPO3
 
Panasonic search
Panasonic searchPanasonic search
Panasonic search
 
Open Source CMS TYPO3 at Cisco WebEx
Open Source CMS TYPO3 at Cisco WebExOpen Source CMS TYPO3 at Cisco WebEx
Open Source CMS TYPO3 at Cisco WebEx
 
Case Study NDD Distribution on TYPO3
Case Study NDD Distribution on TYPO3Case Study NDD Distribution on TYPO3
Case Study NDD Distribution on TYPO3
 
Monier Enterprise Web CMS Global Relaunch
Monier Enterprise Web CMS Global RelaunchMonier Enterprise Web CMS Global Relaunch
Monier Enterprise Web CMS Global Relaunch
 
Hankook Tire Europe TYPO3 Implementation
Hankook Tire Europe TYPO3 ImplementationHankook Tire Europe TYPO3 Implementation
Hankook Tire Europe TYPO3 Implementation
 

High Performance Multi-Server Magento in der Cloud

  • 1. High Performance Multi-Server Magento in der Cloud Fabrizio Branca Meet Magento #6.12 in Leipzig
  • 3. Und Sie?! • Wer war bei meinen Caching/Varnish Vortrag letztes Jahr? • Wer betreibt einen Magento Shop auf mehr als einem Frontend-Server? • Wer hat Erfahrungen mit Amazon AWS oder Cloud-Hosting im Allgemeinen? • Wer betreibt einen Shop mit mehr als 500 Bestellungen am Tag? • 1000 Bestellungen am Tag? • 10 pro Minute?
  • 8. Das Angry Birds Magento Universum DRM Server 3 Storefronts Custom Banner Catalog (US, EU, ASIA) Reporting Management Rules Mail Service Warehouse Custom Tax, Splitshipping Custom Shipping … Inventory Giftcards Warehouse / Fullfillment Inventory Braintree Management
  • 9. Anforderungen • Gutes, flexibles Shopsystem • Hochverfügbar / Ausfallsicher • Lastspitzen • Schnell • Backendserver unabhängig von den Frontend-Instanzen • Effizientes und unabhängige Abarbeitung von Hintergrund-Tasks • Shop-Betrieb darf nicht von neu hinzukommenden oder wegfallenden Server-Instanzen oder neuen Deployments beeinträchtigt werden
  • 11. Cloud Services EC2 S3 RDS Cloud- Elasti- ELB Route 53 Front Cache Amazon AWS Console Management Monitoring Deployments RightScale Services Logging Auto-Scaling Scripting API
  • 12. Magento in der Cloud
  • 13. Share nothing? JS/CSS Code Bundles Assets Produktbilder, Server Daten- CMS-Bilder, Skalierte Bilder bank Session Cache Storage
  • 14. Magento Anpassungen für die Cloud • MinifyJavaScript + CSS während des Builds • JavaScript + CSS mit Zeitstempel versehen und auf allen Servern verfügbar machen • Deployment Name im Cache Prefix Aoe_JsCssTstamp • Cache-Warmup Script als Teil des Deployments • Health-Checks für Varnish • Automatisches und manuelles Varnish Purging • E-Mail Service Aoe_Static • Asset-Handling
  • 15. Sonstige Module Aoe_Scheduler Aoe_Apilog
  • 16. shop.angrybirds.com CloudFront S3 Route 53 CloudFront CDN for Assets Assets Storage DNS-Service CDN for Skin ELB Load Balancer Monitoring Logging EC2 EC2 Varnish Array EC2 Backend Array EC2 EC2 Frontend Array EC2 Worker Array DRM Mail S3 ElastiCache RDS Deployment Cache Backend MySQL Giftcards Braintree
  • 17. shop.angrybirds.com Direkter Zugriff mit lokalem Hosteintrag Route 53 zum Testen DNS-Service ELB Load Balancer X Deployment X+1 Release Y Cache warming EC2 EC2 Varnish Array EC2 EC2 Backend Array EC2 EC2 Frontend Array EC2 Worker Array S3 RDS Deployment MySQL
  • 18. Deployment / Rollback shop.angrybirds.com Route 53 DNS-Service ELB ELB Load Balancer Load Balancer Deployment X Deployment X+1 Release Y Varnish Array EC2 EC2 Frontend Array EC2 Worker Array EC2 EC2 Backend Array EC2 EC2
  • 19. Downtime während eines Deployments:
  • 20. Alle Warenkörbe, aktive Logins und Sessions bleiben beim Deployment / Rollback erhalten.
  • 22. Optimierungsfelder Magento Frontend Caching
  • 23. Frontend-Optimierungen JavaScript / CSS • Bundling (Magento) • Minifying (mit YUI Compressor) • Gzip-Komprimierung (Apache) • Zeitstempel im Dateiennamen für lange Cachedauer Aoe_JsCssTstamp Cache-Header senden CDN (Cloudfront) • Produktbilder (+ skalierte Versionen), CMS-Bilder,... • Skin • JS/CSS
  • 24. Magento-Optimierungen Logging reduzieren Uncachebare Features entfernen Caching Aoe_AsyncCache • Asynchronous Cache Clearing Queue • Alte Cache-Einträge löschen Aoe_CacheCleaner Cookie Storage von Benutzername und Warenkorbinhalt Ajax-Warenkorb und... Profiling, Profiling, Profiling,… (xdebug + kcachegrind, Newrelic, xhprof)
  • 25. Caching 95% der Hits sind cachebar! 5% dynamischer Inhalt Startseite Kategorien Warenkorb Produkte Checkout CMS Kundenkonto
  • 26. Caching Varnish Magento Reverse Proxy http://www.fabrizio-branca.de/make-your-magento-store-fly-using-varnish.html
  • 27. Lösungen Aoe_Static Magneto_Varnish Caching + Purging Handling von dynamischem Content
  • 28. Lessons learned • 404s sind teuer => cache or redirect • Cloudfront mit S3 Backend kann kein gzip => deploy time bundeling/compression • Kein Reports auf der Live-Datenbank! • Man kann nicht alles vorhersagen => Aber man kann vorbereitet sein, schnell zu reagieren => continuous deployment
  • 31. Magento Installationspaket Dateien* ‣htdocs [Magento Source] Dateien ‣.modman [Custom Packages] ‣media System- storage SVN GIT Datenbank- Installer Tabellen Settings ChangeLog ‣URLs ‣Datenbank-Parameter ‣… Settings * http://www.webguys.de/magento/turchen-08-magento-projekte-mit-dem-module-manager-clever-strukturieren/
  • 32. Deployment Pipeline Installation auf Acceptance Performance Build „Latest“ Unit-Tests Tests Tests System PHPUnit
  • 33. Deployment Pipeline Installation auf Cloud Integration Cloud Deployment Copy to S3 Deployment Tests Deployment System Staging AOE + Rovio Production
  • 34. Launch! USA wacht auf Space game launch Array skaliert hoch Deployment des neuen Releases
  • 37. Danke! http://www.aoemedia.de http://www.fabrizio-branca.de @aoemedia @fbrnc