マイクロサービスにより、古いモノリシックアプリケーションを、安全性と柔軟性を兼ね備えた効率的なアプリケーションに変えることができます。
マイクロサービスとは、認証、通知、決済処理などの単一の機能を実行する複数の小さなコンポーネントを組み合わせて大規模で複雑なアプリケーションを構築する、ソフトウェアアーキテクチャーのアプローチです。マイクロサービスはソフトウェア開発プロジェクトの独立した単位であり、それぞれが独自のコードベース、インフラストラクチャ、データベースを使用しますが、連携させて動作させることができ、Web APIやメッセージングキュー経由でやり取りし、受け取ったイベントに応答します。
簡素化されたマイクロサービスアーキテクチャー
マイクロサービスとは?
BuzzFeedがNGINX Plusでマイクロサービスに移行
マイクロサービスは、複雑なモノリシックアプリケーションを独立したサービスの集まりに変換することで、迅速な開発を可能にし、理解や管理を容易にします。各サービスを専門のチームに割り当て、別々に開発することができます。さらには、それぞれのマイクロサービスを別々にデプロイできるため、継続的にデプロイを進めることもできます。
高度なロードバランシングにより、個々のアプリケーションコンポーネントの安全かつ個別のスケールアウトが可能
他のコンポーネントとの依存関係を意識することなく、個別のスケジュールでアプリケーションコンポーネントの更新が可能
他のシステムに影響をすることなく、アプリケーションコンポーネントの個別のデプロイが可能
開発と管理が容易
柔軟なコンテンツキャッシュにより、アプリケーションの負荷を軽減しつつパフォーマンスの向上を実現
サービスで発生した障害の特定が容易
コンテナ、既存のハードウェア、またはクラウドで実行可能
マイクロサービスアーキテクチャーは、アプリケーション開発の革命的な手法ですが、他のテクノロジーと同じように、マイクロサービスにも長所と短所があります。以下に、アプリケーションのパフォーマンスや設計に影響する可能性のある長所と短所を示します。
長所:
短所
仮想マシンは、実際のコンピュータのように動作する、一般的にイメージと呼ばれるコンピュータファイルであり、簡単に言えば、コンピュータの中にあるコンピュータです。既存のコンピュータの1つのウィンドウで、オペレーティングシステム全体が動作します。マイクロサービスはそれぞれが1つのコンテナであり、これらのコンテナは多くの場合に複数のクラウド仮想マシン(VM)で動作します。ほとんどのクラウドプロバイダーは、VMをIaaS(Infrastructure-as-a-service)サービスの基盤として使用しています。
素晴らしいユースケースをここで紹介します。Ingeniousは、アプリケーション開発におけるファブリックモデルアプローチを紹介する、NGINXが作成した写真共有のデモアプリケーションです。このアプリケーションでは、ユーザーが自分のアカウントにログインして、写真を保存、表示、削除できます。このアプリケーションの最新のニュースやアップデートを参照できるブログも組み込まれています。
このプロジェクトの詳細をGithubで確認する
マイクロサービスリファレンスアーキテクチャー