4

ネット上でこの問題の一部が解決されているのを見てきましたが、まだ混乱しているので、Stack Overflow の賢い人たちにこの件について尋ねてみようと思いました。

私たちは小さなスタートアップであり、現時点では、開発 -> 生産からのワークフローには、ftp を使用して開発コードをアップロードするだけです。

開発コードはサブバージョンの管理下にありますが、トランク/タグ/ブランチを活用していないのは、この構造をどのように使用するのが最適なのかがよくわからないからです。フォルダーやファイルをコピーして貼り付ける必要のない、ライブ サイトとのシームレスな統合が必要だと思います。

詳細は次のとおりです: - CakePHP + MySQL での開発 - Media Temple (gs) でホスト - 開発者は Mac OS (Coda) と Windows (Dreamweaver) の両方を使用

私の質問は、適切なスケーラブルなワークフローをどのように設定するのですか?

4

3 に答える 3

3

あなたのワークフローは、QA を持たない小さな組織に適しているようです。いくつかのリソースを投資することをお勧めします

1) プロダクション リリースをビルドし、バージョン スキームを用意して、プロダクション リリースを正確に追跡できるようにします。追跡できるように、すべてのリリースにタグを付けます。

2) インストーラーをビルドします。間違いを犯す可能性があるため、フォルダーを手動でコピーすることに頼らないでください。また、インストーラーを使用すると、本番環境で問題が発生したときに簡単に追跡できます。

3) デプロイする前に、本番環境で QA を行います。ちょっとしたQAでも大いに役立ちます。開発者は、プログラムの「機能」に偏っている可能性があるため、優れたテスターではありません。

4) 実際にブランチを使用する必要があるまでは、まだブランチを気にしないでください。そうして初めて、必要な構造が明らかになります。Subversion red-bookには、ブランチを構築する方法についていくつかのアイデアがあります。

于 2009-10-09T22:21:07.940 に答える
2

私が過去にこれを行った 1 つの方法は、実稼働コードを実際にライブ Subversion クライアントにして、「実稼働」ブランチを引き出すことです。

したがって、開発ブランチでいつものように作業を行い、準備ができたら、プロダクション ブランチにコピーをカットします。本番サーバーを同期すると、ライブになります。何か問題が発生した場合は、いつでも古いバージョンに再同期できます。

余分なポイントとして、ステージング ブランチを追加できるので、コードにない変更をすべてキャッチできます。次に、必要に応じて運用システムを調整する展開スクリプトにそれらを追加します。

于 2009-10-09T22:23:37.403 に答える
2

考慮すべき重要なことは、コードの品質を向上させ、デプロイの労力を軽減するプロセスとワークフローをできるだけ多く含めることだと思います。重要なことは、コード ベースが落ち着いたときに、これらのいくつかの作成を開始することです。すべてが急速に変化する初期の段階では、スクリプトで節約できる時間よりも、スクリプトの更新に多くの時間を費やすことになります。

次のことをお勧めします。

  1. 自動ビルド スクリプトを作成します。 ソース管理からファイルを抽出したり、バージョン番号を自動的にインクリメントしたり、タグを追加したり、デプロイ パッケージを作成したりするために使用できる (私は Ant が好きです) さまざまなテクノロジとスクリプト言語があります。これには、開発者が現在行っているタスクをセットアップして解明するのに多大な労力がかかる場合がありますが、長期的には非常に大きな効果があります。これにより、開発者はビルドの反復作業から解放され、技術的な問題の解決に集中できるようになります。ご存知のように、開発者は同じことを何度も繰り返していると飽きてしまい、飽きると間違いを犯し始めます。

  2. 自動インストール。これは、物事がまだ急速な発展段階にある間はわずかな利点ですが、長期的には、別の場所に費やすべきリソースが解放されます. 少なくとも、コードをデプロイするためのインストール パッケージとインストール手順が必要です。

  3. ステージング環境。これは、ユーザー ベースが十分に大きくなり、コードをデプロイするときに運用システムがなくなったときにユーザーが騒ぎ始めるまでは必要ないと主張することもできます。ユーザーベースに不快感を与えることなく、変更をテストできるシステムを用意することが重要です。もちろん、これには QA の取り組みも必要です。展開する前に、必ずいくつかのテストが必要です。開発者は常に自分が正しいと思い込んでおり、何も見落としていませんが、決して信じてはなりません。彼らが思いもよらなかった異なるコード パスやクリックの新しい順列が常に存在します。

  4. SVN をバックアップします。これは言うまでもありませんが、私が働いていた会社では、ソース リポジトリが 2 年以上バックアップされていませんでした。svndump を実行し、結果のファイルを別の場所にコピーすることでバックアップできます。リポジトリが存在するフォルダーをバックアップして、問題が発生した場合に復元することもできます。

于 2009-10-09T22:42:24.410 に答える