SlideShare une entreprise Scribd logo
1  sur  63
Télécharger pour lire hors ligne
Developer Conference Hamburg 2012:


Cloud Deployment und
(Auto)Scaling
am Beispiel von
Angrybird

                                     Presented by
                                     Daniel Pötzinger
CIO
AOE media


        „Agilist“



               Open Source



                             Devel oper
100              6
     PEOPLE
                 COUNTRIES


                              13
                              YEARS



                          2700%
                          GROWTH

CLIENTS        Open
              Source
              COMMUNITY
Und Sie?
 • Wer betreibt einen Magento Shop?
 • Wer hat Erfahrung mit cloud hosting/ AWS?
 • Wer betreibt eine Seite mit mehr als 100
 Seitenaufrufen / Sekunde?
 •mehr als 1000 Seiten/Sekunde?
Performance Bausteine
                                            Applikations                  Cluster & Cloud
      HTTP & Co
                                            Architektur                    Infrastructure

        HTTP Protocol                        Cache Strategy                 Provisionierung

        Proxy Caches                          Algorithmen                    Autoscaling

        Site Optimisation                        Services                   geteilte Resourcen


Besser werden und Bottlenecks finden...
   User Monitoring &            Profiling              Monitoring           Performance
       Analytics            (xdebug, newrelic)        (munin, collectd)        Tests

Stabil und schnell ausliefern mit....
                                 Continuous Delivery
Irregular Traffic Behaviour
Das Angry Birds Magento Universum
                                                      DRM Server

          Storefronts   Reporting

         Products +
                        Ordermgmt                 Mail Service
         Warehouse




                                             Giftcards




     Manage Warehouse   Fullfillment   Braintree
Das Angry Birds Magento Universum
                        Sh ipw ire
                                          eltw eite                   DRM Server

                         Reporting lt
                           rwa       et w
          Storefronts
                        Ve
                                      äus er +
         Products +      War   enh
                        Ordermgmt
         Warehouse                                                Mail Service

                          Bes   tand
                                            sb este
                                 des   t da
                           Fin                               Giftcards
                                         out ing“
                            „Pa    ketr
     Manage Warehouse    Fullfillment                  Braintree
Why Amazon Cloud ?
✓ Scales quickly on demand
✓ Pay only what you need
Powerfull AWS Services


  EC2    S3         RDS      Cloud     Elastic   ELB   R53
                             Front     Cache



              Amazon Webservices & Amazon Console




                       Rightscale Services
Powerfull AWS Servicesq
                   e Re              u irem ents
                   chite ctur                        r and
                 Ar                       le Failove
                             bar (M  ultip
               H ochv  erfüg
                      balan cing)               eiten
               Load                acken   darb
  EC2    S3        RDS d
                     nten   und B Cloud          Elastic ELB
                F ro
                 trenn  en         Frontgrund     asks
                                                 tCache
                             von H  inter
                  Man  agen

                                            nittstellen
                                ig vo n Sch
                      nab häng
            Amazon UWebservices & Amazon Console
                                       & Sca lable
                           Fast  Fast
                     Fast

                              Down time
                      keine
                       Rightscale Services
Cloud Architecture
Cloud Front                  S3                                        R53          Cloud Front
  CDN for Assets         Assets Storage                                 DNS           CDN for Skin
                                                    ELB
„Deployment Definition“
+ Autoscaling                                                                  API        Monitoring
                                            EC2   EC2
                                                        Varnish Array



  EC2     EC2   EC2                         EC2   EC2
                      Frontend Array                    Backend Array         EC2        Worker Array




        Elastic Cache              S3
         Cache Backend         Deployment
                                                           RDS
                                                            RDS
Um zu Skalieren muss man den
  Flaschenhals finden und
         eliminieren
typische Flaschenhälse
                                 Offloading, Optimisation,
                     CPU         Caching, add more CPU (scale)...


                                 Offloading, Optimisation,
      Traffic     Storage (DB)   Scale Storage UP (H/V),
                                 Replace Storage...


                                 Offloading (CDN, Proxy)
                  Bandbreite     Optimize Size of the Site
                                 Scale Network IS...
HTTP Caching

                                     CDN



            Browser




                                                              (Magento)
                                                               Frontend
  Traffic             Traffic
                                                    Purging

                                   Varnish
                                (Reverse Proxy)    Traffic




                      Offload expensive requests
HTTP Caching
 1. Seiten cachebar machen
     • HTTP Cache Header verstehen und Browser Cache nutzen
     •Reverse Proxy Cache nutzen
 2. Dynamic zum Client verschieben
 3. Ajax oder ESI für dynamische / personalisierte Teile
 verwenden
 4. JS und CSS packen und minifizieren + Timestamp
 5. CDN für statische Assets verwenden
 6.Website performance Optimierungen (YSlow und Co)
10.000+
 MÖGLICHE Seiten / Sekunde aus ELB + Varnish
Application Tuning ist
gaaanz Individuell!
Application Tuning braucht Profiling
 1. Isoliertes Profiling
    •XDebug + kcachegrind
    •XHProf
 2. Profiling unter Last
    •jMeter
    •IS Monitoring
    •XDebug...
 3.Profiling unter Echtlast
    • Newrelic
Application Tuning - Beispiele
 • Loglevel reduzieren und Logging deaktivieren
 • Viele Datenbank Abfragen optimiert
 • Cleanup Cronjobs (Order, Logs, Sessions, Baskets...)
 • Session Storage durch Memcache ersetzen
 • Datenbank Locks und Deadlocks vermeiden:
  • Read Slaves für Reportgenerierung
  • Queueing: Syncrone zu Asyncronen Prozessen machen
  • Replace Search by SOLR / Searchperience
 •Richtiger Umgang mit Caches
wichtige Cachingregeln
 1. Ziel ist eine hohe Hitrate
 2. Caches dürfen nicht geflutet werden
 3. Cache Backend müssen „weise“ ausgewählt werden
 4. Aufpassen den Cache nicht auf einmal zu verlieren.
 5. Cachen ist einfach. Aber wichtig ist die caches gut
 aufzuräumen
 6. Einzelne Cacheeinträge mussen „on-demand“
 aktualisiert oder gelöscht werden
Andere Tipps
 1. System und Versionsabhängigen Cacheprefix einführen
 2. Cache Warmup Script haben und im Deployment nutzen
 3. E-Mail Service für das (Massen) versenden von Mails
 verwenden
 4. „Design for the Cloud“
     • Immer im Kopf haben das man einen Cluster hat
     • Sinnvolles Handling von gemeinsamen Resourcen
     (Assets, Cachebackend)
     • Plan for Failover...
10.000
MÖGLICHE Bestellungen pro Stunde
Autoscaling
                                      •Gruppen mit Policys




                     Frontend Array
                                        • min, max
                                        • Votingrules for scale up/
                                        down

     Traffic
                                        •fehlerhafte Instanzen
                                        ersetzen

               EC2


                     EC2
                                      • Provisionierungszeit und
               EC2


                     EC2
               EC2
                                      Policies abstimmen

                     EC2
                                      • „Calm time“
(AWS) Lessons learned
 1. 404s können sehr teuer sein
    • Lasttest mit accesslog
    •Cachen oder Weiterleiten
 2. Cloudfront mit S3 backend
 kann kein GZIP
 3.Festes ELB timeout von 60sec :-(
 4.Man kann nicht alles vorhersehen!
    => Aber man kann vorbereitet sein Probleme schnell zu fixen
    => continuous    deployment
Continuous
Deployment
Don‘t be scared of
releasing to
production
late night bugfixing?
So muss ein Deployment
aussehen
Und Sie?
 • Wer macht Continuous Integration?
 • Wer Scrum, Kanban oder XP?
 • Wer automatisiert Akzeptanztest?
   • Bei wem sind diese grün?
 • Wer macht Continuous Deployment?
 • Continuos Delivery?
 • DevOps?
Definition Continuous Deployment


 We want on-demand deployment
 of tested features and fixes
 in a quick and reliable way
Wir erreichen das durch

Alles zu automatisieren
   Build
           Testing
                     Deployment
flic
                  kr
            tim        dep
               es            loy
                       ad      s3
                          ay..
..und                         .



das alles häufig
  ausführen
The Deployment
Pipeline
Angry Birds Deployment Pipeline
               Backup
    SVN
               Storage



   Commit                        Install on      Selenium        Performance
              Unit Tests
  and Build                       „latest“    Acceptance Tests      Tests




                 Build Downstream and Test Strategy


                           Feedback to Developers
Magento Installation Package
                             ‣ htdocs [Magento Source]
                             ‣ media maintenance mode
        ‣ Filesystem               1.set
                             ‣ .modman [Custom Packages]
                                   2.Delta Package prepare
        ‣ Database           ‣ changelog.txt
                                   3.apply Database
        ‣ Install Binaries         4.sync files
                                   5.run modman deploy-all
        ‣ settings.php             6.adjust Settings
                                   7.Post install:
                                     fix p. / cache clean / ...
Angry Birds Deployment Pipeline




  Install on                   Cloud     Integration     Cloud
 Deployment    Copy to S3   Deployment      Tests      deployment
   System                     Staging    AOE + Rovio   production
Cloud Deployment
                                           R53
Deployment „Version 88“                    DNS      Deployment „Version 89“


               Varnish Array                        Start new Varnish Array by
                                                               release
  ELB              V   V   V                          ELB          V V V
                                                    ✓ cloning old deployment
                                                    ✓ adjusting release number
    Autoscaling        Backend    Worker               Autoscaling    Backend    Worker
  Frontend Array        Array      Array             Frontend Array    Array      Array
    FE FE FE           BE BE BE    W                   FE FE FE       BE BE BE     W



                                            RDS
                                            mySQL
                                                                          S3
0
Sekunden Downtime
Don‘t be scared of
     Es geht nicht nur um den Quellcode!
releasing to
production
Configuration
                             Data




Environment


                Deployment    Source Code
DevOps?
„the cultural aspect of concentrating on business results rather than
technical details. Devops incorporates a lot of lean principles, focusing on
improving the collaboration between developers and operations folks.“
                                            http://www.agileweboperations.com/lean-agile-devops-related




                        „Cloud Sprint“
                     [ Dev + Ops and the Cloud ]



                  Infrastructure as a Code
                      [Provisioning with Chef]
Beispiel: Provisionierung einer Varnish Instanz
 1. EC2 Instanz von „nackter“ AIM starten
 2.Infrastruktur Installieren:
     1. RS Logging und Monitoring (syslog-ng, collectd)
     2.Tags bekommen
     3.Varnish installieren
     4. Monitoring (Collectd) Installieren
 3. Infrastruktur konfigurieren:
     1. aktuelle Varnish Konfiguration aus Deployment einrichten
     2. Cronjob für die Aktualisierung der Backends und ACLs installieren
     (Script fragt regelmäßig die Right-Scale API nach aktiven EC2 Instancen im aktuellem Deployment mit dem
     richtigem Tag )

     3. Instanz beim richtigem ELB registrieren
The real life
Day 1 - Release 1
Day 2 - Release 2 - „get ready for Space“
Day 3 - „People want it so badly“

                                      USA wakes up
                    Space game
                    launched
                    Array scales up
      New release
      deployed
Day 4 - Release 3 „Performance Improvement“

40% average
CPU usage.

1-2 FE Servers
are enough
5000
(echte) Besucher gleichzeitig
Danke fürs zuhören!

Fragen?

           Follow us on Twitter:

           AOE:      @aoemedia
           Daniel P: @danpoetz

Contenu connexe

Similaire à 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 magentoAOE
 
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
 
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
 
Cloud Computing: Eine Einführung
Cloud Computing: Eine EinführungCloud Computing: Eine Einführung
Cloud Computing: Eine EinführungTelekom MMS
 
Amazon Lightsail Webinar
Amazon Lightsail WebinarAmazon Lightsail Webinar
Amazon Lightsail WebinarAWS Germany
 
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
 
Data Is The New Oil
Data Is The New OilData Is The New Oil
Data Is The New OilParStream
 
Blueprints bei E-Commerce Workloads mit AWS
Blueprints bei E-Commerce Workloads mit AWSBlueprints bei E-Commerce Workloads mit AWS
Blueprints bei E-Commerce Workloads mit AWSroot360 GmbH
 
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“OPEN KNOWLEDGE GmbH
 
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
 
Amazon Web Services: Flaggschiff des Cloud Computings
Amazon Web Services: Flaggschiff des Cloud ComputingsAmazon Web Services: Flaggschiff des Cloud Computings
Amazon Web Services: Flaggschiff des Cloud ComputingsLothar Wieske
 
Do´s and Dont´s mit Oracle RDS
Do´s and Dont´s mit Oracle RDS Do´s and Dont´s mit Oracle RDS
Do´s and Dont´s mit Oracle RDS esentri AG
 
Einführung in AWS - Übersicht über die wichtigsten Services
Einführung in AWS - Übersicht über die wichtigsten Services Einführung in AWS - Übersicht über die wichtigsten Services
Einführung in AWS - Übersicht über die wichtigsten Services AWS Germany
 
Where are all transactions gone? Was in_der_cloud_alles_verboten_ist
Where are all transactions gone? Was in_der_cloud_alles_verboten_istWhere are all transactions gone? Was in_der_cloud_alles_verboten_ist
Where are all transactions gone? Was in_der_cloud_alles_verboten_istRamon Anger
 
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
 
Startup in den Wolken
Startup in den WolkenStartup in den Wolken
Startup in den WolkenPatrice Neff
 

Similaire à Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird (20)

Meet Magento - High performance magento
Meet Magento - High performance magentoMeet Magento - High performance magento
Meet Magento - High performance magento
 
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
 
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
 
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
 
Cloud Computing: Eine Einführung
Cloud Computing: Eine EinführungCloud Computing: Eine Einführung
Cloud Computing: Eine Einführung
 
Rails goes SOA
Rails goes SOARails goes SOA
Rails goes SOA
 
Amazon Lightsail Webinar
Amazon Lightsail WebinarAmazon Lightsail Webinar
Amazon Lightsail Webinar
 
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
 
Data Is The New Oil
Data Is The New OilData Is The New Oil
Data Is The New Oil
 
Blueprints bei E-Commerce Workloads mit AWS
Blueprints bei E-Commerce Workloads mit AWSBlueprints bei E-Commerce Workloads mit AWS
Blueprints bei E-Commerce Workloads mit AWS
 
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
 
Amazon Redshift
Amazon RedshiftAmazon Redshift
Amazon Redshift
 
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...
 
Amazon Web Services: Flaggschiff des Cloud Computings
Amazon Web Services: Flaggschiff des Cloud ComputingsAmazon Web Services: Flaggschiff des Cloud Computings
Amazon Web Services: Flaggschiff des Cloud Computings
 
Do´s and Dont´s mit Oracle RDS
Do´s and Dont´s mit Oracle RDS Do´s and Dont´s mit Oracle RDS
Do´s and Dont´s mit Oracle RDS
 
Einführung in AWS - Übersicht über die wichtigsten Services
Einführung in AWS - Übersicht über die wichtigsten Services Einführung in AWS - Übersicht über die wichtigsten Services
Einführung in AWS - Übersicht über die wichtigsten Services
 
Where are all transactions gone? Was in_der_cloud_alles_verboten_ist
Where are all transactions gone? Was in_der_cloud_alles_verboten_istWhere are all transactions gone? Was in_der_cloud_alles_verboten_ist
Where are all transactions gone? Was in_der_cloud_alles_verboten_ist
 
BizSpark goes Cloud
BizSpark goes CloudBizSpark goes Cloud
BizSpark goes Cloud
 
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
 
Startup in den Wolken
Startup in den WolkenStartup in den Wolken
Startup in den Wolken
 

Plus de 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
 
Performance durch Caching
Performance durch CachingPerformance durch Caching
Performance durch CachingAOE
 
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
 

Plus de 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
 
Performance durch Caching
Performance durch CachingPerformance durch Caching
Performance durch Caching
 
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
 

Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird

  • 1. Developer Conference Hamburg 2012: Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird Presented by Daniel Pötzinger
  • 2.
  • 3. CIO AOE media „Agilist“ Open Source Devel oper
  • 4. 100 6 PEOPLE COUNTRIES 13 YEARS 2700% GROWTH CLIENTS Open Source COMMUNITY
  • 5. Und Sie? • Wer betreibt einen Magento Shop? • Wer hat Erfahrung mit cloud hosting/ AWS? • Wer betreibt eine Seite mit mehr als 100 Seitenaufrufen / Sekunde? •mehr als 1000 Seiten/Sekunde?
  • 6. Performance Bausteine Applikations Cluster & Cloud HTTP & Co Architektur Infrastructure HTTP Protocol Cache Strategy Provisionierung Proxy Caches Algorithmen Autoscaling Site Optimisation Services geteilte Resourcen Besser werden und Bottlenecks finden... User Monitoring & Profiling Monitoring Performance Analytics (xdebug, newrelic) (munin, collectd) Tests Stabil und schnell ausliefern mit.... Continuous Delivery
  • 7.
  • 9. Das Angry Birds Magento Universum DRM Server Storefronts Reporting Products + Ordermgmt Mail Service Warehouse Giftcards Manage Warehouse Fullfillment Braintree
  • 10. Das Angry Birds Magento Universum Sh ipw ire eltw eite DRM Server Reporting lt rwa et w Storefronts Ve äus er + Products + War enh Ordermgmt Warehouse Mail Service Bes tand sb este des t da Fin Giftcards out ing“ „Pa ketr Manage Warehouse Fullfillment Braintree
  • 12. ✓ Scales quickly on demand ✓ Pay only what you need
  • 13. Powerfull AWS Services EC2 S3 RDS Cloud Elastic ELB R53 Front Cache Amazon Webservices & Amazon Console Rightscale Services
  • 14. Powerfull AWS Servicesq e Re u irem ents chite ctur r and Ar le Failove bar (M ultip H ochv erfüg balan cing) eiten Load acken darb EC2 S3 RDS d nten und B Cloud Elastic ELB F ro trenn en Frontgrund asks tCache von H inter Man agen nittstellen ig vo n Sch nab häng Amazon UWebservices & Amazon Console & Sca lable Fast Fast Fast Down time keine Rightscale Services
  • 15.
  • 17. Cloud Front S3 R53 Cloud Front CDN for Assets Assets Storage DNS CDN for Skin ELB „Deployment Definition“ + Autoscaling API Monitoring EC2 EC2 Varnish Array EC2 EC2 EC2 EC2 EC2 Frontend Array Backend Array EC2 Worker Array Elastic Cache S3 Cache Backend Deployment RDS RDS
  • 18. Um zu Skalieren muss man den Flaschenhals finden und eliminieren
  • 19. typische Flaschenhälse Offloading, Optimisation, CPU Caching, add more CPU (scale)... Offloading, Optimisation, Traffic Storage (DB) Scale Storage UP (H/V), Replace Storage... Offloading (CDN, Proxy) Bandbreite Optimize Size of the Site Scale Network IS...
  • 20. HTTP Caching CDN Browser (Magento) Frontend Traffic Traffic Purging Varnish (Reverse Proxy) Traffic Offload expensive requests
  • 21. HTTP Caching 1. Seiten cachebar machen • HTTP Cache Header verstehen und Browser Cache nutzen •Reverse Proxy Cache nutzen 2. Dynamic zum Client verschieben 3. Ajax oder ESI für dynamische / personalisierte Teile verwenden 4. JS und CSS packen und minifizieren + Timestamp 5. CDN für statische Assets verwenden 6.Website performance Optimierungen (YSlow und Co)
  • 22. 10.000+ MÖGLICHE Seiten / Sekunde aus ELB + Varnish
  • 24. Application Tuning braucht Profiling 1. Isoliertes Profiling •XDebug + kcachegrind •XHProf 2. Profiling unter Last •jMeter •IS Monitoring •XDebug... 3.Profiling unter Echtlast • Newrelic
  • 25. Application Tuning - Beispiele • Loglevel reduzieren und Logging deaktivieren • Viele Datenbank Abfragen optimiert • Cleanup Cronjobs (Order, Logs, Sessions, Baskets...) • Session Storage durch Memcache ersetzen • Datenbank Locks und Deadlocks vermeiden: • Read Slaves für Reportgenerierung • Queueing: Syncrone zu Asyncronen Prozessen machen • Replace Search by SOLR / Searchperience •Richtiger Umgang mit Caches
  • 26. wichtige Cachingregeln 1. Ziel ist eine hohe Hitrate 2. Caches dürfen nicht geflutet werden 3. Cache Backend müssen „weise“ ausgewählt werden 4. Aufpassen den Cache nicht auf einmal zu verlieren. 5. Cachen ist einfach. Aber wichtig ist die caches gut aufzuräumen 6. Einzelne Cacheeinträge mussen „on-demand“ aktualisiert oder gelöscht werden
  • 27. Andere Tipps 1. System und Versionsabhängigen Cacheprefix einführen 2. Cache Warmup Script haben und im Deployment nutzen 3. E-Mail Service für das (Massen) versenden von Mails verwenden 4. „Design for the Cloud“ • Immer im Kopf haben das man einen Cluster hat • Sinnvolles Handling von gemeinsamen Resourcen (Assets, Cachebackend) • Plan for Failover...
  • 29. Autoscaling •Gruppen mit Policys Frontend Array • min, max • Votingrules for scale up/ down Traffic •fehlerhafte Instanzen ersetzen EC2 EC2 • Provisionierungszeit und EC2 EC2 EC2 Policies abstimmen EC2 • „Calm time“
  • 30. (AWS) Lessons learned 1. 404s können sehr teuer sein • Lasttest mit accesslog •Cachen oder Weiterleiten 2. Cloudfront mit S3 backend kann kein GZIP 3.Festes ELB timeout von 60sec :-( 4.Man kann nicht alles vorhersehen! => Aber man kann vorbereitet sein Probleme schnell zu fixen => continuous deployment
  • 31.
  • 33.
  • 34. Don‘t be scared of releasing to production
  • 36. So muss ein Deployment aussehen
  • 37. Und Sie? • Wer macht Continuous Integration? • Wer Scrum, Kanban oder XP? • Wer automatisiert Akzeptanztest? • Bei wem sind diese grün? • Wer macht Continuous Deployment? • Continuos Delivery? • DevOps?
  • 38. Definition Continuous Deployment We want on-demand deployment of tested features and fixes in a quick and reliable way
  • 39. Wir erreichen das durch Alles zu automatisieren Build Testing Deployment
  • 40. flic kr tim dep es loy ad s3 ay.. ..und . das alles häufig ausführen
  • 41.
  • 43.
  • 44. Angry Birds Deployment Pipeline Backup SVN Storage Commit Install on Selenium Performance Unit Tests and Build „latest“ Acceptance Tests Tests Build Downstream and Test Strategy Feedback to Developers
  • 45. Magento Installation Package ‣ htdocs [Magento Source] ‣ media maintenance mode ‣ Filesystem 1.set ‣ .modman [Custom Packages] 2.Delta Package prepare ‣ Database ‣ changelog.txt 3.apply Database ‣ Install Binaries 4.sync files 5.run modman deploy-all ‣ settings.php 6.adjust Settings 7.Post install: fix p. / cache clean / ...
  • 46. Angry Birds Deployment Pipeline Install on Cloud Integration Cloud Deployment Copy to S3 Deployment Tests deployment System Staging AOE + Rovio production
  • 47. Cloud Deployment R53 Deployment „Version 88“ DNS Deployment „Version 89“ Varnish Array Start new Varnish Array by release ELB V V V ELB V V V ✓ cloning old deployment ✓ adjusting release number Autoscaling Backend Worker Autoscaling Backend Worker Frontend Array Array Array Frontend Array Array Array FE FE FE BE BE BE W FE FE FE BE BE BE W RDS mySQL S3
  • 49. Don‘t be scared of Es geht nicht nur um den Quellcode! releasing to production
  • 50. Configuration Data Environment Deployment Source Code
  • 51.
  • 52. DevOps? „the cultural aspect of concentrating on business results rather than technical details. Devops incorporates a lot of lean principles, focusing on improving the collaboration between developers and operations folks.“ http://www.agileweboperations.com/lean-agile-devops-related „Cloud Sprint“ [ Dev + Ops and the Cloud ] Infrastructure as a Code [Provisioning with Chef]
  • 53. Beispiel: Provisionierung einer Varnish Instanz 1. EC2 Instanz von „nackter“ AIM starten 2.Infrastruktur Installieren: 1. RS Logging und Monitoring (syslog-ng, collectd) 2.Tags bekommen 3.Varnish installieren 4. Monitoring (Collectd) Installieren 3. Infrastruktur konfigurieren: 1. aktuelle Varnish Konfiguration aus Deployment einrichten 2. Cronjob für die Aktualisierung der Backends und ACLs installieren (Script fragt regelmäßig die Right-Scale API nach aktiven EC2 Instancen im aktuellem Deployment mit dem richtigem Tag ) 3. Instanz beim richtigem ELB registrieren
  • 54.
  • 56.
  • 57. Day 1 - Release 1
  • 58. Day 2 - Release 2 - „get ready for Space“
  • 59. Day 3 - „People want it so badly“ USA wakes up Space game launched Array scales up New release deployed
  • 60. Day 4 - Release 3 „Performance Improvement“ 40% average CPU usage. 1-2 FE Servers are enough
  • 62.
  • 63. Danke fürs zuhören! Fragen? Follow us on Twitter: AOE: @aoemedia Daniel P: @danpoetz