CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
前回は、コンテナオーケストレーションのデファクトスタンダードであるkubernetesについて説明しました。今回は、クラウドネイティブを構成する技術である、マイクロサービスについて説明します。
マイクロサービスは、ソフトウェアが持つ機能を細かいサービスとして複数に分け、それぞれを連携させてシステムを動作させるアーキテクチャです。
マイクロサービスは、複数の機能を1つのアプリケーションで動作させるモノリシックアーキテクチャと対比されます。以下で、モノリシックとマイクロサービスを比較してみます。
上記に述べたように、両方ともメリット・デメリットのあるアーキテクチャです。では、なぜマイクロサービスが注目されてきているのか、それはコンピュータ環境の変化によるものです。
コンピュータの世界では、ムーアの法則にそって処理速度を更新してきました。ムーアの法則を簡単に言うと「集積回路(LSI)上のトランジスタ数は2年毎に2倍となる」で、年数ごとにコンピュータ(CPU)の処理速度が早くなるという法則です。しかしムーアの法則は、現在のアプローチでは物理的な限界を突破できず、コンピュータの処理速度は停滞しています。
現在では、複数のCPU(マルチコア)を持つことで、処理速度ではなく処理量を増やしています。モノリシックなアプリケーションではサーバを複数用意して処理量を確保したり、一部を別アプリケーションで動作させて対処しています。このような環境では、モノリシックなアプリケーションではデメリットが生じます。例えば、アプリケーションの肥大、開発ペースの低下、アプリケーションの陳腐化、サーバ追加時のコスト増などです。
マイクロサービスは、モノリシックなアプリケーションの処理の一部を切り出し、サービス化するところから始めます。そして、全ての機能がサービスとして提供され、密結合から疎結合に変わるのがゴールです。
これらのメリットはコンテナ技術と相性がよく、Kubernetesなどと同時に使用することで、サービス構築を自動化できます。
今回は、マイクロサービスの概要について説明しました。なぜ、マイクロサービスという概念が生まれてきたのが、おわかりいただけたでしょうか。次回は、マイクロサービスを実現する技術の1つである、サービスメッシュについて説明します。次回をお楽しみに。
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes