web-dev-qa-db-ja.com

ダウンタイムをゼロにするための戦略:DBはどうですか?

Amazon WindowsIIS7でホストされているasp.net/MVC2Webアプリがあり、ダウンタイムをできるだけ少なくして更新をデプロイしたいと考えています。

IIS ARR 3サイトのセットアップ(ここで説明) ダウンタイムのアップロードゼロ/ IISでのロールバック データベースの更新をデプロイする方法を考え出したい(MySQL Amazon RDSで)ダウンタイムを最小化または排除する方法で。

誰かがこのようなことをしていますか?アプリは適切なスキーマバージョンのデータベースに対してデプロイする必要があり、ロールアウト中にこれらの変更を管理するシステムがあります。

ARRを使用して、ライブサイトを適切にドレインし、新しくプロビジョニングされたサイトを立ち上げると同時に、データベースの移行を実行し、データベースの変更が完了するまで新しいアプリにWebリクエストの処理を保留させることを想像できますが、タイミングを調整するのは非常に難しいようです。また、ブラウザが待機するよりもプロセスに時間がかかる場合のクライアントタイムアウトの問題は言うまでもなく、テストはさらに困難です。

ありがとう!

3
Aaron Bridges

誰もこれに対する素晴らしい答えを持っていません。下位互換性のあるスキーマ変更を行う必要がありますが、それは難しいかもしれません。

通常、これは、アプリが1つのスキーマバージョンに依存するだけでなく、移行中に複数のスキーマをサポートできる必要があることを意味します。 (トランザクションは両方のスキーマなどを更新する必要があります)

NoSQLスキーマのないデータストアでもこの問題を解決するのではなく、ほぼ同じ方法で解決する必要があることに注意してください。N個の値を持つキーがあり、新しい値を追加する必要がある場合、アプリはキーがまだ更新されていない可能性に対処するため。

幸運を!

1
Dan Fabulich