知らず知らずにもう使ってる? 「MACHアーキテクチャ戦略」とは何か:「LAMP」から「MACH」へ
Fixate IOのクリス・トッツィ氏は「MACHアーキテクチャ戦略」について解説した。マイクロサービス、APIファースト、クラウドネイティブ、ヘッドレスという4つの要素を考慮した設計アプローチで、各要素を組み合わせることで効果的なアプリケーション開発が可能になるという。
Fixate IOのクリス・トッツィ氏は2023年7月18日、Webメディア「TechTarget」にて「MACHアーキテクチャ戦略」について解説した。
単一の「MACHアプリケーション」は存在しない
「MACH」とは「マイクロサービス、APIファースト、クラウドネイティブ、ヘッドレス」の頭文字を並べたもので、LAMP(Linux、Apache、MySQL、PHP)、MERN(MongoDB、Express.JS、React.js、Node.js)、MEAN(MongoDB、Express.JS、Angular.JS、Node.js)などと同様に、Webアプリケーション開発に関する設計アプローチのことだ。
MACHアーキテクチャ戦略の要点は以下の通り。
1.マイクロサービス:
アプリケーションを複数の独立したサービスとコンポーネントに分割するアーキテクチャ。それぞれのサービスは個別に開発、展開、管理が可能で、柔軟性を高める。
2.APIファースト:
アプリケーションの設計においてAPIを中心に据え、開発の初期段階からAPIに関する要件を考慮するアプローチ。アクセス制御や統合などのAPI関連の課題を早い段階で解決することを重視する。
3.クラウドネイティブ:
クラウドをベースとしたプラットフォームとツールを利用してアプリケーションを構築し、展開する戦略。分散環境での運用を強化し、拡張性や柔軟性を向上させる。
4.ヘッドレス:
アプリケーションのフロントエンドをバックエンドから切り離すアプローチ。UI(ユーザーインタフェース)などのフロントエンド部分を抽象化して変更を容易にし、バックエンドの変更の影響を受けないようにする。
トッツィ氏によると、これらの4つの原則はコンポーネントの規範的なラインアップを提示するものではなく、「さまざまな方法で実装できる高レベルなソフトウェア設計の概念」を表しているという。注意点としては、4つの要素を完全に具体化する単一の「MACHアプリケーション」などは存在しないということだ。例えば、ヘッドレスとマイクロサービスはアプリケーションの構成について相反する考え方(アプリケーションを2つで構成するか、複数で構成するか)を持っているため、それらを完全に両立させることは難しい。そのため、実際にはこの4つの要素を適宜組み合わせて利用する形になる。
MACHアーキテクチャの利点と課題
MACHアーキテクチャの利点は主に「柔軟性」「拡張性」「信頼性」の3つを高いレベルで維持できることだ。
MACHアーキテクチャで構築されたアプリケーションは、個別に変更できる複数のコンポーネントで構成されるため、機能の追加や修正などが柔軟にできる。また、コンポーネントはそれぞれのスケーリングできるので、時間の経過に伴う予測可能な成長、予期しないワークロードなどに対応することも容易だ。クラウドネイティブへの展開やマイクロサービスによる実装を前提としているため、アプリケーションをホストしている環境の一部で障害が起きてもアプリケーション自体は利用し続けられる利点もある。
一方で、課題もある。
MACHアーキテクチャで構築したアプリケーションは、従来のモノリシックアプリケーションよりも多くの可動部品を含む傾向があるので「ほぼ確実に動的なクラウドネイティブ環境に展開される」(トッツィ氏)という。そのため、アプリケーションの展開には複雑な管理が必要となり、コンテナオーケストレーターやAPIゲートウェイなど高度な管理ツールの導入が必須となる。
MACHアーキテクチャはどのように始めればいいのか
MACHアーキテクチャを導入するかどうかの判断は、アプリケーションのニーズと組織のスケールによって異なる。
「MACHアーキテクチャで構築したアプリケーションの拡張性と信頼性はほとんどの企業にとって必須だと思われるが、小規模な運用をしているアプリケーションの場合、MACHアーキテクチャの管理の複雑さがメリットに見合わないこともあるだろう」(トッツィ氏)
ただMACHアーキテクチャは、クラウドネイティブやマイクロサービスなど既に普及しているソフトウェア開発手法で構成されているので、「それと気付かず、1つ以上のMACH要素を使用している企業も多い」という。
「その場合、組織が見落としている可能性のあるMACHアーキテクチャの要素を明らかにするといい。組織がマイクロサービスベースのアプリケーションを個々のサーバに展開しているのであれば、これらのアプリケーションをサーバのクラスタにコンテナアプリケーションとしてデプロイすることは、MACH戦略に密接に合わせる1つの方法だ」(トッツィ氏)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 次の花形職種? 組織とITの総合プロデューサー「エンタープライズアーキテクト」に必要な4要素
Excelon Developmentのマット・ホイサー氏は「エンタープライズアーキテクト」にとって重要な“4つのアクション”について解説した。エンタープライズアーキテクトが成功するためには、技術的な専門知識だけでなく、ビジネス洞察力やコミュニケーション能力など幅広いスキルが必要だとしている。 - 「マイクロサービスアーキテクチャ」と「ヘッドレスアーキテクチャ」の共通点と違いは? どちらを選べばよいのか
アプリケーション開発や運用に柔軟性を与えるマイクロサービスアーキテクチャやヘッドレスアーキテクチャはどこが違うのか? アプリケーションを構築する際、どちらを採用すべきなのか。 - なぜABEMAは「サッカーW杯」を安定配信できた? 担当者が明かすリアーキテクチャ、サービスメッシュ導入とは
ABEMAの配信プラットフォームはAmazon Web ServicesとGoogle Cloudの特徴をそれぞれ生かしたクラウドネイティブなアーキテクチャで構成されている。2022年に開催された「FIFA ワールドカップ カタール 2022」の配信に当たって、安定配信を実現するためリアーキテクチャに取り組んだという。どのような取り組みだったのか。