ふり返る暇なんて無いね

日々のメモ書きをつらつらと。メインブログに書くほどでもないことを流してます

縮退運用という考え方

※ 社内の日記に書いたのの転載
※ アプリっていってるのはwebアプリ/webサービスのことをいってる


アクセス集中などで異常な高負荷になると1アプリ全体が使用不可能になってしまうことが多いです
こういうときは、だいたいにおいて、負荷が下がるのを天に祈りながら待つか、全体メンテナンスに入れてやり過ごすくらいしかできないです。
(もちろんその間に、負荷の原因を探ったり、コード直したり、サーバ追加できるならしたりします)
アプリ全体に障碍が起きているということは言うまでも無く、売り上げの減少、サービス自体の信用低下に繋がります。

全体停止はなるべく避けたい!せめて主要機能だけは動き続けて欲しい! そういう人のために縮退運用という考え方があります。

アプリの機能を見ていくと、この機能はアプリの根幹部分だから絶対に無いとダメなものと、この機能は枝葉なので必要無い、もしくは後でリカバリすれば良い機能があると思います。
高負荷時や障碍時に後者の部分の機能停止または機能制限することにより負荷を下げ、前者の機能を提供し続けてサービスを止めないことを縮退運用(フォールバックといったりもする)言います。
全体メンテナンスじゃ無くて、機能ごとにメンテナンスに入れるみたいなイメージだとわかりやすいかな。


縮退運用は大きな売り上げを上げており、少しの障碍が大幅な損失を生むようなサービスには合った方が望ましいですが、
機能ごとに依存関係があったり、大規模であったりすれば、その分実装コストが膨らむのでその辺をちゃんと考えると良いでしょう。


縮退運用というものもあるよ。という話でした。