How do I push module update in a cached production environment?
Short answer : make extensive use of drush !

This was quite straightforward  and successful, though I'm still not really sure if I have to empty both opcache and Varnish. This would be a huge performance hint on production server. IMO the best would be to invalidate only the changed files in opcache and voilà ?

Steps I did (local dev) :


drush up flag -y
drush cc all
tested flag features, OK.
commited &amp; pushed files to stage on a flag branch


The steps then on remote server :


git checkout flag
varnishadm -T 127.0.0.1:6082 -S /etc/varnish/secret (enter Varnish Cli)
varnish&gt; ban req.http.host ~ dev.example.com &amp;&amp; req.url ~ . (clear varnish cache)
reset Opcache with Opcache GUI
drush updb
drush rr (optional in that case since this was performed in flag_update_7300)