Running Magento 2 - Create Hosting · Difference between running from running Operations vs...

Preview:

Citation preview

Running Magento 2

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

About meJisse Reitsma

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

About meJisse Reitsma

Founder and lead developer of Yireo

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

About meJisse Reitsma

Founder and lead developer of Yireo

Wrote 2 developer books for J**ml*

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

About meJisse Reitsma

Founder and lead developer of Yireo

Wrote 2 developer books for J**ml*

Grab a MUGMUG

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

About meJisse Reitsma

Founder and lead developer of Yireo

Wrote 2 developer books for J**ml*

Grab a MUGMUG

Part of Zend Z-Team

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

About meJisse Reitsma

Founder and lead developer of Yireo

Wrote 2 developer books for J**ml*

Grab a MUGMUG

Part of Zend Z-Team

Part of ExtDN

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

About meJisse Reitsma

Founder and lead developer of Yireo

Wrote 2 developer books for J**ml*

Grab a MUGMUG

Part of Zend Z-Team

Part of ExtDN

I live near a palace

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

The palace

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

Disclaimers

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

DisclaimersI do not live in a palace

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

DisclaimersI do not live in a palace

I am not a runner

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

DisclaimersI do not live in a palace

I am not a runner

I am just a simple Dutch guy

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

DisclaimersI do not live in a palace

I am not a runner

I am just a simple Dutch guy

Difference between running from runningOperations vs performance

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

Running Magento 2Performance

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

EnvironmentPHP 7 + Zend OPcache

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

EnvironmentPHP 7 + Zend OPcache

Nginx + PHP-FPMPHP-FPM via UNIX socket?

HTTP/2

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

EnvironmentPHP 7 + Zend OPcache

Nginx + PHP-FPM

Redis cachingMultiple Redis databases

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

EnvironmentPHP 7 + Zend OPcache

Nginx + PHP-FPM

Redis caching

MySQL 5.6 (or alternative) + tuningQuery cache, InnoDB buffers

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

EnvironmentPHP 7 + Zend OPcache

Nginx + PHP-FPM

Redis caching

MySQL 5.6 (or alternative) + tuning

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

EnvironmentPHP 7 + Zend OPcache

Nginx + PHP-FPM

Redis caching

MySQL 5.6 (or alternative) + tuning

composer / magerun2Magerun2 addons from Hypernode: Patching, updates

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

EnvironmentPHP 7 + Zend OPcache

Nginx + PHP-FPM

Redis caching

MySQL 5.6 (or alternative) + tuning

composer / magerun2

CI toolsphpcs, phpmd, Phing/Capistrano/Fabric

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

OptionalsVarnish

VCL file generated through Magento 2

ClusteringMySQL master/slave, M2 EE

Offloading searchSolr, ElasticSearch

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

PHP 7

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

PHP 7Hurray for Zend

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

PHP 7Hurray for Zend

Ditch HHVM

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

PHP 7Hurray for Zend

Ditch HHVM

Tune Zend OPcacheopcache.validate_timestamps=0 ?

Reload PHP-FPM instance after git pull

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

PHP 7Hurray for Zend

Ditch HHVM

Tune Zend OPcache

Recompile PHP with PGOPGO = Profile-Guided Optimization

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

PHP 7Hurray for Zend

Ditch HHVM

Tune Zend OPcache

Recompile PHP with PGO

Enable huge_code_pages in kernelNot page size of 4k but of 2m

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

Turning offionCube

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

Turning offionCube

Xdebug

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

Turning offionCube

Xdebug

NewRelic, Zend Z-Ray, Blackfire

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

Turning offionCube

Xdebug

NewRelic, Zend Z-Ray, Blackfire

MySQL performance schemas

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

Experimental

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

Experimentalappserver.io

Wait for 06/2016 release for PHP 7

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

Experimentalappserver.io

Wait for 06/2016 release for PHP 7

Tarantool or Aerospike instead of Redisgithub.com/danslo/Rubic_Cache_Backend_Aerospike

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

Experimentalappserver.io

Wait for 06/2016 release for PHP 7

Tarantool or Aerospike instead of Redisgithub.com/danslo/Rubic_Cache_Backend_Aerospike

Hack from HHVM

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

Running Magento 2Operations

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

Magento 2 operationsNo code generation of live server

Not running magento setup:di:compile

Committing var/generation and var/di to git?

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

Magento 2 operationsNo code generation of live server

No composer updates on live serverCommitting composer.lock to git (?)

Use prestissimo for faster downloads

Use Satis or Toran Proxy for offloading

Optimize autoload file (‐‐optimize‐autoloader)

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

Magento 2 operationsNo code generation of live server

No composer updates on live server

Interceptors instead of event observersInterceptor count matters less due to code generation

Count of dispatched events does matter

But events are less confusing than interceptors

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

Magento 2 operationsNo code generation of live server

No composer updates on live server

Interceptors instead of event observers

How to analyse DI properly?Preferences, types, virtual types, plugins

Circular dependencies reports do not help

magento-hackathon/magento2-plugin-visualization

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

Magento 2 operationsNo code generation of live server

No composer updates on live server

Interceptors instead of event observers

How to analyse DI properly?

Deploying static view filesUse Grunt / Gulp instead

Specify what you want to deploy (PR @denisristic)

Other stuff we did on Monday

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

ThanksQuestions?

Jisse Reitsma - Running Magento 2

Yireo - slides.yireo.com

Recommended