マイクロサービス化をわかりやすく解説!メリットや事例をチェック
目次
近年注目を集めている「マイクロサービス」をご存知でしょうか?ソフトウェア開発技法の1つで、モノシリックアーキテクチャで生じる課題の解決につながることから、移行する企業が多くあります。
マイクロサービス化するとどんなメリットがあるのでしょうか?本記事では、マイクロサービスについて詳しく解説するとともに、メリットや注意点、企業事例をご紹介します。マイクロサービス化を検討される場合にもぜひご参考にしてください。
なお、「DXとは何か?」について体系的にチェックしたい方は、以下の記事でxDX編集長が詳しく3万字で解説しているので、ぜひ併せてご覧ください。
▶︎[編集長が3万字で解説]DXとは?注目の背景から行政/民間/生活者への影響、活用技術、推進のポイント、最新トレンドまでを体系的に解説
マイクロサービスの基本知識
まずは、マイクロサービスとはどういうものなのか、基本的な概要を確認していきましょう。
そもそもマイクロサービスとは?
マイクロサービスは、マイクロサービスアーキテクチャとも呼ばれるソフトウェア開発技法の1つです。アーキテクチャとは、アプリケーションの構造を意味しています。
従来は複数のサービスをまとめて大きなソフトウェアにする設計が一般的でした。単一の大きな機能で1つの処理を行うアーキテクチャです。英語で「一枚岩」を意味する「モノリス」や「モノシリックアーキテクチャ」と呼ばれています。
モノシリックに対して、マイクロサービスでは機能を分解して作成した小さなサービスを組み合わせて大きなソフトウェアの構成にしているのが特徴的。モノシリックでは大きな単一の機能によって処理されますが、マイクロサービスの場合は独立した機能によって処理します。
マイクロサービス化でできること
マイクロサービス化によって、すべての機能が1つのアプリケーションに統合されたモノシリックなサービスを、機能に合わせて小さいサービスに分割できるようになります。マイクロサービスは、1つのマシン上で複数の機能がそれぞれ独立して動き、ネットワークを介して関係する仕組みです。
たとえば、Aの機能を修正したときにバグを埋め込んでしまいシステムダウンが起きたとしましょう。モノシリックの場合は、単一システムのため全体に影響を及ぼしBやCなどほかの機能も使えなくなくなることがあります。マイクロサービス化すると、機能が独立するためほかの機能への影響を抑えられるようになるのです。
マイクロサービス化のメリットと注意点
続いては、マイクロサービス化した場合のメリットや、気をつけたいポイントについて見ていきましょう。
マイクロサービス化のメリット
・サービスの機能に適した技術を採用できる
モノシリックはすべての機能が単一システムで動くため、サービスごとに適した技術を選定することが困難です。マイクロサービス化によって各サービスに使う技術の制約がなくなります。
サービスAとサービスBで選択したい技術が異なる場合でも柔軟に採用できるようになるのがマイクロサービス化のメリットです。
・アプリケーション全体に影響しにくい
マイクロサービスでは、サービスが独立することによってアプリケーションの障害に対する耐性がアップするのもメリットの1つ。
モノシリックは1つの障害がすべての機能に影響を与えてしまう恐れがありますが、マイクロサービスでは障害が連鎖しなければ全体への影響を避けられます。
・スケールアウトのコストを抑えられる
システムを構成するサーバーの台数を増やして処理能力を高めるスケールアウトを行う場合、モノシリックでは必要ないサービスまでスケールアウトすることになってしまいます。
マイクロサービス化すると、負荷が高いサービスに限定したスケールアウトが可能に。スケールアウトに必要なハードウェア数を少なくできるため、コスト削減につながるのもメリットです。
マイクロサービス化の注意点
マイクロサービス化にはさまざまなメリットがありますが、導入には長い期間をかけて段階的に取り組む必要があります。モノシリックからのマイクロサービス化はわずかな期間で行えることではないので、長期的なスケジュールを確保しましょう。
分割したサービスが自立的に機能できるように、それぞれのサービスはできる限りシンプルな設計にしておくのがポイント。ただし、細かくしすぎると複雑な構造になってしまうのでバランスを考慮しなければなりません。また、複数のサービスが1つのハードウェアやOSの上で動かないように注意してください。
マイクロサービス化が順調に進んだ場合、サービスの乱立による管理の煩雑さが課題になることが想定されます。サービスメッシュを導入するなど、サービスを管理するための対策を検討しておくといいでしょう。
マイクロサービス化の事例紹介
最後に、「アマゾン ウェブ サービス」「株式会社メルカリ」「クックパッド株式会社」の3社によるマイクロサービス化の事例をご紹介します。
1.アマゾン ウェブ サービス(AWS) Amazon.com
Amazonはマイクロサービス化を推進している企業の1社です。クラウドプラットフォームのアマゾン ウェブ サービス(AWS)は世界的に広く採用されています。規模や負荷、複雑さに関わらず、さまざまなアプリケーションアーキテクチャをサポートする構成要素の統合により、マイクロサービスに適したプラットフォームを実現しました。
コンピューティングは、拡張性があって性能が高いコンテナ管理サービスの「Amazon Elastic Container Service」など、マイクロサービスに向きの処理能力を備えています。ストレージとデータベースは安全で高耐久。たとえば、リレーショナルデータベースの「Amazon RDS」は、クラウド内で簡単に設置や運用、スケールができます。
また、セキュリティ面も最高レベルの設計で、海外展開している銀行など機密性が高い組織のセキュリティ要件にも対応。クラウドセキュリティツールセットには、セキュリティやコンプライアンス、ガバナンスの機能とサービスが含まれています。
2.株式会社メルカリ
フリマアプリで知られるメルカリでは、2018年からマイクロサービス化のプロジェクトがスタートしました。決済システムとして開発されたマイクロサービスが「メルベイ」です。開発当初のメルカリはモノリスなサービスで、売上金やポイントのデータもメルカリ内のDBで管理していました。
モノリスのままメルペイを追加実装すると、メルカリとメルペイが相互依存する状態となり、メルカリに障害が発生した場合にメルペイに影響を及ぼしてしまいます。今後のメンテナンス性や開発効率も考慮して、メルカリの決済システムをマイクロサービス化する流れとなりました。
決済処理には複数のサービスをまたいで管理する必要があるため、決済トランザクション管理を重要課題としてデータの整合性が取れる仕組み作りに着手。決済トランザクション管理の基盤サービスが「PaymentService」です。1つの決算トランザクション処理を進行状態の記録など複数のフェーズに細分化して実行するなど、さまざまな手法が取り入れられています。
3.クックパッド株式会社
クックパッドがマイクロサービス化した背景には、レシピの投稿や検索サービスから海外展開へと事業領域が拡大している流れがありました。クックパッドのシステムは巨大なコードベースを持っています。
開発者個人が把握可能な規模のプロジェクトでは、モノシリックのメリットが大きく効率的に機能していました。しかし、一定の規模を越えると、全体像の理解が難しくなったり、デプロイメントに影響したりするようになったのです。
マイクロサービス化によって、新規アプリケーションは独立したチームのサービスとして開発し、連携させるアプローチへと変化しました。相対的にサービスを小さくできる、ほかのサービスで発生した障害の影響から分離できるなどさまざまなメリットを得ています。
新たな開発手法を取り入れたマイクロサービス化に注目
マイクロサービスはソフトウェア開発技法の1つで、独立した機能によって処理されるのが特長です。モノシリックは単一の構成になっているため、1つの機能に障害が発生するとほかの機能にも影響する恐れがあります。
マイクロサービスでは分解した機能が独立して動くため影響を抑えることが可能です。メリットや注意点を考慮してマイクロサービス化する企業も多くあります。今後の動向に注目しましょう。
文:xDX編集部 画像提供:pixabay, Getty images