Amióta a projekten dolgozok, folyamatosan piszkálja a csőrömet, hogy nincs rendes “kiszállítás” – software deployment.
Számos módszer létezik arra, hogy milyen módon jut el az új rendszer a felhasználóhoz, és ezek a módszerek természetesen függnek az adott szoftvertől is, de az scp, mint olyan, az szerintem nem tartozik ezek közé.
A projektünk alapvetően kicsi (csupán négy ember dolgozik rajta), és 3 részre osztható
- DB
- DB Skript
- Shell script + PHP script + Webend
A fejlesztés nem köthető előre megadott release-hez, hanem folyamatos, ami bizonyos szempontból kihívást jelent a kód kiküldésében.
A válasz első felét (shell script, php script, php webfile-ok) valamilyen félautomatikus, svn verziókövetéshez kapcsolódó skriptben látom, ami generál egy deltát a legutolsó deployment (nevezzük release-nek az egyszerűség kedvéért) és az aktuális státusz között, ami igény szerint még manuálisan változtatható, a változást lementi egy branchba, valamint a produktív branchba is.
Ugyanakkor az adatbázis változások követéséhez egyfelől szükséges, hogy ne csak kézzel bepakoljuk az összes alter/insert/update/delete/drop statement egy SQL scriptbe, hanem a megfelelő fallback mechanizmust is előkészítsük, valamint hogy ezek az SQL parancsok a PHP és egyéb scriptek kiszállításával kvázi egy időben szintén lefuttatásra kerüljenek.
Per pillanat azzal a gondolattal játszom, hogy amennyiben a fenti folyamat teljesnek nevezhető, úgy egy saját PHP scriptet írok rá. Bár hasonló scriptet már írtam ANT-ban, egyes helyi specialitások miatt úgy érzem, hogy könnyebb lenne a testreszabás PHP-ban elkövetni.
Ti hogy pakoljátok ki a szoftvert az ügyfélhez? Van valami tippetek PHP-s környezetre?
Előzmény: Refactoring – fejlesztőknek kötelező