13回目の Microservices Patterns 読書会のログ

いただいたお菓子達。

JavaEE勉強会の Microservices Patterns 読書会に参加してた。

javaee-study.connpass.com

対象範囲

11. Developing production ready services という章を一巡りしました。

ここまでどういう設計をすればいいか説明してきたけど、本番環境へデプロイできるようにするには説明してないことがある、と。

認証・認可、設定の外部化(Externalized Configuration)、可観測性(Observability)、シャーシパターン(からのマイクロメッシュ)。

livebook.manning.com

議論

11.1 Developing secure services

  • いきなり Spring Security OAuth 2.0 サーバーの使い方を説明する考えが理解できない

    • 他にも高水準なセキュリティリスクの話があるのでは
    • そうしないとソリューションを選択できないと思う
      • クライアントが複数ある、という条件はそういった前提の1つとして理解できる
    • 性能とか運用とかリスクがありすぎてこういう構成を取る考えがない
  • 今どきはどうするのが当たり前なんだろう

    • Auth0 とかクラウドの IdP を使う感じなのかなぁ
    • 開発レベルで留まってるけど Gitlab の認証サービスでまかなってる、という意見もあった
  • メルカリの事例

    • マルチテナントのときはどうしてるんだろう
      • 同一ID でテナントごとにできることが違う(このテナントでは管理者、このテナントでは一般ユーザー)とかそういう
    • ややこしい話をしたけど忘れた
  • Red Hat にもプロダクトがある (KeyCroak の商用版)

  • 外部ドメインと内部ドメインに分ける、ドメインを階層化して防御する考え方もある

  • API ゲートウェイやサービスメッシュの今後

    • どんどん重厚長大化してる感じがする
      • マイクロサービスは小さなデプロイメントを指向しているのに・・・
    • ルーティングはプラットフォームよりもアプリケーションよりの考え方のような印象なのだけど、だけど

11.2. Designing configurable services

  • Spring Framework じゃない Java アプリケーションはどうすればいいんだろう
    • Quarkus なら Eclipse MicroProfile に対応してる
    • MicroProfile には Externalize Cofiguration Server という標準があるのでそれを使える
      • Micronaut や Helidon でもいけるはず

11.3. Designing observable services

  • 可観測性パターンに属するパターン

    • ヘルスチェック API
    • ログアグリゲーション
    • 分散トレーシング
    • 例外追跡
    • アプリケーションメトリクス
    • 監査ログ
  • 「監査ログ」はすっごい悩みどころ

    • 物理的な限界をどう乗り越えたらいいのか

11.3.1. Using the Health check API pattern

  • Spring Boot Actuator とは
    • ヘルスチェックだけでなく、アプリケーションコンテキストに登録された Bean の情報や、 JVM のメモリ情報などの HTTP エンドポイントを提供する便利ライブラリ

11.3.2. Applying the Log aggregation pattern

特になし

11.3.3. Using the Distributed tracing pattern

  • OpenZipkin の付与するヘッダー X-B3 の由来はなんだろう
    • リファレンスに記述がある
      • https://zipkin.io/pages/instrumenting.html
      • The B3 portion of the header is so named for the original name of Zipkin: BigBrotherBird.
  • BigBrotherBird てなんだろう
    • Angry Bird のキャラクターだった
    • https://regularshowfanon.fandom.com/wiki/Big_Brother_Bird
  • 標準としては OpenTelemtry がそろそろ CNCF Incubator になりそう

11.3.4. Applying the Application metrics pattern

特になし

11.3.5. Using the Exception tracking pattern

特になし

11.3.6. Applying the Audit logging pattern

特になし

11.4. DEVELOPING SERVICES USING THE MICROSERVICE CHASSIS PATTERN

次回

2019/02/15(土曜日)になりました。そろそろ読み終わりそう。

javaee-study.connpass.com