MACH アーキテクチャってご存知ですか?
こんにちは、サイトコアの原水です。今回の記事で利用している写真は、ゴールデンウィーク明けに撮ったオフィスから見える銀杏並木の写真です。来週の弊社のイベントもあり、すこしづつノーマルに戻っている感じを改めて受けました。
前回は Sitecore コンポーザブル DXP について紹介をしました。Sitecore が持っている強力な Sitecore CMS を中心としたビジネスを拡張し、SaaS ベースの会社を買収して企業の DXP を支援する会社になるべく、ラインナップを揃えました。そしてそれらの製品群を Sitecore コンポーザブル DXP という形で提供し始めています。
前回の記事の最後に、今回のキーワードとなる MACH アーキテクチャについて紹介をしていました。今回はこのキーワードを少し深掘りしたいと思います。
MACH アーキテクチャ
アーキテクチャの MACH は以下のキーワードの頭文字を利用したものとなっています。
Microservice (マイクロサービス)
API First (API ファースト)
Cloud Native (クラウドネイティブ)
Headless (ヘッドレス)
それぞれどういう意味になるのか、簡単に取り上げていきます。
マイクロサービス
ソフトウェアの要素として重要なのは、何らかのデータを渡したりトリガーが発生した際に、その内容に合わせてロジックが発動して結果を取得する、もしくは他の処理で利用するためのデータを取得するという点があります。小難しく書いてみましたが、データを入力したあとボタンを押した、とした場合、処理をサービスとして独立して動くようにするようにし、また複数のサービス間でも連携できるようにするといった、ソフトウェア開発に関するアーキテクチャのことを指ししまします。
各サービスは単独で処理が可能となり、機能拡張もやりやすくなります。このようなマイクロサービスをベースとしたアーキテクチャにすることで、継続して機能を追加、強化場合の影響範囲を把握しやすくなるため、さまざまなところで採用されているアーキテクチャとなります。
API ファースト
API は Application Programming Interface の略称で、たとえば Windows、macOS や Linux などの OS では多くの API を提供して、アプリケーションが動作している形です。
この考え方をソフトウェアを拡張するための仕組みとして提供することで、他のシステムと連携する手順が明確になり、企業での利用に合わせて拡張をすることもできるようになります。そしてこの API の仕組みに関して汎用性を高めて、Web サービスとして提供 - Web サーバーにリクエストをするとデータを取得することが可能 - とすることで、API に必要な値を渡すと、欲しいデータを取得することができます。
提供されるデータ形式に関しては XML や Json といった、多くのシステムで利用しやすいデータ形式になっています。このため、システムの開発言語に依存しない形でシステム間でデータ連携ができるようになります。
クラウドネイティブ SaaS
多くの企業で求められるシステムは冗長性、可用性を高める必要があり、データセンターにはサーバーリソース、ストレージなどを用意し、またソフトウェアで必要となるサーバーを動かす必要がありました。これは、過去の話になりつつあります。
パブリッククラウドのサービスとなる、Amazon Web Services や Microsoft Azure といったサービスを利用する方がコストをずっと下げることができるだけでなく、最先端の技術を手軽に利用することができる状況になっています。
たとえば Web サーバーに関しては 99.9% の可用性を保証するサービスについて、必要な処理能力が小さければ、本当に安い金額で確保することができます。また、その処理能力を強化しなければならなくなった際には、管理画面からリソースをより大きな契約に切り替えるだけで、わずかな時間で切り替えることができるようになっています。
また従来のサーバー的な考え方からもう一歩踏み込んだ、API ベースのサービスなども提供しており、必要な時だけ利用をしてその利用料を支払うということも可能です。
すでに Sitecore が提供する製品、Sitecore Content Hub、Sitecore CDP + Personalize、Sitecore Send、Sitecore OrderCloud と言った製品はこのパブリッククラウド上に展開されており、サービスを組み合わせることで強力な SaaS 製品として利用することができるようになっています。
ヘッドレス
最後にヘッドレスです。海外ではヘッドレスコマース、ヘッドレス CMS といったニーズが非常に高まっており、Sitecore も各種製品で対応しています。
ヘッドレスの一番大きなメリットは、上記3つのキーワードが用意されていて初めて出てくると考えていいでしょう。マイクロサービス化されたサービスを、API を通じて利用することで、アプリケーションの開発の自由度が高まります。開発をしたいアプリケーション、Web サイトとしては、データに関しても API から返ってくるデータを処理することができれば良いだけとなります。
このヘッドレスに関しては、改めて私が当番の時に深掘りします。
MACH アーキテクチャのメリット
大きく分けて4つのメリットがあります。
より少ないリスクで機能強化、新機能の追加のスピードアップ
もっとも良い組み合わせでシステム構築が可能
アップグレードの考え方が変わります(SaaS との組み合わせのため)
カスタマイズや新機能の採用をシームレスに
Sitecore コンポーザブル DXP の対象製品は、ほとんどが MACH アーキテクチャを採用してるため、どの組み合わせでも利用できるようになります。ほとんど、と記載した理由は、CMS に関しては Cloud Native SaaS ではありませんが、昨年のイベントで発表をした SaaS 版の CMS の提供は今年の夏を予定しています。この提供が始まれば全てが MACH アーキテクチャとなります。
OS やデータベースのバージョンアップなどの作業は将来的には不要になります。そして、新機能が提供されればいつでも利用することが可能となります。
今現在の皆さんの利用しているソフトウェアは上記のようなアーキテクチャが意識されているでしょうか?
MACH アライアンス
今回紹介している MACH のキーワード 重要です と言っているのは Sitecore だけではありません。海外には MACH アライアンスという形の業界団体があります(英語のリンク)。
AWS も今年の1月に参加しています(英語のリンク)。
まとめ
今回は MACH アーキテクチャというキーワードを紹介しました。なんだか小難しい話になってしまいましたが、規模の大きなシステム( Web サイトや EC サイト)において求められる今後のアーキテクチャとなっています。既存の仕組みを延命させるのではなく、機能強化、拡張性ができる仕組みが求められています。
そうなの?という部分は、次回のヘッドレスを深掘りする記事にて改めてメリットを紹介したいと思います。