post

phpのアトミックデプロイ

phpのアトミックデプロイ

Perlのゼロダウンタイムでグレイスフルなホットデプロイに慣れていたせいで、 phpのプロジェクトをデプロイ(本番環境で新しいプログラムに入れ替える)する際のアトミシティを考えていなかった。

今時自前で作るのはばかばかしいが実際に作るとしたら、ブルーグリーンデプロイメントのように、 HTTPサーバで設定しているドキュメントルートの指し示すディレクトリをシンボリックリンクにして、 それをアトミックに張り替えるスクリプトを組めば良いらしい。

参考1: https://ngyuki.hatenablog.com/entry/2017/07/25/082825

参考2: https://qiita.com/dalance/items/d2d2feb720172036fd22

ちなみに普段使いのFuelPHPではDeployerというのが良く使われている模様。 ゼロダウンタイムと銘打っているので、これも恐らく同様にシンボリックリンクを使ってやってくれているものだと思われる。 (DBへのコネクションをpersistentに張っている場合はどうなるんだろう?)

アプリケーションを実行しているプロセスのグレイスフルなリスタートをするようなものがphpに無いか探したが、 見つけられなかった。