alms.dev

Aidemy の開発者ブログです。

耐障害性の高いセッション管理でより堅牢なサービスへ - 隔週報 2021-W34/35

f:id:aidemy-blog:20210910174931p:plain

耐障害性の高いセッション管理でより堅牢なサービスへ

2021年 第34 - 35週,8月23日 (月) - 9月3日 (金) にリリースした機能を紹介します.

  1. 耐障害性の高いセッション管理でより堅牢なサービスへ
  2. システム安定性向上のための、Repository層の新設DB

耐障害性の高いセッション管理でより堅牢なサービスへ

Redis のキャッシュの二重 Read / Write を実装しました.

f:id:aidemy-blog:20210910174952p:plain

[画像] Cloud OnAir: Getting started with Redis on Google Cloud Platform

これまで Alms は Azure 上の Redis を使用し、ユーザーセッションと試験の残り時間の管理を行っていました。今後マネージドな GCP Memorystore に Redis を移管し、より安定性高く障害に強い体制を確立するための準備として、GCP Memorystore にも書き込み・読み取りを行う実装を行いました。Alms の主要部分は GCP を利用しているため、Redis キャッシュを Azure から GCP に移管することで、セキュリティの向上も期待できます。

システム安定性向上のための、Repository層の新設

DB アクセスを一元化し保守性を向上するため Repository 層を新たに実装しました。

f:id:aidemy-blog:20210910175015p:plain

[出典] インフラストラクチャの永続レイヤーの設計 | Microsoft Docs

開発能率・保守性向上とバグ抑制のために、バックエンドのDB関連部分のソースコードについて全面書き換えを実施しました。具体的には、MongoDB の Collection 単位で Repository を新設し、それぞれに DB 関連操作を集約しました。