第4回 Software Architecture: The Hard Parts 読書会 - connpass
- JavaEE勉強会の読書会
- 開催場所はDiscordのjavaee-study-jp
- Neal Ford, Mark Richards, Pramod Sadalage, Zhamak Dehghani さんの Software Architecture: The Hard Parts [Book] を読んでます
- 今回は
Chapter 5: Determine Component Dependencies Pattern
から - 次回は 2022-02-12(土)です。
- 次回は
Chapter 6: Selecting a Database Type
から - 第5回 Software Architecture: The Hard Parts 読書会 - connpass
- 次回は
参加者トピック
- 実はJavaEE勉強会の翌週に実践TLA+もくもく会やっています
- 忘れすぎてときどきふりだしに戻ったりしている、緩い集まりです
- ソースコード検索ツールを吟味してる
- 外の音も音楽も同時に聞きたい 【Shokz】骨伝導イヤホンを再定義する OpenRun Pro より深みのある低音再生実現、20%小型化、最大10時間OK、5分の急速充電、専用アプリ登場。 | FOCAL GADGET
- 社内勉強会で普段やってるモブプロの話をした
- 技術負債の解消は性に合っている気がする
- ここ数日朝にブレーカーが落ちるようになって困ってる
- 趣味で Cloud Native Buildpack 作り始めました
- 初の小売業界で、毎日震えてる
- Powerful Command-Line Applications in Go Powerful Command-Line Applications in Go: Build Fast and Maintainable Tools by Ricardo Gerardi https://learning.oreilly.com/library/view/powerful-command-line-applications/9781680509311/
ディスカッション
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追加すれば解決しそうな点について言及してない
モノリシックデータの分解
- このままやるのは危険なので、現在のデータベースを残したまま、新旧両方に書き込みをするなどの方法が無難