質問: githubから本番サーバへの反映は どのような方法がお勧めでしょうか。 現在ローカルの開発環境で vagrant virtualbox centos のような形でウェブサイトの構築を行っています。 サーバはさくらスタンダードとAWSの2つのパターンがあります。 (EC2は現在インスタンス2つ、ゆくゆくはオートスケーリングを考えています。) wordpressサイトの更新が主で、themeファイルのみを git管理にしようと現在ワークフローを改善中です。 最近ようやくgithubをさわりはじめ ローカルからリモートのリポジトリにpushすることはできました。 色々書籍などを見ていてもあまり載っていなかったのが リモートリポジトリから本番環境に反映させる方法で みなさんどのような環境で作業しているのかをお伺いしたく書かせていただいています。 ワークフローとしてはgithubにpushした段階で最終確認 そのあと公開という流れになるかと思いますが どのようなツールを使われていますか? 自分なりに考えてみたことを書かせていただきます。 ・手動で反映するなら本番サーバにリモートリポジトリを設置して本番サーバ上でpull ・自動で反映するならスクリプトやツールを使う こちらも認識違いやセキュリティリスクなど突っ込んでいただけましたら幸いです。 基本的には添付ファイルのAパターンが多いと思いますが Bパターンでの運用をされている方もいらっしゃいますでしょうか。 メリットデメリットなど伺えましたら幸いです。 ![githubから本番サーバへの反映](https://i.stack.imgur.com/VsR4O.png)
回答: ワークフローをある程度自動化したいということで良いでしょうか。 そうであればいくつか方法が考えられます。またWordpressとのことでPHPを中心に考えます。 * Githubのwebhook * CI/CDサービス * デプロイツール Githubのwebhook githubを利用されているとのことなので、webhookの利用が可能です。Github上のイベントを起点に本番サーバへ通知、通知を受け取ったらpullさせます。無事デプロイが成功しているかどうかの処理も記述する必要があるので少し手間な点から今回の場合あまりオススメしません。 Continuous Integration/Continuous Deployment サービス * Continuous Integration | StackShare * Continuous Deployment | StackShare どちらも今回の課題の守備範囲にはありますが、CDサービスの方が近いかと思います。具体的にはBuddyがサポートの方も親切で良かったです。 管理画面が必要であれば検討の余地はあると思います。 デプロイツール Deployer — Deployment Tool for PHP 描かれている図の構成とは直接Githubが関わらなくなるという点で、少し変わりますがこちらもオススメです。