【重点要約】
モダンアプリケーションのベストプラクティスとしては、モニタリング、サーバレステクノロジー、リリースパイプラインの構築、モジュラーアーキテクチャであり、データを取得し状況を把握できるようにしたうえで、素早く、効率的に拡張、運用できる状態を目指しそれに向けた最適なアーキテクチャの検討を行う。
モダン化推進にあたってはいきなり抜本的なアーキテクチャの変更に取り組まず、追加や改修部分などから徐々に改善する。
【その他メモ】
・Beyond the tweleve-Factor App
・オブサーバびりてぃを獲得するためのデータ→メトリクス、ログ、トレースデータ
・サーバレス=サーバを意識しないこと
・Lambdaで要件を満たせるかをまず検討し、難しければECS、EKSを検討
・定期的にメインブランチへマージ
・脆弱性検査などをCI/CDパイプラインに組み込み、より効果的に活用可能
・DynamoDBのプライマリーキー
→パーティションキー or パーティションキー+ソートキー
結果はソートキー順で返される。順番を変える場合はセカンダリインデックスで別の項目をソートキーに指定する必要あり
(インデックスベースでクエリ実行)
・即時レスポンスを求めない場合等、非同期的な通信でフローを実現できないか検討する
・Saga→サービスにまたがったデータ整合性の維持。分散トランザクションで補償トランザクションにより結果整合性を実現
・CQRS
→コマンドサービスで更新するDBとクエリサービスで参照するDBを分ける。
各DBはコマンドサービス実行後の難かしらのタイミングで同期。