マイクロサービス
リンク
概要
ビジネスドメインを中心にモデル化された、独立してリリース可能なサービス
サービスと呼ばれる独立して開発されたソフトウェアコンポーネントを、組み合わせて1つのアプリケーションを構成する
サービス指向アーキテクチャの一種
独立してデプロイ出来ることが重要
分割単位
マイクロという言葉から小さいをイメージしてしまうが、そうでは無く、柔軟な開発や運用がしやすい粒度になる
大きくても、小さくても良い。本質はそこではない
適切な粒度は、やってみないと分からない。やってみて初めて分かることも多い
まずは、大きく始めてみるのが良さそう
DDD的な
ドメイン、境界づけられたコンテキスト
Decompose by business capability
Decompose by subdomain
Self-contained Service
Service per teamnew
Strangler Application
Anti-corruption layer
サービス間の連携
REST
メッセージング
マイクロサービス データ管理
分散データベースが推奨される。
各サービスでそれぞれDBを持っている。
分散トランザクションはしない
データ管理で求められる課題
データの同期
データベースの配置モデル
データのアグリゲーション
パターン
Transactional outbox
Transaction log tailing
Polling publisher
テスト
Consumer-driven contract test
Consumer-side contract test
Service component sest
デプロイメント
Multiple service instances per host
Service instance per host
Service instance per VM
Service instance per Container
Serverless deployment
Service deployment platform
Cross cutting concerns
Microservice chassis
Externalized configuration
Service Template
通信スタイル
Remote Procedure Invocation
Messaging
Domain-specific protocol
Idempotent Consumer
API gateway
Backend for front-end
Client-side discovery
Server-side discovery
Service registry
Self registration
3rd party registration
Reliability
Circuit Breaker
Secutiry
Access Token
Log aggregation
Application metrics
Audit logging
Distributed tracing
Exception tracking
Health check API
Log deployments and changes
UIパターン
Server-side page fragment composition
Client-side UI composition