1

一般的な操作の一環として、多数の外部サービスを使用するアプリケーションを管理します。一部のサービスは SOAP サービスであり、その他は Restful Api です。当社が管理するサービスもあれば、サードパーティのサービスもあります。アプリケーションの機能の中心となるサービスもあれば、より補助的/必須でないサービスもあります。

各外部サービスは、「テスト」および「ライブ」環境を公開します。現在、アプリケーションがテスト中 (つまり、開発、テスト、およびステージングのフェーズ) にあるときは、外部サービスのテスト バージョンを使用する必要があるというポリシーに従っています。サービスのライブ バージョンが消費されるのは、ライブ環境のみです。

環境間でどのバージョンのサービスを使用するかを管理する際に、無視できない量のオーバーヘッドがありますが、これは問題ではありません。私の質問は、このポリシーが良いアイデアかどうかです。代わりに、外部サービスのライブ バージョンを常に使用する方がよいでしょうか? 自分たちで管理している外部サービスのテスト バージョンを公開するという間違いを犯しましたか。つまり、テスト環境を非公開のままにする必要がありますか?

アプリケーションが「ライブ」に達するまで、ライブの外部サービスを指さなかったことに(まだ)悩まされていませんが、問題の一部は、開発、テスト、およびステージを「 test' 傘をさすと、ライブの外部サービスに対してテストする能力が失われます。

現時点でわかっているのは、テスト環境でテスト サービスを使用しても得られるものはほとんどないということです。ライブのサードパーティ外部サービスの利用に伴うコストはごくわずかです。また、「テスト」フェーズでクライアントによって消費されていることを認識しているということで、私たち自身のサービスに影響を与える可能性がありますが、これはおそらく対応できるでしょう。

シナリオがこれでいくぶんオープンエンドであることは理解していますが、進むべき道は 2 つしかないように思われますか?

4

1 に答える 1

1

私の懸念は、アプリケーションの非運用インスタンスを実行しているときに、運用データを誤って変更してしまうことです。SetX()、POST/PUT、insert into/update を 1 つ実行するとすぐに、クリークを上っていることになります。これは、見つけるのが非常に難しい、卑劣な種類のバグです。

厳密に消費している場合、理論的には違いはありません。実際には、私はまだ心配しています。あなたの立場では、ライブ以外のオプションがあれば非常にうれしいと思います。そうでなければ、これらすべての外部サービスをスタブ化することを考えていたでしょう。

于 2013-08-09T11:42:22.707 に答える