開発と生産のワークフロー
-
20-09-2019 - |
質問
ネット上でこの問題の一部が解決されているのを見てきましたが、まだ混乱しているので、Stack Overflow の賢い人たちにこの件について尋ねてみようと思いました。
私たちは小規模なスタートアップ企業であり、現時点ではワークフローは 開発→本番 FTP で接続し、開発コードをアップロードするだけです。
開発コードは Subversion の管理下にありますが、この構造の最適な使用方法がよくわからないため、トランク/タグ/ブランチは活用していません。フォルダーやファイルをコピー&ペーストする必要のない、ライブ サイトとのシームレスな統合が必要だと感じています。
詳細は次のとおりです。-CakePHP + MySQLでの開発-Media Temple(GS)でホスト - 開発者はMac OS(CODA)とWindows(DreamWeaver)の両方を使用しています
そこで私の質問は次のとおりです。適切なスケーラブルなワークフローを設定するにはどうすればよいですか?
解決
あなたの仕事の流れは、QAを持たない小規模な組織のために適切なようです。私は
の中にいくつかのリソースを投資するあなたをアドバイスう1)製品リリースを構築し、あなたは正確に本番リリースを追跡できるように、バージョンスキームを持っています。あなたはそれを追跡できるように、リリースごとにタグを付けます。
2)インストーラをビルドします。あなたがミスを犯す可能性があるため、手動でフォルダをコピーするために頼るしないでください。また、インストーラは何かが生産におかしくなったときに追跡することが容易になります。
3)展開する前に、製造上のいくつかのQAを行います。少しでもQAは、長い道のりを行きます。彼らはプログラムの「機能」に偏る可能性がありますので、開発者は良いテスターではありません。
あなたが実際にそれを使用するようになるまで4)まだ枝を気にしないでください。唯一のそれはあなたが必要がある構造明らかになるであろう。転覆赤書籍には、あなたの枝を構築する方法についていくつかのアイデアを持っています。
他のヒント
私は過去にこれをやった一つの方法は、生産コードは実際には「生産」ブランチを引き出し、ライブSubversionのクライアントにする必要があります。
ですから、開発ブランチにいつものように自分の仕事をして、あなたは準備ができている時はいつでも、本番ブランチにコピーを切りました。運用サーバーを同期して、あなたは生きています。何かがうまくいかない場合は、いつでも古いバージョンに再同期することができます。
あなたのコードでは、のはのではないことに変更されたすべてのものをキャッチすることができますので、余分なポイントのために、あなたは、ステージングブランチを追加することができます。その後、必要に応じて生産体制を調整します展開スクリプトに追加します。
考慮すべき重要なことは、コードの品質を向上させ、デプロイの労力を軽減するプロセスとワークフローをできるだけ多く組み込むことだと思います。重要なことは、コード ベースが落ち着いたときに、これらのいくつかの作成を開始することです。すべてが急速に変化している初期の頃は、スクリプトで節約できる時間よりも、スクリプトの更新に多くの時間を費やすことになります。
次のことをお勧めします。
自動ビルド スクリプトを作成します。 ソース管理からファイルを抽出したり、バージョン番号を自動的に増やしたり、タグを追加したり、デプロイ パッケージを作成したりするために使用できるテクノロジやスクリプト言語は数多くあります (私は Ant をお勧めします)。開発者が現在行っているタスクを設定して解明するには多大な労力がかかるかもしれませんが、長期的には大きな利益が得られます。これにより、開発者はビルドの繰り返し作業から解放され、技術的な問題の解決に集中できるようになります。ご存知のとおり、開発者は同じことを何度も繰り返すことに飽きてしまい、飽きると間違いを犯し始めます。
自動インストール. 。これは、物事がまだ急速な発展段階にある間はわずかな利点ですが、長期的には、他の場所に費やしたほうがよいリソースが解放されます。少なくとも、コードをデプロイするためのインストール パッケージとインストール手順が必要です。
ステージング環境. 。ユーザーベースが十分に大きくなり、コードをデプロイするときに実稼働システムが停止したときにユーザーが騒ぎ始めるまでは、これは必要ないと主張する人もいるかもしれません。ユーザーベースを不快にさせることなく変更をテストできるシステムを用意することが重要です。ただし、当然ながら、これには QA の労力も必要です。導入前に必ずテストが必要です。開発者は常に自分たちが正しく、何も見逃したことはないと思い込んでいますが、決して信じてはいけません。常に、異なるコード パスや、彼らが思いもよらなかった新しいクリックの順列が存在します。
SVN をバックアップする. 。言うまでもないことですが、私が勤務していた会社では、ソース リポジトリが 2 年以上バックアップされていませんでした。svndump を実行し、結果のファイルを別の場所にコピーすることでバックアップできます。リポジトリが存在するフォルダーをバックアップするだけで、問題が発生した場合に復元することもできます。