第4回 Software Architecture: The Hard Parts 読書会@リモート

第4回 Software Architecture: The Hard Parts 読書会 - connpass


参加者トピック

ディスカッション

13. Determine Component Dependencies パターン

コンポーネントの依存関係を、入出力の数から分析する。

  • モノリシックアプリケーションを分解した後のサービス依存関係グラフがどのようになるかを判断することである
  • 重要なのは、このパターンはコンポーネントの依存関係であり、コンポーネント内の個々のクラスの依存関係ではないことである

17. Create Component Domains Pattern

どのドメインに所属するコンポーネントなのか明らかにする。

21. Create Domain Services Pattern

  • 最初にサービスベースのアーキテクチャに移行することで、アーキテクトと開発チームは各ドメインサービスについて詳しく知り、マイクロサービスアーキテクチャ内の小さなサービスに分割すべきか、大きなドメインサービスのまま残すべきかを判断できるようになる
  • まず、すべてのコンポーネントをコンポーネントドメインに整合させ、リファクタリングしてから、それらのコンポーネントドメインをドメインサービスに移行するのがよいでしょう。
  • ユーザーインターフェイス」はサービスにならないの?
    • デプロイできる単位がサービスなんじゃないのかな
  • 「できるかな」の雰囲気で話が進んでいるけど、実際は性能とか安全性とかを気にしながらやっていくことになるのかな
  • 共通部分をどう扱っていくのかが気になる
    • Foundamentals of Software Architecture に書いてある、とかありそう
  • そういえば来月はObservability Conference 2022 by CloudNative Daysがあります

Chapter 6. Pulling Apart Operational Data

Data Disintegrators

  • 変更管理
    • 破壊的な変更に影響を受けるサービスの変更管理は大変
  • 接続管理
    • 接続数を適切に按分するのは大変
  • スケーラビリティ
    • 接続数が頭打ちになると、システムとしてのスループットやキャパシティが低下する
  • フォールトトレランス
  • アーキテクチャ量子

  • 分散アーキテクチャへの移行が完了すると、データアーキテクトという役割はどうなるんだろう

    • 無くなってしまう?
    • めっちゃ仕事が増える印象
      • サービス間の契約設計とか
  • データ管理者と、データアーキテクトの違いとは?
    • データ管理者=ドメインエキスパートに近い。ビジネス上のデータモデルを管理する
    • データアーキテクト=?
      • Data architect - Wikipedia
      • 例えばレポートしやすくするためのデータ構造を設計するとか
      • 物理モデル設計する感じなのかな

Data Integrators

統合させたい動機は弱め。

Sysops Squad Saga: Justifying Database Decomposition

  • read replica追加すれば解決しそうな点について言及してない

モノリシックデータの分解

  • このままやるのは危険なので、現在のデータベースを残したまま、新旧両方に書き込みをするなどの方法が無難

参考情報