このすみノート

Webエンジニアが技術や趣味を書くブログです。

モダンアプリケーションとはなにか - AWSで実現するモダンアプリケーション入門を読んで

「AWSで実現するモダンアプリケーション入門 〜サーバーレス、コンテナ、マイクロサービスで何ができるのか」を読み進めてます。

クラスメソッドさんの書評で話題になっていたため、手に取りましが、はじめに〜第1章の時点ですでにおもしろいです。

dev.classmethod.jp

現在のビジネスはスピードが求められている

本書で最初に解説されているのが、「イノベーションフライホイール」についてです。 自分なりに解釈すると、現在のビジネスではスピードが求められているの一言に尽きます。

また、MVP(Minimum Viable Product)といった、最小限のプロダクトを素早くリリースする事例も紹介されています。

ビジネスにおいてスピードを発揮するためには、当然ですが、アプリケーション開発にもスピードが求められます。 モダンアプリケーションは、素早いアプリケーション開発を実現するために必要なプラクティスであると言えます。

モダンアプリケーションとは

本書では、変化を受け入れ続ける開発戦略のことを、モダンアプリケーションと呼んでいます。 常に変化し続けるビジネス市場やテクノロジーに合わせて、アプリケーションの作り方も変えていく戦略だと解釈しました。

モダンアプリケーションと聞くと、「サーバーレス」「コンテナ」「マイクロサービスアーキテクチャ」といった、特定の技術を思い浮かべる方も多そうです。 しかしながら、モダンアプリケーションは特定の技術に依存するわけではありません。

モダンアプリケーションを採用する理由

  1. 市場にアプリケーションを素早く投入できる
  2. 本質的なアプリケーション開発に注力でき、イノベーションが促進される
  3. 従量課金など使った分だけのお金を払ったり、運用コストの削減によりTCOが改善する
  4. 強固な基盤を有効活用してアプリケーションを構築することで、信頼性が向上する
  5. 適材適所でテクノロジーやツールを組みわせることができる

現時点での一般的なベストプラクティス

  1. アプリケーション、運用、ビジネスなどの各種メトリクスを、モニタリングして改善する
  2. サーバーレステクノロジーで、クラウドにサーバーの運用オペレーションをオフロードする
  3. リリースパイプラインを構築し、リリースオペレーションを安定化しつつオフロードする
  4. ビジネスの状況に合わせて、各種モジュラーアーキテクチャを採用する
    1. モノリス、モジュラーモノリス、マイクロサービスなど

まとめ

モダンアプリケーションは、変化し続けるビジネスに素早く対応するための考え方であり、プラクティスです。

「新しい技術だから使ってみたい、単なるITエンジニアの好奇心」というモダンを卒業して、適材適所のテクノロジー選択(技術選定)ができるようになりたいと常日頃思っているため、ヒントとして活用していきたいです。