「モダンアプリケーション開発」とは?「ソフトウェア化する世界」で注目の開発アプローチ

古川2022.03.04

マーク・アンドリーセン(Marc Andreessen)さんの見立ては正しかったようです(Why Software Is Eating The World)。

AgriTech(農業×IT)、MedTech(医療×IT)、HRTech(採用×IT)など…あらゆるビジネスがソフトウェア上に再構築されオンラインで提供される現在、業種や業界に関係なく、さまざまな企業がソフトウェア企業のごとくソフトウェア開発に取り組んでいます。

しかも今日のように激しく変化するビジネス環境では、高速で高品質なソフトウェア開発が、企業の成功・失敗とその将来を左右するといわれます。しかし、一般にスピードと品質はトレードオフの関係にあり、開発スピードとソフトウェア品質の両立は簡単ではありません。

そこで注目される新しいアプローチが「モダンアプリケーション開発」です。

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

モダンアプリケーション開発(Modern application development)とは、品質を確保しながら迅速なソフトウェア開発を可能とするリリースプロセス、変化への柔軟な対応を実現するソフトウェアアーキテクチャなど、ソフトウェア開発の現代的課題を解決する手法や考え方です。

このモダンなアプリケーション開発への移行で最も成功した企業の1つがアマゾン(Amazon.com)といわれます。アマゾンにおけるモダンアプリケーション開発の取り組みは、アマゾンCTOのヴァーナー・ボーガス(Werner Vogels)さんのBlog記事からうかがい知ることができます(Modern applications at AWS)。

私たちのWeb業界でも、モダンアプリケーション開発のプラクティスをベースとした「Jamstack」と呼ばれるコンセプトがトレンドになっています。Jamstackとは2016年ごろにNetlifyの創設者マット・バイエルマン(Mathias Biilmann)さんが提唱した新しいフロントエンドスタックです。リクエストを受けてからサーバー上で処理を行いレスポンスを返す従来のWebサイトの配信方法とは異なり、Jamstackでは事前にビルドされたHTMLをCDN上で配信します。開発環境構築が難しいように感じますが、AWSでいえばAWS Amplifyのような、JamstackアーキテクチャなWebサイトを簡単に構築できるフルマネージドな静的サイト配信プラットフォームが最近では増えてきています。

余談ですが、デジタル庁では「政府統一Webサイト構想」の実現に向けて、JamstackアーキテクチャによるWebサイト構築の調査事業がはじまっています。

モダンアプリケーションに不可欠な要素

スピードと品質の両立を目指し、さまざまな業種・業界で実践が広がる「モダンアプリケーション開発」ですが、この構成に不可欠な要素が4点あります。

  1. マイクロサービスアーキテクチャ
  2. サーバーレステクノロジー
  3. CI/CDによるワークフロー自動化
  4. モニタリング

少し詳しく見てみたいと思います。

マイクロサービスアーキテクチャ

マイクロサービスアーキテクチャは、小さく独立した複数のサービスでソフトウェアを構成するアーキテクチャです。各サービスはAPIを通じてやりとりをします。

モノリシックな構成のアプリケーションでは、各サービスが密結合しているため、機能の変更や追加が困難になりがちです。対してマイクロサービスアーキテクチャは、各サービスが独立した疎結合の状態なため、拡張性や柔軟性が高く、リリース速度が高まります。

サーバーレステクノロジー

アプリケーションを稼働させるには、サーバーやOSの運用が必要です。環境を用意するということは、必然的にその環境の運用・保守を行わなくてはなりません。また、アプリケーションへのリクエストのボリュームに応じて可用性と耐久性の要件を検討しながらプロビジョニングする必要があります。これらのインフラ環境にまつわるシステム管理者の負荷軽減のため、モダンアプリケーションではサーバーレスなクラウドサービスが活用されます。

CI/CDによるワークフロー自動化

モダンアプリケーションでは、CI/CDを利用して、コードのビルドからテストの実行、ステージング環境へのデプロイ、本番環境への最終デプロイまでのリリースプロセス全体を自動化します。これによって、1日に何度もすばやくビルドからデプロイを繰り返すことができ、迅速なイノベーションを実現します。

モニタリング

ユーザー体験に影響する問題を早期に検知して、より早く解決するためには、モニタリングツールとログ記録ツールを使用して、アプリケーションの実行時の動作をモニタリングする必要があります。そして、マイクロサービスアーキテクチャの場合、分散した各アプリケーションの情報を収集して可視化することがポイントになります。

まとめ

モダンアプリケーション開発はそれほど新しい考え方ではなく、すでに実践されている事例が存在します。中でもAWSでは、モダンアプリケーション開発の環境を構築するためのサービス群設計パターン学習リソースを提供していますので、興味がある方はぜひチェックしてみてはいかがでしょうか。

この記事を書いた人

古川

犬を2匹飼っています🐶🐶
ミツエーテックラジオでもスピーカーをしています。ぜひ聞いてください!

#モダンWebアプリケーション

この記事をシェアする

この記事の目次