分散システムデザインパターン読書メモ1
シングルノードパターン
1つのインスタンスの中でメインのコンテナと他のコンテナを組み合わせるときのデザインパターン
- サイドカーパターン
- メインのコンテナに機能を付与したり、改善したりするためのコンテナを組み合わせる
- 例) gitリポジトリへのpushによって、コードをデプロイする機能を追加するコンテナ
- gitリポジトリを定期的にpullして、アプリケーションのコンテナと共有したパスにgit pullしたコードを反映させる
- アンバサダーパターン
- アダプターパターン
- メインのコンテナのインターフェースを規格化した統一されたものにするためにコンテナを組み合わせる
- 例) 監視用のメトリクスの出力(送信)(prometheus)
- 例) ログデータの出力(fluentd)
- メインのコンテナのログ出力形式は同じとは限らない。ログファイルへの出力だとしてもJSONや、LTSVなどフォーマットは異なる。それを一定のフォーマットに変換した上でログの集約や送信時のバッファリングの機能を追加することを可能にする
分散デザインパターンのマイクロサービスへの活用
パターンを使うことでシステムデザインがしやすくなる。同じパターンを開発者感で共有することでデバッグしやすくなる。 分散デザインパターンを使う・知ることでマイクロサービスにおけるデメリットを補うことができる。
- メリット
- 分割した個々のサービスごとにスケールの方法を選択することができる。
- スコープが狭まることでピザ二枚分の小さな開発チームに保つことができることで、様々なオーバーヘッドを減らすことができる
- デメリット