Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

High Performance Multi-Server Magento in der Cloud

1,018 views

Published on

Published in: Technology
  • Be the first to comment

High Performance Multi-Server Magento in der Cloud

  1. 1. High PerformanceMulti-Server Magentoin der CloudFabrizio BrancaMeet Magento #6.12 in Leipzig
  2. 2. San Francisco
  3. 3. Und Sie?!• Wer war bei meinen Caching/Varnish Vortrag letztes Jahr?• Wer betreibt einen Magento Shop auf mehr als einemFrontend-Server?• Wer hat Erfahrungen mit Amazon AWS oder Cloud-Hostingim Allgemeinen?• Wer betreibt einen Shop mit mehr als 500 Bestellungen amTag?• 1000 Bestellungen am Tag?• 10 pro Minute?
  4. 4. Angry Birds
  5. 5. Angry Birds
  6. 6. Angry Birds
  7. 7. Angry Birds
  8. 8. DRM ServerMail ServiceGiftcardsBraintreeWarehouseInventory3 Storefronts(US, EU, ASIA)CustomReportingSplitshippingWarehouse /InventoryManagementFullfillmentBannerManagementCustom Tax,Custom ShippingCatalogRules…Das Angry Birds Magento Universum
  9. 9. Anforderungen• Gutes, flexibles Shopsystem• Hochverfügbar / Ausfallsicher• Lastspitzen• Schnell• Backendserver unabhängig von den Frontend-Instanzen• Effizientes und unabhängige Abarbeitung vonHintergrund-Tasks• Shop-Betrieb darf nicht von neu hinzukommenden oderwegfallenden Server-Instanzen oder neuen Deploymentsbeeinträchtigt werden
  10. 10. Lösungsbausteine
  11. 11. Cloud ServicesRightScale ServicesAmazon AWS ConsoleCloud-FrontElasti-CacheS3EC2 RDS ELB Route 53ManagementDeploymentsAuto-ScalingMonitoringLoggingScripting API
  12. 12. Magento in der Cloud
  13. 13. Share nothing?CodeCacheSessionStorageAssetsProduktbilder,CMS-Bilder,Skalierte BilderDaten-bankJS/CSSBundlesServer
  14. 14. Magento Anpassungen für die Cloud• MinifyJavaScript + CSS während des Builds• JavaScript + CSS mit Zeitstempel versehen und aufallen Servern verfügbar machen• Deployment Name im Cache Prefix• Cache-Warmup Script als Teil des Deployments• Health-Checks für Varnish• Automatisches und manuelles Varnish Purging• E-Mail Service• Asset-HandlingAoe_JsCssTstampAoe_Static
  15. 15. Sonstige ModuleAoe_Scheduler Aoe_Apilog
  16. 16. S3Assets StorageVarnish ArrayEC2Frontend ArrayCloudFrontCDN for SkinRDSMySQLS3DeploymentElastiCacheCache BackendELBLoad BalancerCloudFrontCDN for AssetsMonitoringBackend ArrayEC2 EC2EC2Worker ArrayEC2BraintreeMailDRMGiftcardsLoggingEC2Route 53DNS-Serviceshop.angrybirds.com
  17. 17. Deployment X+1Release YS3DeploymentRoute 53DNS-Serviceshop.angrybirds.comXVarnish ArrayEC2Frontend ArrayBackend ArrayEC2 Worker ArrayEC2ELBLoad BalancerEC2EC2EC2EC2CachewarmingDirekter Zugriff mitlokalem Hosteintragzum TestenRDSMySQL
  18. 18. Deployment X+1Release YVarnish ArrayFrontend ArrayELBLoad BalancerWorker ArrayEC2Deployment XEC2Backend ArrayEC2ELBLoad BalancerEC2EC2EC2EC2Deployment / RollbackRoute 53DNS-Serviceshop.angrybirds.com
  19. 19. Downtime während eines Deployments:
  20. 20. Alle Warenkörbe,aktive Logins und Sessionsbleiben beimDeployment / Rollbackerhalten.
  21. 21. Magento, schnell!
  22. 22. Magento Frontend CachingOptimierungsfelder
  23. 23. Frontend-OptimierungenJavaScript / CSS• Bundling (Magento)• Minifying (mit YUI Compressor)• Gzip-Komprimierung (Apache)• Zeitstempel im Dateiennamen für lange CachedauerCache-Header sendenCDN (Cloudfront)• Produktbilder (+ skalierte Versionen), CMS-Bilder,...• Skin• JS/CSSAoe_JsCssTstamp
  24. 24. Magento-OptimierungenLogging reduzierenUncachebare Features entfernenCaching• Asynchronous Cache Clearing Queue• Alte Cache-Einträge löschenCookie Storage von Benutzername und WarenkorbinhaltAjax-Warenkorbund... Profiling, Profiling, Profiling,…(xdebug + kcachegrind, Newrelic, xhprof)Aoe_AsyncCacheAoe_CacheCleaner
  25. 25. 95% der Hitssind cachebar!5% dynamischerInhaltStartseiteKategorienProdukteCMSWarenkorbCheckoutKundenkontoCaching
  26. 26. VarnishReverse ProxyMagentohttp://www.fabrizio-branca.de/make-your-magento-store-fly-using-varnish.htmlCaching
  27. 27. LösungenAoe_StaticCaching +Handling vondynamischem ContentMagneto_VarnishPurging
  28. 28. Lessons learned• 404s sind teuer=> cache or redirect• Cloudfront mit S3 Backendkann 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
  29. 29. ContinuousIntegration undDeployment
  30. 30. Keine Angst vorProduction-Deployments!
  31. 31. Magento InstallationspaketDatenbank-TabellenDateien*‣htdocs [Magento Source]‣.modman [Custom Packages]InstallerSettings‣URLs‣Datenbank-Parameter‣…* http://www.webguys.de/magento/turchen-08-magento-projekte-mit-dem-module-manager-clever-strukturieren/Dateien‣mediaChangeLogSystem-storageSVNGITSettings
  32. 32. PerformanceTestsAcceptanceTestsUnit-TestsPHPUnitInstallation auf„Latest“SystemBuildDeployment Pipeline
  33. 33. CloudDeploymentProductionIntegrationTestsAOE + RovioCloudDeploymentStagingCopy to S3Deployment PipelineInstallation aufDeploymentSystem
  34. 34. Deployment desneuen ReleasesSpace gamelaunchArray skalierthochUSA wacht aufLaunch!
  35. 35. Besucher/Tag
  36. 36. (echte) Besucher gleichzeitig!
  37. 37. Danke!http://www.aoemedia.dehttp://www.fabrizio-branca.de@aoemedia@fbrnc

×