マイクロサービス
(サービスメッシュ から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/07/14 09:57 UTC 版)
マイクロサービス(英語:microservices)とは、ソフトウェア開発の技法の1つであり、1つのアプリケーションを、ビジネス機能に沿った複数の小さいサービスの疎に結合された集合体として構成するサービス指向アーキテクチャ(service-oriented architecture; SOA)の1種である。マイクロサービスアーキテクチャでは、各サービスはきめ細かい粒度を持ち、軽量なプロトコルを用いて通信を行う。
- ^ Chen, Lianping (2018). “Microservices: Architecting for Continuous Delivery and DevOps”. The IEEE International Conference on Software Architecture (ICSA 2018). IEEE
- ^ Richardson. “Microservice architecture pattern” (英語). microservices.io. 2017年3月19日閲覧。
- ^ Chen, Lianping; Ali Babar, Muhammad (2014). “Towards an Evidence-Based Understanding of Emergence of Architecture through Continuous Refactoring in Agile Software Development”. The 11th Working IEEE/IFIP Conference on Software Architecture(WICSA 2014). IEEE. doi:10.1109/WICSA.2014.45
- ^ Balalaie, Armin; Heydarnoori, Abbas; Jamshidi, Pooyan (2016-05). “Microservices Architecture Enables DevOps: Migration to a Cloud-Native Architecture”. IEEE Software 33 (3): 42–52. doi:10.1109/ms.2016.64. ISSN 0740-7459.
- ^ a b c d James Lewis. “Microservices”. martinfowler.com. 2018年12月6日閲覧。
- ^ a b Martin Fowler. “Microservices”. 2018年2月14日時点のオリジナルよりアーカイブ。2018年1月2日閲覧。
- ^ Newman, Sam (2015-02-20). Building Microservices. O'Reilly Media. ISBN 978-1491950357
- ^ Wolff, Eberhard (2016-10-12). Microservices: Flexible Software Architectures. ISBN 978-0134602417
- ^ “Micro-services for performance”. Vanilla Java (2016年3月22日). 2017年3月19日閲覧。
- ^ a b Nadareishvili, I., Mitra, R., McLarty, M., Amundsen, M., Microservice Architecture: Aligning Principles, Practices, and Culture, O’Reilly 2016
- ^ a b Chen, Lianping (2018). “Microservices: Architecting for Continuous Delivery and DevOps”. The IEEE International Conference on Software Architecture (ICSA 2018). IEEE
- ^ “Backends For Frontends Pattern”. Microsoft Azure Cloud Design Patterns. Microsoft. 2018年1月2日閲覧。
- ^ Lucas Krause. Microservices: Patterns and Applications. ASIN B00VJ3NP4A
- ^ The term service mesh is used to describe the network of microservices that make up such applications and the interactions between them. Istio - Docs - What is Istio
- ^ Its requirements can include discovery, load balancing, failure recovery, metrics, and monitoring. Istio - Docs - What is Istio
- ^ A service mesh also often has more complex operational requirements, like A/B testing, canary rollouts, rate limiting, access control, and end-to-end authentication. Istio - Docs - What is Istio
- ^ Envoy is the data plane. Matt Klein (2017). "Service mesh data plane vs. control plane"
- ^ In the following diagram, a sidecar runs alongside each container in your application to provide its proxying logic, syncing each of their unique configurations from the App Mesh control plane. AWS Compute Blog (2019) "Learning AWS App Mesh"
- 1 マイクロサービスとは
- 2 マイクロサービスの概要
- 3 背景
- 4 脚注
サービスメッシュ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/16 07:05 UTC 版)
「マイクロサービス」の記事における「サービスメッシュ」の解説
マイクロサービスを構成するネットワーク基盤をサービスメッシュと呼び、ネットワーク基盤をアプリケーションから隠蔽することでマイクロサービスをより容易に実現しようと試みられている。 サービスメッシュ(Service Mesh)は、アプリケーションを構成するマイクロサービス群からなるネットワークである。マイクロサービス間通信を用いてアプリケーションを構成するには、データ転送の制御と監視が必須である。要件の例としては以下が挙げられる。 サービスディスカバリ 負荷分散 障害復帰 メトリクス 監視 さらにA/Bテストやカナリアデプロイ、レート制限、アクセス制御、認証、カオスエンジニアリングなど様々なネットワーク関連の要件が発生しうる。サービスメッシュに着目した場合、ネットワークに由来するこれらの困難さをアプリケーションから隠蔽するためにプロキシなどの様々な手法が用いられる。 ネットワークの転送部は転送を担うデータプレーン(data plane)と転送制御を決定するコントロールプレーン(control plane)に分離できる(c.f. Software Defined Networking)。アプリケーションからデータプレーンおよびコントロールプレーンを分離することでアプリケーションからサービスメッシュを隠蔽する手法が主流である。 例えばEnvoyはService Meshにおけるデータプレーンプロキシである。Envoyプロキシは各マイクロサービスに同梱され、Envoy間で通信を行うことでサービスメッシュを構成する。マイクロサービスは同梱されるEnvoyプロキシのみを見ているため、サービスAppにとってサービスメッシュは透過的に扱われる(隠蔽されている)。Eovoyデータプレーンが利用する制御情報は別に用意されたコントロールプレーンから提供される(例: humanコントロールプレーンによる静的設定ファイル、Istioによるコントロールプレーンサービス)。 クラウドコンピューティングによるマネージドコントロールプレーンも提供されている。例えばAmazon Web ServicesはAWS App MeshによりEnvoyをデータプレーンとしたマネージドコントロールプレーンを提供している。
※この「サービスメッシュ」の解説は、「マイクロサービス」の解説の一部です。
「サービスメッシュ」を含む「マイクロサービス」の記事については、「マイクロサービス」の概要を参照ください。
- サービスメッシュのページへのリンク