# 技術関連情報
技術関連や非機能関連の情報などを記載
# 基本
# インフラ
- GCP を使用。リージョンは東京
# SaaS 構成
- マルチテナント構成、スキーマ分離型
# セキュリティ
# サーバ、ネットワーク
- 外部、内部のファイアウォールにて不要な接続元やポートを遮断
- 保存データのディスク暗号化
- web サーバへの通信は SSL 接続必須化
- WAF で攻撃性のある通信を遮断
- ソフトウェアの定期的な脆弱性チェックを実施
# アプリケーション
- サービス管理情報以外のデータは全てアカウントごとのスキーマに分離される為、異なるアカウント同士のデータ干渉は不可能
- クレデンシャルなデータのハッシュ化、高レベル階層リソースの id の暗号化、秘匿化を実施
- サービスへのログインは必ず認証済みメールアドレスの使用が必要
- google アカウント使用の場合は、oauth での認証委譲により、クレデンシャルな情報をサービス側に保持させずにサービスの利用が可能
# 性能
# ページ遷移
- メインとなる画面は React による SPA である為、初回遷移時は多少遅いが、その後のページ切り替えは高速
- 静的コンテンツについては CDN でキャッシュ
# API
- サーバサイドは Java 言語を使用しており、言語レベルでは比較的高速
- 重い集計処理は stored にて実行しており、ORM のオーバヘッドを緩和
- スキーマ分離型のマルチテナント構成の為、RLS での分離に比べ高速
# サーバ
- web/ap サーバはコンテナの負荷分散及びオートスケールを実施
- db はリードレプリカからの読み込み処理による負荷分散
# その他
- 日次でデータベースのフルバックアップを実施。保持期間は 1 週間
- SLA は特に定めていないが、google のインフラ基盤及びクラウドの各機能により、高可用性を実現
- クライアント端末のブラウザは chrome 推奨。OS は windows または mac 推奨。スマホやタブレットなど、PC 以外の端末での使用可能(レスポンシブも対応)