見出し画像

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

マイクロサービスアーキテクチャとはソフトウェア開発における技法の一つです。具体的には、規模が小さいサービス同士を組み合わせて連係させることで、一つの大きなアプリケーションやサイトの構築を行う技法を指します。最初に機能ごとに小さなサービスを作り、それらを組み合わせることで大きな機能を構成するという設計方法を取ります。
※従来のソフトウェア開発は、すべての機能を一枚岩(モノリス)のようにまとめて設計を行う「モノリシックアーキテクチャ」が主流でした。

<メリット>
マイクロサービスはそれぞれのサービスごとに独立して開発・実装を行えるため、全体像の把握が容易です。そのため、サービスの開発・改修を、従来よりも素早く行えるようになります。
また、障害時のリスク管理になる大きなシステムで障害が起こった場合に、それぞれのサービス同士の関係性が薄いため、独自性を確保していることから、障害が起こった際に影響する部分を最小限に留めることができます。
さらに、新機能の追加など、一部サービスの改修が他のサービスにも影響を及ぼす心配が少なく、問題発生時は問題のある部分のみを切り離せば済みます。

<デメリット>
マイクロサービスのデメリット小分けにしたサービスを連携させるのはマイクロサービスのメリットですが、デメリットでもあります。小さなサービスを多く連携させることで、構成が複雑になる恐れがあるためです。そもそもサービスをどのように分割するのかを検討する必要もあります。
また、サービスを個々に分けていくという設計上、サービスごとの管理業務も発生します。小規模で人数が少ない企業でマイクロサービスを導入した場合、複数の一貫性がないシステムを少人数で管理しなければいけません。


<解決策>
・コンテナを使用する
マイクロサービスではサービスごとに異なる開発基盤を使用するケースが多いですが、それぞれのサービスをコンテナとして実行すればお互いの環境に影響されません。また、それぞれのライブラリをパッケージ化することによってどのホストにも展開することが可能。(ただし管理が大変)

・オーケストレーション機能を活用する
複数の実行環境をクラスター化と言われる一台の実行環境として扱う単位で管理することによって、全てのサービスに共通の処理を実装し管理をするという必要がなくなります。また、万が一の運用中にコンテナに不具合が生じた場合、自動的にそのコンテナを再起動するという機能もあります。


この記事が気に入ったらサポートをしてみませんか?