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

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


参加者トピック

ディスカッション

Chapter 6: Selecting a Database Type

  • 適切な選択のための基準
    • 学習曲線
    • データモデリングの容易性
    • スケーラビリティ・スループット
    • 可用性・分断耐性(partitino tolerance)
    • 一貫性
    • プログラミング言語のサポート、成熟度、SQLサポート、コミュニティ
    • read/writeの優先順位
    • (書いてない)運用特性
    • (書いてない)コスト
  • GCP全然出てこない
  • NewSQLの評価厳しすぎない?
    • 悪いところがないのがいいところ、という見方ができそう
    • TiDBとか使い勝手が違うんですか?
      • 一見するとRDBなんだけど、分散してるのでクエリの実行特性が変わってくる
  • AWS Neptune は Neo4J の機能限定版みたいな感じ

Chapter 6: Sysops Squad Saga: Polyglot Databases

  • 何が大変なのかわからなかったので納得しにくい
  • 例えば DynamoDB は後からインデックスを変更できない(再作成になる)制限があったりするので、自由度が下がる場合もある

Chapter 7: Service Granularity

  • サービスの粒度を正しくするための鍵は、意見や直感を除いて、グラニュラリティディスインテグレータやインテグレータを使ってトレードオフを客観的に分析して、サービスを分解するかどうかの確かな正当性を形づくること
  • モジュール性
    • 標準化された単位や寸法、いろいろな使い方ができる
    • この本では:システムを個別のパーツに分割することに関係する
  • 粒度
    • 大きな単位を形成する粒子の1つ
    • この本では:個別のパーツの大きさ
  • 粒度はサービスが何を行うかによって定義される
  • 粒度を決めるメトリクス
  • サービスの適切な粒度レベルを達成する秘訣は、この2つの対立する力の間で均衡を保つことです。

Chapter 7: Granularity Disintegrators

  • スコープと機能
    • 結合度
    • 規模
  • 変更可能性(Code Volatility)
    • 変更頻度
  • スケーラビリティとスループット
  • 耐障害性
    • 平均故障時間(MTTF)
    • 平均起動時間(MTTS)
  • セキュリティ
    • 権限最小の原則
  • 拡張性(Extensibility)

    • 機能やバリエーションの追加予定とか
  • 単一責任の原則は、スコープがクラスからモジュールやサービスへ拡張されている

Chapter 7: Granularity Integrators

  • データベーストランザクション
    • 一貫性
  • オーケストレーション(ワークフローとコレオグラフィ)
    • フォールトトレランス
    • 性能(レイテンシ)
    • 信頼性
  • ソースコードの共有
    • Specific shared domain functionality
    • Frequent shared code changes
    • Defects that cannot be versioned
  • データの依存関係

  • 性能を上げるために統合しましょう、というのは現実的にあることなのか

    • 統合とは別の方針を探ることのほうが多いと思う

Chapter 7: Finding the Right Balance

  • who is プロジェクトスポンサー
    • 役員とか?
    • The project sponsor is a person or group who owns the project and provides resources and support for the project, program or portfolio in order to enable its success.
      • プロジェクトの予算を管理してる人のはず

Chapter 7: Sysops Squad Saga: Ticket Assignment Granularity

Chapter 7: Sysops Squad Saga: Customer Registration Granularity

参考情報