チームのワークフローとアーキテクチャを改善したいと思います。
現在、チームのすべてのメンバーがサブディレクトリを持つLAMP開発サーバーがあります。 LAN経由でこのディレクトリで直接作業します。 FTP経由で本番サーバーにアップロードする準備ができたときのための「リリース」ディレクトリもあります。
一元化されたリポジトリとして機能するgithubプライベートリポジトリを使用します。
プログラマーの現在の日常のワークフローの例:
簡単な毎日の会議の後に作業するユーザーストーリーを選択するユーザーストーリーにちなんで名付けられたgitブランチを開く作業、いくつかの変更をコミットするgithubにプッシュするデプロイすることにしたとき、変更をプルし、コードレビューを実行し、必要な変数を変更しますFTP経由での制作とアップロード。開発データベースに変更が加えられた場合は、本番サーバーのデータベースにも複製します。
この状況を改善し始めるべきアイデアはありますか?現在の問題:
編集:私はより良い質問を追加しようとします。
各開発者に独自の環境を提供します。共有ボックスにあるかローカルインストールにあるかは関係ありません(ローカルインストールには多くの利点があります)
次に、サーバーをビルドして、テスト(または統合)環境に自動的にデプロイします。コミットが開発ブランチにプッシュされると、コミットはこの中央テスト環境にデプロイされるため、できれば自動化ツールを使用してテストを行うことができます。
次に、リリースブランチのテスト環境と同様のセットアップを取得します。コードがマージされると、コードもデプロイされますが、より代表的なシステムにデプロイされます。通常、テスト環境とプリプロダクション環境は同じように開始されますが、テスト環境ではより多くの粗雑さが構築され、リリースブランチにマージされたコードのみが終了するため、プリプロダクションははるかにクリーンになるはずです。 '実験的な'コードやロールバックはありません。
構成-これは標準のSCMの問題です。各環境(本番環境も含む)の構成用に個別の領域を保持し、そこにすべてのバージョンを保存してから、展開が行われている場合に適切なものを選択します。明らかに、正しく機能するようにこれらすべてをスクリプト化する必要があり、PiTAにすることもできますが、デプロイに必要な手順はすでにあるようですので、スクリプトを作成するだけです。 githookで直接コーディングしたくない場合は、これを支援するCIサーバーとしてJenkinsをお勧めします。