見出し画像

Now in REALITY Tech #39 REALITYのメンテナンスにまつわる話

こんにちは、サーバエンジニアのゆーしです。

サービスを運営する上で、なかなか避けて通れないのがメンテナンスです。
REALITYでは、毎週水曜日の14:00 - 15:00に定期メンテナンスを実施させていただいております。また、予期せぬ障害等が発生した際は、場合により臨時メンテナンスを実施させていただくこともあります。
今週の「Now in REALITY Tech」では、メンテナンス中に実際にどのようなことを行っているのか、そしてREALITYのメンテナンスモードの仕組みを紹介していこうと思います。

定期メンテナンスでの作業

 定期メンテナンスでは主に以下の作業を実施しております。

  1. メンテナンス後に公開するガチャの最終確認

  2. メンテナンス後に公開するギフトの最終確認

  3. 新機能のリリース作業

  4. インフラ調整作業

1、2については、REALITYの新ガチャ、新ギフトは定期メンテの直後に公開していることが多く、その最終確認を行なったりしています。
3については新機能や品質改善、バグフィクスに関わるコードのリリースや確認作業を行なっています。翌週にリリースするアプリに搭載される機能についても、サーバ側では先行してリリースする必要があるものも多く、そういったものもメンテナンス中に先行して確認したりしています。
REALITYではコードのリリースについては、メンテナンス中でなくても可能なのですが、特にデータベースに大きな変更を加えることが必要な大きな機能リリースについては、安全のためメンテナンス中に行うことが多くなっています。
4については、最近のサーバ負荷具合や週末のイベントなど状況に応じて、各インフラの調整を行なっています。

臨時メンテナンスでの作業

時折サーバの状態が不安定な時に実施している臨時メンテナンス。
利用中のユーザの皆様には大変ご迷惑をお掛けしておりますが、データベースの再起動やその他インフラの増強の必要が生じた際に、データ保全や、過負荷がかかっている箇所へのアクセスを減らしたりするために実施させて頂いてます。

メンテナンスの仕組み

REALITYのメンテナンススケジュールの情報は、管理ツールを経由して入稿していますが、そのデータはデータベース及びGoogle Cloud Storage上で二重に管理しています

メンテナンス入稿

二重に管理している理由としては、メンテナンス中はデータベース、MemoryStore、Google Cloud Storageのいずれの場所でも、作業を行っていたり、障害が発生していて正しく動作していない可能性があるからです。
そのため、メンテナンススケジュールの情報を読み出す際も、キャッシュを活用しつつ、どこかに問題が生じていても、メンテナンスであることをしっかり判定できるようにしています。

メンテナンスチェック

その他のメンテナンスあれこれ

さて、メンテナンス中は単にユーザさんがREALITYにログインできないようにしているだけではありません。
1つ目は、社内ネットワークからアクセスした場合に限り、メンテナンス画面をスキップしてREALITYにログインすることが可能になっています。
そのため、担当者はメンテナンス中であってもギフト/ガチャの確認や、新機能の動作確認を行うことができます。
また、Push通知の送信についてもメンテナンス中は抑制しています。
2つ目は、メンテナンス中に配信を行うには特殊な権限をアカウントに付与する必要があり、そのアカウントで配信を行うと、通常のユーザからは見えない配信を開くことができます。またその配信ではギフティングに必要な額が全て0となるため、ギフトの送信チェックなども簡単にできるようになっています。
(もちろん、該当アカウントへのギフティングはイベントスコアやその他のランキングに影響しないようになっています)

最後に

ユーザの皆様には、サーバが不安定な時があったり、メンテナンスでサービスを利用できずご不便をおかけして申し訳ありませんが、より安定したサービスを提供できるよう頑張っていきますので、どうか今後ともよろしくお願いします。

また、これからもどんどんサービスを拡充していくREALITYを一緒に支えてくれる仲間を現在募集しております!
気になる方は、カジュアル面談でもいいので是非お気軽にお申し込みください!