Developer Conference Hamburg 2012:Cloud Deployment und(Auto)Scalingam Beispiel vonAngrybird                               ...
CIOAOE media        „Agilist“               Open Source                             Devel oper
100              6     PEOPLE                 COUNTRIES                              13                              YEARS...
Und Sie? • Wer betreibt einen Magento Shop? • Wer hat Erfahrung mit cloud hosting/ AWS? • Wer betreibt eine Seite mit mehr...
Performance Bausteine                                            Applikations                  Cluster & Cloud      HTTP &...
Irregular Traffic Behaviour
Das Angry Birds Magento Universum                                                      DRM Server          Storefronts   R...
Das Angry Birds Magento Universum                        Sh ipw ire                                          eltw eite    ...
Why Amazon Cloud ?
✓ Scales quickly on demand✓ Pay only what you need
Powerfull AWS Services  EC2    S3         RDS      Cloud     Elastic   ELB   R53                             Front     Cac...
Powerfull AWS Servicesq                   e Re              u irem ents                   chite ctur                      ...
Cloud Architecture
Cloud Front                  S3                                        R53          Cloud Front  CDN for Assets         As...
Um zu Skalieren muss man den  Flaschenhals finden und         eliminieren
typische Flaschenhälse                                 Offloading, Optimisation,                     CPU         Caching, a...
HTTP Caching                                     CDN            Browser                                                   ...
HTTP Caching 1. Seiten cachebar machen     • HTTP Cache Header verstehen und Browser Cache nutzen     •Reverse Proxy Cache...
10.000+ MÖGLICHE Seiten / Sekunde aus ELB + Varnish
Application Tuning istgaaanz Individuell!
Application Tuning braucht Profiling 1. Isoliertes Profiling    •XDebug + kcachegrind    •XHProf 2. Profiling unter Last  ...
Application Tuning - Beispiele • Loglevel reduzieren und Logging deaktivieren • Viele Datenbank Abfragen optimiert • Clean...
wichtige Cachingregeln 1. Ziel ist eine hohe Hitrate 2. Caches dürfen nicht geflutet werden 3. Cache Backend müssen „weise...
Andere Tipps 1. System und Versionsabhängigen Cacheprefix einführen 2. Cache Warmup Script haben und im Deployment nutzen ...
10.000MÖGLICHE Bestellungen pro Stunde
Autoscaling                                      •Gruppen mit Policys                     Frontend Array                  ...
(AWS) Lessons learned 1. 404s können sehr teuer sein    • Lasttest mit accesslog    •Cachen oder Weiterleiten 2. Cloudfron...
ContinuousDeployment
Don‘t be scared ofreleasing toproduction
late night bugfixing?
So muss ein Deploymentaussehen
Und Sie? • Wer macht Continuous Integration? • Wer Scrum, Kanban oder XP? • Wer automatisiert Akzeptanztest?   • Bei wem s...
Definition Continuous Deployment We want on-demand deployment of tested features and fixes in a quick and reliable way
Wir erreichen das durchAlles zu automatisieren   Build           Testing                     Deployment
flic                  kr            tim        dep               es            loy                       ad      s3       ...
The DeploymentPipeline
Angry Birds Deployment Pipeline               Backup    SVN               Storage   Commit                        Install ...
Magento Installation Package                             ‣ htdocs [Magento Source]                             ‣ media mai...
Angry Birds Deployment Pipeline  Install on                   Cloud     Integration     Cloud Deployment    Copy to S3   D...
Cloud Deployment                                           R53Deployment „Version 88“                    DNS      Deployme...
0Sekunden Downtime
Don‘t be scared of     Es geht nicht nur um den Quellcode!releasing toproduction
Configuration                             DataEnvironment                Deployment    Source Code
DevOps?„the cultural aspect of concentrating on business results rather thantechnical details. Devops incorporates a lot o...
Beispiel: Provisionierung einer Varnish Instanz 1. EC2 Instanz von „nackter“ AIM starten 2.Infrastruktur Installieren:    ...
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         ...
Day 4 - Release 3 „Performance Improvement“40% averageCPU usage.1-2 FE Serversare enough
5000(echte) Besucher gleichzeitig
Danke fürs zuhören!Fragen?           Follow us on Twitter:           AOE:      @aoemedia           Daniel P: @danpoetz
Cloud Deployment und (Auto)Scaling  am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling  am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling  am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling  am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling  am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling  am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling  am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling  am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling  am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling  am Beispiel von Angrybird
Cloud Deployment und (Auto)Scaling  am Beispiel von Angrybird
Upcoming SlideShare
Loading in...5
×

Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird

1,275

Published on

Continuous Delivery und Autoscaling von Enterprise Web-Applicationen in der Amazon Cloud

In diesem Vortrag zeigen wir am Beispiel des neuen Angrybird-Onlineshops, der zu Spitzenzeiten bis zu 10 Bestellungen pro Sekunde aufnehmen kann und dabei hochverfügbar ist, wie eine automatisch skalierende Cloud Infrastruktur sowie die nötigen Konzepte aussehen können.
Wir beschreiben die Herausforderungen und unsere Lösungen, um den Shop für ein Multi-Server-Setup vorzubereiten und zu betreiben. Spezielle Anforderungen an eine solche Architektur sowie die Integration von Reverse Proxies (Varnish), die Nutzung eines CDNs, verschiedene Cache-Strategien und weitere Optimierung sind ebenfalls Bestandteil dieses Vortrags. Außerdem stellen wir unsere automatisierte Cloud-Deployment-Strategien vor, angefangen von den Entwicklungsumgebungen, über den continuous Integration Server und unser Testing Framework bis hin zum A/B-Deployment in der Cloud.

Published in: Technology
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,275
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
16
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird

  1. 1. Developer Conference Hamburg 2012:Cloud Deployment und(Auto)Scalingam Beispiel vonAngrybird Presented by Daniel Pötzinger
  2. 2. CIOAOE media „Agilist“ Open Source Devel oper
  3. 3. 100 6 PEOPLE COUNTRIES 13 YEARS 2700% GROWTHCLIENTS Open Source COMMUNITY
  4. 4. 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?
  5. 5. Performance Bausteine Applikations Cluster & Cloud HTTP & Co Architektur Infrastructure HTTP Protocol Cache Strategy Provisionierung Proxy Caches Algorithmen Autoscaling Site Optimisation Services geteilte ResourcenBesser werden und Bottlenecks finden... User Monitoring & Profiling Monitoring Performance Analytics (xdebug, newrelic) (munin, collectd) TestsStabil und schnell ausliefern mit.... Continuous Delivery
  6. 6. Irregular Traffic Behaviour
  7. 7. Das Angry Birds Magento Universum DRM Server Storefronts Reporting Products + Ordermgmt Mail Service Warehouse Giftcards Manage Warehouse Fullfillment Braintree
  8. 8. 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
  9. 9. Why Amazon Cloud ?
  10. 10. ✓ Scales quickly on demand✓ Pay only what you need
  11. 11. Powerfull AWS Services EC2 S3 RDS Cloud Elastic ELB R53 Front Cache Amazon Webservices & Amazon Console Rightscale Services
  12. 12. 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
  13. 13. Cloud Architecture
  14. 14. 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
  15. 15. Um zu Skalieren muss man den Flaschenhals finden und eliminieren
  16. 16. 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...
  17. 17. HTTP Caching CDN Browser (Magento) Frontend Traffic Traffic Purging Varnish (Reverse Proxy) Traffic Offload expensive requests
  18. 18. 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)
  19. 19. 10.000+ MÖGLICHE Seiten / Sekunde aus ELB + Varnish
  20. 20. Application Tuning istgaaanz Individuell!
  21. 21. Application Tuning braucht Profiling 1. Isoliertes Profiling •XDebug + kcachegrind •XHProf 2. Profiling unter Last •jMeter •IS Monitoring •XDebug... 3.Profiling unter Echtlast • Newrelic
  22. 22. 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
  23. 23. 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
  24. 24. 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...
  25. 25. 10.000MÖGLICHE Bestellungen pro Stunde
  26. 26. 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“
  27. 27. (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
  28. 28. ContinuousDeployment
  29. 29. Don‘t be scared ofreleasing toproduction
  30. 30. late night bugfixing?
  31. 31. So muss ein Deploymentaussehen
  32. 32. 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?
  33. 33. Definition Continuous Deployment We want on-demand deployment of tested features and fixes in a quick and reliable way
  34. 34. Wir erreichen das durchAlles zu automatisieren Build Testing Deployment
  35. 35. flic kr tim dep es loy ad s3 ay....und .das alles häufig ausführen
  36. 36. The DeploymentPipeline
  37. 37. 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
  38. 38. 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 / ...
  39. 39. Angry Birds Deployment Pipeline Install on Cloud Integration Cloud Deployment Copy to S3 Deployment Tests deployment System Staging AOE + Rovio production
  40. 40. Cloud Deployment R53Deployment „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
  41. 41. 0Sekunden Downtime
  42. 42. Don‘t be scared of Es geht nicht nur um den Quellcode!releasing toproduction
  43. 43. Configuration DataEnvironment Deployment Source Code
  44. 44. DevOps?„the cultural aspect of concentrating on business results rather thantechnical details. Devops incorporates a lot of lean principles, focusing onimproving 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]
  45. 45. 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
  46. 46. The real life
  47. 47. Day 1 - Release 1
  48. 48. Day 2 - Release 2 - „get ready for Space“
  49. 49. Day 3 - „People want it so badly“ USA wakes up Space game launched Array scales up New release deployed
  50. 50. Day 4 - Release 3 „Performance Improvement“40% averageCPU usage.1-2 FE Serversare enough
  51. 51. 5000(echte) Besucher gleichzeitig
  52. 52. Danke fürs zuhören!Fragen? Follow us on Twitter: AOE: @aoemedia Daniel P: @danpoetz
  1. Gostou de algum slide específico?

    Recortar slides é uma maneira fácil de colecionar informações para acessar mais tarde.

×