取得するデータの種類が膨大 Webアプリケーションと連携しながら動作する 信頼性の高いデータパイプライン DB負荷 r セキュリティスキャンごとに数千件のデータ書き込s r アクセス数はSaaSのため多くない 書き込みのスパイクに耐えるスケーラビリティ 機能幅 r マルチクラウド × 幅の広いセキュリティ分² r 今後さらなる拡張の可能性大 マルチクラウド・多機能に対応できる スケーラビリティ
Scanner)のシステム特性が大きく異なるため最初から分 d 人が少なくデプロイ独立性の担保が必要なかったので、スキャンからDBへのロードまでを一つのworkflowとして設計 → 当時はもっとシンプルだったが、この構成が今の原型となって引き継がれている 技術選定 d Web: d Scanner: 垣根なく開発できるようにTypeScriptを選定。DBはRLSを加味してPostgreSQLに。 平行処理や複数のjobを組み合わせた構成が必要だったためgoを選択。 クラウドのメインはAWSを利用。job基盤は監視の観点からStepFunctionsを利用。 チーム d (当たり前だが)分けるほどの人数がいなかったので1チームで d なんとなくの暗黙の役割分担は一部あったが、基本全員で開発し全員でレビューを実施 全員野R
特にScannerチームで顕著に 事業フェーズの変化 r これまでは競合に追いつくフェーズだったためある程度作るものが決まっていU r 一定足りない機能が追いつき、機能の探索をすることになり、 r コミュニケーションコストが増大し、コンポーネントごとの分け方を することに チーム横断の仮説検証の機会が増えU 再度議論
Web Team EM Scanner Web EM Platform Team Stream Aligned Team EM Platform Stream Aligned EM どちらのチームがどこまで加工するかが曖昧なため Loaderの責務が曖昧に・一気通貫の体験が作れない どちらのチームがどこまで加工するかが曖昧なため Loaderの責務が曖昧に・一気通貫の体験が作れない Platformは最低限の加工のみ Stream Alignedはより体験を最初から最後まで担当 Platformは最低限の加工のみ Stream Alignedはより体験を最初から最後まで担当 実 際 仮 定