マイクロサービスとは

 

マイクロサービスは、現代のソフトウェア開発ライフサイクルで開発者向けツールとして使用されている、多数の独立した Web 標準、プログラミング言語、データベース プラットフォーム、Web サーバ コンポーネントを指します。従来の考え方では、企業は、1 つの IT 企業が提供する統合されたハードウェアおよびソフトウェア テクノロジーを表すサービス指向アーキテクチャ(SOA)に焦点を当てていました。マイクロサービスでは、独立した開発会社やオープンソース コミュニティが提供する、クラウド ソフトウェア アプリケーションおよび Web サーバでサポートされる多種多様なコンポーネントが存在します。IT 部門は、大規模なパブリック クラウド データセンター内の分離された複数のマルチテナント環境にまたがる本番環境でマイクロサービスを管理するための新しい戦略を必要としていましたが、その解決方法として、サービス メッシュ テクノロジーに基づく、SDDC 標準を使用した仮想化ソリューションを主に採用しています。マイクロサービスは、クラウド データセンターの Web サーバ上でコードを構築および運用するための基盤となる構成要素または基本コンポーネント、プラットフォーム、フレームワークを形成します。

モノリシック アーキテクチャとマイクロサービス アーキテクチャの比較

  • モノリシック アーキテクチャ:IBM メインフレームの時代および企業の IT を Microsoft Windows OS が独占していた時代から伝統的に引き継がれている手法です。
  • マイクロサービス:オープンソース コミュニティ、サードパーティの開発者、新興企業に加え、もっとも広く使用されている Web サーバ プラットフォームの基本機能を拡張するコードを提供する独立系のプログラマーらに端を発する手法です。現在、主要な IT 企業のほとんどが独自のマイクロサービスをリリースし、オープンソース プロジェクトに参加しており、さまざまな業種や幅広いソリューション市場のチームが独自の基盤で標準を採用しています。マイクロサービスは、クラウド アプリケーション向けのオープンソース コード ソリューションを通じて開発者の技術革新と同じ原理で機能しますが、現在では、独占的にライセンスが管理されたマイクロサービスも珍しくありません。

 

マイクロサービスのメリット

  • 迅速な技術革新:大企業でも新興企業でも、ソフトウェア アプリケーションの新しい機能を生み出す必要がある場合に、モノリシック アーキテクチャを使用するよりも迅速に技術革新を市場に投入できます。Web アプリケーションやモバイル アプリケーションを使用するお客様は新しい機能を求めています。革新的なテクノロジーは、広く普及し企業で採用されて、資金提供を受けることができます。大手 IT 企業にとっても新興企業にとっても、新しいマイクロサービスを統合してプログラミングや開発の最新技術を活用できるという利点があります。
  • より高度なデータセンターの自動化:開発者は特定のプラットフォームや標準を自身の作業に使用する傾向がありますが、これには、マイクロサービスを使用した Web アプリケーションやモバイル アプリケーションのプログラミング言語およびデータベースのサポートも含まれます。マイクロサービスは、API などのスクリプト化されたプロセスを介して連携し、より高度なデータセンターの自動化を可能にします。

 

マイクロサービスの仕組み

マイクロサービスは、デフォルトのオペレーティング システム、ネットワーク、またはデータセンター管理プラットフォームで提供される機能ではなく、主に、Web サーバ上で利用できる機能を増やすことによって動作します。マイクロサービスは、プログラミング言語プラットフォームやデータベース フレームワークのような Web サーバ スタックの拡張機能である場合もあります。PHP や MySQL のアプリケーションを開発するには、LAMP プラットフォーム サポートを使用して Web サーバ環境を構成する必要があります。マイクロサービス ベースのソリューションは、多くの場合、Microsoft、Oracle、IBM などの大手 IT 企業がクローズドソースのディストリビューションで提供するサービス指向アーキテクチャと競合関係にあります。現在、企業は、PHP、Python、Ruby-on-Rails、Java、C++、ASP.net などで記述された複数のアプリケーションを本番環境で同時にサポートしなければなりません。その他の状況として、データセンター内に、マルチテナント ハードウェア上の仮想マシンで動作するデータベース フレームワークが複数ある場合もあります。Web サーバは、ストリーミング メディア用のカスタム拡張機能や API 統合をサポートするように構成したり、分析用のプロプライエタリ ユーティリティを追加することによって構成したりする必要があります。このようなサードパーティ サービスやオープンソース サービスをすべてまとめて追加すると、本番環境の一般的な Web サーバ上で多数のマイクロサービスと同じように機能し、パブリック クラウド サービス環境で数百万台にも及ぶ仮想マシンによって大規模に拡大されることになります。

 

マイクロサービスの歴史

マイクロサービスが用語として使用されるようになったのは、主に、Web 2.0 の時代以降であり、企業の IT 部門が最新のエコシステムやベスト プラクティスを反映できるようにソフトウェア開発環境を概念化する新しい方法を必要としていたためです。Web アプリケーションやモバイル アプリケーションの開発にマイクロサービスを使用すると、複雑さが増すため、企業の業務においてデータセンター管理者の負担が大きくなります。企業は、今では、必要なソフトウェアやデータセンター ソリューションのすべてを Oracle、IBM、Microsoft などから単純に調達するのではなく、ビジネス用途に対応できるエンタープライズクラスのソリューションを提供する多数のオープンソース コード プロジェクトを利用しながら事業を遂行する必要があります。多くの Web 標準には、さまざまな企業の競合するバージョンがあります。多くのプログラミング言語とデータベースは、共通の機能を備えています。各開発チームは、ツールやプログラミング方法を独自に選んでいます。統合された IT 部門内でクラウド時代のこの複雑さをすべて管理するために、世界中の多くの複雑な組織において、プロフェッショナル ソフトウェア開発でマイクロサービスをサポートする必要が生じています。

 

マイクロサービス アーキテクチャについて

マイクロサービス アーキテクチャを理解する最良の方法は、Web サーバ スタック内のソフトウェア レイヤーを把握することです。Web サーバのオペレーティング システムは、Windows、Linux、または BSD のいずれかです。ツールには、データセンター管理やネットワーク上でのロードバランシングのためのツールがあります。Web サーバとしては、Apache、IIS、NGINX、Caddy、Tomcat などの選択肢があります。また、PHP、ASP.net、Python、Ruby、Perl、Java、Go など、インストール済みのプログラミング言語をサポートするレイヤーがあります。さらに、MySQL、MSSQL、PostgreSQL、MongoDB などのデータベース フレームワークのレイヤーがあります。Varnish、Redis、CDN、最適化ユーティリティなどのキャッシュ ユーティリティのレイヤーもあります。その他のサポート レイヤーとして、エッジ サーバ、サーバレス プラットフォーム、AI/ML 統合などがあります。パブリック クラウド エコシステムでは、相互運用性、ルーティング、通信をサポートするためにサービス メッシュで管理する必要がある多数のマイクロサービスが同時に動作しています。

 

サービス指向アーキテクチャ(SOA)とマイクロサービスの比較

サービス指向アーキテクチャ(SOA)は、通常、1 つのベンダーから提供されるか、明確に定義された業界のニーズに合わせて展開できるハードウェア ソリューションとソフトウェア ソリューションのパッケージを含みます。SOA では、さまざまなディストリビューションまたは製品モデルを通じて、データセンター、Web サーバ、スタック レイヤーをサポートします。SOA は、ベンダーによるプロプライエタリ ソリューションとオープンソース ソリューションの両方で提供されています。ネットワーク機器やファイバー接続は、クラウド データセンターと社内のプライベート データセンターとで異なる方法で管理されます。マイクロサービスは、現状のソフトウェア開発環境で技術革新を活用するために必要です。大企業でも、新しい Web アプリケーションやモバイル アプリケーションを市場に投入するアジャイル プログラミング チームを支援するために、マイクロサービスを採用する必要があります。この場合、製品サポートに多数のブランドやドメインが含まれることもあります。レガシー エンタープライズ ソフトウェアのモダナイゼーションとコンテナ化には、多くの場合、マイクロサービスが必要です。

マイクロサービスに関連する VMware の製品、ソリューション、リソース

Software-Defined Storage とは

VMware が提供する Software-Defined Storage は、ビジネス ニーズとアプリケーションの要件に対応する、シンプルでありながらインテリジェントなストレージ データセンター アーキテクチャです。詳細をご確認ください。

クラウド サービスの定義

クラウド サービスの定義に関するベスト プラクティスを使用して、サービス指向およびビジネス主導の運用モデルの基礎を築きます。

仮想化とは

仮想化は、企業や組織の規模を問わず、効率性と俊敏性を高めながら IT 支出を削減する非常に効果的な方法です。

プロジェクト指向型とサービス指向型の違いとは

今日の IT 部門では、作業を管理するための概念として「プロジェクト」を使用しています。サービス指向型になると、プロビジョニングの高速化とコストの削減を実現できます。

エンタープライズ クラウド スイート

エンタープライズ クラウド スイートは、ハイブリッド クラウドを管理する製品と、セルフサービス プロビジョニングを提供する製品を統合したソリューションです。

サービス定義および対応する仮想エンドポイントの作成

パブリック クラウドでサービス アプライアンスのサービス定義および仮想エンドポイントを作成するには、NSX Manager API を使用する必要があります。