マイクロサービスとAPI:違いは何ですか?

マイクロサービスとAPI:違いは何ですか?

  • ITOps・DevOps
6分で読めます 更新日 Dec 16, 2020

ポイント: マイクロサービスは、通信にAPIを利用し、ソフトウェア管理とスケーラビリティを向上させる個別のサービスです。彼らは、アプリケーションがより小さく、焦点を絞ったコンポーネントを通じて機能することを可能にし、APIはこれらのサービスのインターフェースとして機能し、相互作用とアクセス性を可能にします。

  • マイクロサービスは、機能を分散化することによってソフトウェア設計を向上させます。
  • APIは、マイクロサービスが効果的に相互作用するために不可欠です。

マイクロサービスは、企業が提供する小さな単一のサービスです。これは、多くの小さなサービスを接続する分散コンピューティングアーキテクチャに由来し、大きなサービスを持つのではなく、小さなサービスを結び付けるものです。マイクロサービスは、アプリケーションプログラミングインターフェース(API)を通じて提供されることができます。APIは、リクエスターとホスト間の通信手段であり、最も一般的にはIPアドレスを介してアクセス可能です。APIは、ユーザーに対して以下のような複数の情報を伝達することができます:

  • 共有したいデータ
  • 提供したい機能

要するに、マイクロサービスについての話はソフトウェアのアーキテクチャに関するものであり、APIはマイクロサービスを消費者にどのように公開するかに関するものです。

マイクロサービスの動作

マイクロサービスは、企業が大きな単一のサービスを提供するというアイデアから派生しています。マイクロサービスは個々の機能として登場します。もしMicrosoft Wordがマイクロサービスに分割されるとしたら、空白の紙として提供されるもの、スペルチェッカーとして提供されるもの、フォーマッティングツールとして提供されるものがあるでしょう。Kubernetesは、コンピュータソフトウェアが適応できるようにしました。Kubernetesには独自の利点がありますが、それはまた、ソフトウェアデザインを単一のモノリスのサービスから、より多くの小さなサービスが協力して動作する組み合わせに向けて推進しました。それはKubernetesのデザインのためです。

  • サーバー上の単一コンテナの使用を効率的にオーケストレーションする
  • システムの信頼性とスケーラビリティを向上させる
  • 関連する管理およびリソースコストを削減する
モノリスアーキテクチャ
分散マイクロサービス

(マイクロサービスとモノリスアーキテクチャの詳細を学ぶ.)

マイクロサービスの例

マイクロサービスは非常にシンプルです。シンプルさは主要な目標です。企業の役割として考えることができます;一つのマイクロサービスは非常に特定の役割を果たし、ただ一つの仕事を持っています。DZoneは、Uberが提供するさまざまなマイクロサービスの優れたグラフをまとめ、APIを介して互いに通信し、異なるタスクを実行しています。Uberは各タスクのために異なるサービスを構築します:

  • 乗客管理
  • 乗客ウェブUI
  • 請求
  • ドライバー管理
  • ドライバーウェブUI
  • 支払い
  • 旅行管理
  • 通知

(ソース)

マイクロサービスは、グラフを通じても示されることがあります。一つのマイクロサービスは、APIを介して別のサービスと通信する単一のノードです。アーキテクチャは、システムに追加されるサービスが増えるにつれて成長し続けることができます。大企業のグラフは、想像するに、小さな都市のように広範囲にわたることがあります。ここでは、AmazonとNetflixの仮想グラフを示します:

(ソース)

マイクロサービスはAPIに依存する

APIは通信ツールです-それは一つのサービスが別のサービスと相互作用することを可能にします。API自体は何もできません、それは何かに接続されて初めて機能します。携帯電話のようにただそこに座っているものです。APIは、サービスやマイクロサービスに接続されると有用になります。

APIは、マイクロサービスをユーザーに配布する方法です。ソフトウェアをダウンロードしたり、ディスクを挿入する代わりに、APIがサービスを配布します。APIは、マイクロサービスアーキテクチャが機能するために必要です。なぜなら、APIはそのサービス間の通信ツールだからです。APIがなければ、多くの切り離されたマイクロサービスが存在することになります。技術的には、マイクロサービスは再びモノリスになるだけです。

APIの動作

APIは非常に多用途です。次のことができます:

APIは、サービスの使いやすさと露出を高めることができます。配布がはるかに簡単になると、より小さなサービスを提供できます。(結局、全体のAdobeスイートを構築して実行可能性を証明する必要はありません)。多くのAPIはRESTfulで、HTTPエンドポイントのようなエンドポイントを介して公開されます。これは、APIから情報にアクセスすることがURLをpingするほど簡単であることを意味します。GET、POST、PUT、DELETEコマンドは、URLと組み合わせて期待通りに機能し、データを取得したりAPIにデータを提供したりします。REST APIは現代のWebアプリケーションで最も一般的ですが、他の選択肢には次のものがあります:

製品として、APIエンドポイントは通常、開発者ポータルと一緒に提供され、開発者がそれを使用する方法を説明し、開発者にAPIキーを割り当てます。もしマイクロサービスの目的が、特定の郡に登録された車両に関するデータを提供することであれば、開発者ポータルは次のことを説明します:

  • サービスが何をするか
  • データの構造(すなわち、データスキーマ)
  • 開発者がAPIを使用するために必要なもの

マイクロサービスとAPI

ほとんどの良いマイクロサービスには何らかのAPIタイプがあります。マイクロサービスを使用してもらいたい場合は、APIを作成します。APIは、開発者にとって、アーティストやクリエイターにとってのソーシャルメディアアカウントのようなものです。使用してもらいたいなら、APIを使用して人々がそれを受け取れるようにします。

関連する読み物

これらの投稿は私自身の意見であり、BMCの立場、戦略、または意見を必ずしも代表するものではありません。

ITOps・DevOpsの関連記事

BMCからのさらなる情報に興味がありますか?

ザ・ブリーフは、メインフレームとエンタープライズオーケストレーションに関する月刊メールです:研究、顧客ストーリー、製品ニュース、イベント。

このオファーに登録することで、あなたはBMCのプライバシーポリシーを読み、同意したことを確認します。

ザ・ブリーフに登録しました

ザ・ブリーフは、メインフレームとエンタープライズオーケストレーション—BMC AMIおよびControl-M—に関するアナリストの研究、顧客の展開、両者にわたるイベントを網羅しています。