2010-12-02 8 views
1

問題を迅速に解決するために運用システム上のコードを変更することは魅力的です。たとえそれが邪悪で危険で危険なことを知っていても、あなたは事実を無視してそれをやります。プロダクションサーバー上のコードを変更するのは悪いですが、それを処理するにはどうすればよいでしょうか?

闇の側に随時行くあなたのために:どのようにして欠点を修正しようとしていますか?あなたは、プロダクトマシンの変更を追跡するためにSVN(...)Serverをインストールしますか?ファイルのチェックサムを比較し、「覚えています - これを変更しました」 - メールを送信するジョブをインストールしますか?ホワイトボードにメモを入れるだけですか?変更を開発サーバーに同期化しますか?

投稿日:私は、この種の悪い習慣が起こるという事実として捉えています。私はこれを避けるための完璧なワークフローには興味がありません。 PHPやJAVA、COBOLプロジェクトで頻繁に起こるかどうか。小規模プロジェクトから大規模プロジェクトまで初心者対ベテランのプロジェクトで。あなたがそれをするならば、あなたはすぐに宇宙の実体によって罰せられます。私はそのような状況をどのように処理するかを知っている人々から創造的に使用可能なヒントに興味を持っています。

+1

実稼働環境に直接的にコードを書くあなたにとっては幸いです。あなたがステージングマシンを買う余裕がない(または、あなたが顧客とスタッフの間でパニックを起こしてパニックを起こすのがより速いと信じている)なら、あなたはあなたにふさわしいものを手に入れます。 – KevinDTimm

+0

@KevinDTimm:彼の群れの中でパニックを起こすことができる人は、パニックを巻き戻すための提案に興味があります。 – initall

+0

下記の回答(特にDOK)の回答を参照してください。しかし、これを行うと、人生は最終的に吸い込まれることに注意してください。たぶん初めて、おそらく10回目ですが、それは吸うでしょう。 Narvesonとcthulhuの提案は、実際に開発者をテストし、あなたが求めているものではないプロダクションに展開することです。 – KevinDTimm

答えて

2

クイックフィックスが機能しない場合は、ロールバックプランを用意してください。

ウェブサイトでは、すべてをバックアップフォルダにコピーするのと同じくらい簡単かもしれません。

多くの場合、データベーススクリプトで行われた変更を元に戻すデータベーススクリプトが必要です。

スモークテストを使用すると、アプリケーションが壊れているかどうかをすぐに知ることができます。

+1

この作業をすべて完了したら、適切にテストして展開することができます。ところで、私はあなたの答えが好きですが、私は質問が嫌いです。 – KevinDTimm

1

Do not do it ...ソースコントロールの変更を行い、System Test/UAT環境にデプロイし、変更をテストしてからProductionにデプロイします。

それ以外の場合は、あなたの「修正」がどのように働いたのですか?

+0

開発者がすぐにブラウザで目に見える結果を返すので、修正プログラムが動作すると見なされるのは、PHPを使用してサーバーを壊すことを忘れてしまう世界では珍しくありません。これは、非常に多くのことがすぐに修正されると考えられる理由の1つです(私はそれをサポートしていません)。 – initall

0

私の上司が昨夜の生産を素早く変更するように頼んだので、おかしいと思います。

あなたが尋ねているように、それほど速くて汚いとは言えません。私はまず開発環境を変更した後、運用データのコピーを使用してジョブを実行し、結果を検証しました。管理面では、自分が行っていたことを文書化するためのバグ・チケットを作成しました。

もちろん、開発から変更をコピーする前に、プロダクションコードのバックアップコピーを作成しました。

どのように素早く簡単に修復しても、それがあなたがしなければならないことをどのようにしていても、少なくともバックアップコピーを作成してください。

+0

あなたはOPが尋ねたことをやっていないことに注意してください。最初に開発環境でテストしました:)彼は「生産システムのコードを変更して問題を迅速に修正する」(テストは行われませんでした) – KevinDTimm

0

バージョンコントロールシステムを使用し、その中に「安定した」ブランチを持つ(またはトランクを安定したコンポーネントとして使用する)。そのブランチ(またはトランク)内のすべてが、いつでもすぐに展開できるようにする必要があります。そして、その枝/幹を壊す者は死ぬか、他の痛ましい刑罰を警告する。

自動テストを追加することで、このようなことにも自信が得られます。テストが成功すれば、ライブサーバー上のデプロイメントは問題ありません。もちろん、そのような環境を設定し維持するためには、時間とコストのかなりの投資が必要です。さらに、経営陣を説得しなければなりません。

同じまたは類似のデータ、ハードウェア、オペレーティングシステム、サードパーティのソフトウェアおよびランタイムのバージョン、および運用環境がクラスタ化されたものである場合とまったく同じように動作するテスト環境(複数のWebサーバーなど)、テスト環境にもこれがあることを確認してください。これが正しい場合、仮想マシンを使用して行うことができます。

0

カウボーイコーディング:それは注目に値するアプローチを思わ面白い外観けどhttp://www.bnj.com/cowboy-coding-pink-sombrero/

。この「視覚的なフィードバック」を与えることで、誰もが知っているだけでなく、生産に問題があることを知っているだけでなく、すべての人にワークフローを改善して「ピンクソンブロ」の時間を最小限に抑えるよう促します。

関連する問題