Blue-green deployment

Egyik ügyfélnél egy minimál blue-green deployment technikát alkalmazok ami annyit tesz, hogy nem buildelek minden alkalommal új VPS-t, hanem egy szerverre megy az új kód a régivel és a docroot symlinkje változik:
prod => prod-{hash1}
prod-{hash1}
prod-{hash2}

Amikor kikerül az új kód akkor a symlinket átírjuk és 0 kieséssel már az új kód fut. Ez azért is hasznos mert így még offsite állapotban lehet symfony cache-t építeni. A php opcache path cache-t is végez, így symlink módosításkor “No input file specified” üzenetet dob a felhasználó képébe.

Erre a megoldás az, hogy a fastcgi paramétereknél a SCRIPT_FILENAME-t módosítani kell.

Régi érték:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

Új érték:
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;

Arra is figyelni kell, hogy ne írja felül se fastcgi.conf, se egyéb fpm specifikus config file (nálunk minden php főverzió saját fastcgi configot kap: php81.conf php82.conf stb).

Leave a Reply

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.