Program kiszállítása

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ő