Pull型デプロイ
Pull型デプロイ
新バージョンの有無をアプリケーション自身(あるいはアプリケーションサーバ上の専用プロセス)が監視し、新バージョンがあったら自身でデプロイする方式
例
開発者は新バージョンのタグを切る
code:sh
git tag v1.0.2
git push origin --tags
アプリケーションサーバはタグの新バージョンを監視する専用のdaemonを常駐させる
daemonはタグの差分を確認してデプロイする
code:sh
while true; do
git fetch
git tag
# バージョンを比較する処理
# デプロイ処理
sleep 10
done
https://gyazo.com/32214746292c9011bed104e559334853
メリット
アプリケーションサーバがスケールアウトした場合にも対応できる
SSH不要
踏み台サーバ不要
デプロイ処理を行う権限がサーバ内に閉じる
デメリット
リポジトリの新バージョン監視をするためのアクセス経路が必要になる
プライベートSubnetにいるサーバからアクセスできるようにNATGateway置く、など
専用daemonが死んだらデプロイできなくなる
daemonの死活監視が必要
一定の時間おきに何度もアクセスが発生するのを許容しないといけない