O’REILLY Learning「マイクロサービスアーキテクチャ 第2版」3〜5

https://learning.oreilly.com/library/view/maikurosabisuakitekutiya-di-2ban/9784814400010/

3章 モノリスの分割

マイクロサービスは、目標ではありません。マイクロサービスを持っているからといって、「勝利」したわけではない。

既存のモノリシックシステムを分割すべきだと判断した場合、モノリスを少しずつ崩し、少しずつ抽出することを、強く勧める。

Codescene
https://codescene.com/
静的解析ツール

マイクロサービスに分割する機能を判断する際には、抽出の容易さ、マイクロサービスに抽出する利点という、2つの要因のバランスを取る。

コードファースト
データファースト

便利な分解パターン
・ストラングラーフィグパターン
・並列実行
・機能トグル

4章 マイクロサービスの通信スタイル

同期ブロッキング
 リクエスト/レスポンス
非同期非ブロッキング
 リクエスト/レスポンス
 イベント駆動
 共通データ

5章 マイクロサービスの通信の実装

リモートプロシージャコール(RPC)
 gRPC
REST
GraphQL
メッセージブローカー
 RabbitMQ
 ActiveMQ
 Kafka

Richardson Maturity Model
https://martinfowler.com/articles/richardsonMaturityModel.html
RESTのさまざまなスタイルを比較している

クライアント、サーバ間の結合を避けるのに役立つ別の原則
「アプリケーション状態エンジンとしてのハイパーメディア」(Hypermedia as the Engine of Application State)(HATEOAS)

GraphQL:https://graphql.org

BFF(Backend For Frontend)

AsyncAPI:https://www.asyncapi.com
イベント駆動型アーキテクチャを簡単に構築し、維持するためのオープンソースツールです。
すべて、非同期APIを定義するための業界標準であるAsyncAPI仕様によって提供されます。

CloudEvents:https://cloudevents.io
イベントデータを共通の方法で記述するための仕様書

memoO'REILLY Learning

Posted by shi-n