tezu memo blog

日々行った作業をメモしていきます

AWSで実現するモダンアプリケーション入門 を読んだ

自身のモダンアプリケーション?の経験

何となく経験出来ているような・・

  • Unit Testのカバレッジ100%を実現
  • CircleCIで以下を実行
    • Unit Test
    • E2E Test
    • TestがAll Greenの場合はデプロイを実行
  • Twelve-Factor AppなAppを作成したので、イミュータブルなデプロイを実現
  • (Unit Testのカバレッジ100%なので)GitHubのDependabotを有効にして、Pull Requestをmerge

感想

  • 構成が良い。最初に言葉の定義をして、次にモダンでは無いアプリケーションとこのアプリケーションが抱える具体的な課題も明確にしている。ピラミッドストラクチャーですね!
  • モダンでは無いアプリケーションをモダン化する際に既存のアーキテクチャを無理矢理変更しない点が実際の現場に寄り添っている感じで良い
    • MVP達成後、更にビジネスを加速させたいが技術的負債が溜まってキツイ人達って結構多いですよね
    • MVCアーキテクチャのModelがAPIファーストによってクラスのメソッドからAPIになっていく姿が脳内に浮かびました
  • コンテナやサーバレスの前にオブザーバビリティを取り上げてるのも素敵。過去に、NewRelicやDatadogを導入してAPMの画面を見せたら、「え?こんな情報が見れるんですか?」的な反応をする人が多かったです
  • オブザーバビリティとモニタリングの違いについて簡潔に説明してるのも良い
  • コンテナとサーバレスを比較して、サーバレスの方が開発に集中出来るとあるが、APIのエンドポイントが多いサービスだとコンテナ上でWebアプリケーションフレームワークを動かして、エンドポイント量産する方が集中出来るような。もう少し具体例が欲しい・・
  • アプリケーション側が発火したEventはSNSAWSのリソースが発火したEventはEventBridgeと勝手に理解していたのだが、少し混乱してきた
  • 開発のベストプラクティスやAPIの冪等性など、AWSのサービス以外の知識が増える
    ECサイトで決済代行のAPIを利用した際に注文番号をRequestに付与していた事を思い出しました
  • 自分自身が大量データの扱いについて悩んでいたので、要件にあったデータベースの選択は助かりました
  • (ADOTなど)全く知らないサービスを知ることが出来た。NewRelicやDatadogがサポートしていない言語はADOTを使用すれば良いのだろうか?

まとめ

モダンなアプリケーション開発したいが、周りの理解が得られず悩んでいる方はこの本で布教活動を開始できるくらいの良書です