Monthly Archives: 12月 2016

「マイクロサービスアーキテクチャ」第7回(12/27)

Posted on by 0 comment

参加者 今井(読み手)、沼田、青木(記)
範囲 pp.70-81

4章 統合

  • 4.11 マイクロサービスの世界におけるDRYとコード再利用のリスク
    • 4.11.1 クライアントライブラリ
  • 4.12 参照によるアクセス
  • 4.13 バージョニング
    • 4.13.1 最大限の先送り
      • 「XPathを使って対象フィールドを取り出せます」 Tolerant Reader、http://bit.ly/1yISOdQ では、/customer/firstname ではなく //firstname のようにすべしと言っていますが、/shipping/firstname などのような構造を追加するとうまくいきませんので限界があります。
    • 4.13.2 破壊的変更の早期の把握
    • 4.13.3 セマンティックバージョニングの利用
    • 4.13.4 異なるエンドポイントの共存
      • 「URIを不透明にして」は意味がよく理解できなかったのですが、googleで「URI 不透明」を検索してみると、ヒットしたブログ「Webを支える技術 山本陽平 著 技術評論社」からの引用が書かれていました。

        URIの内部構造を想像して操作したり、クライアント側でURIを構築したりしてはいけません。なぜなら、サーバ側の実装でURIの構造を変更したとたんにシステムが動かなくなってしまう、いわゆる密結合状態になるからです
        このように、URIをクライアント側で組み立てたり、拡張子からリソースの内容を推測したりできないことを、「URIはクライアントにとって不透明(Opaque)である」と言います。

    • 4.13.5 複数のサービスバージョンの同時利用
  • 4.14 ユーザインタフェース
    • 4.14.1 デジタルへ向けて
    • 4.14.2 制約
    • 4.14.3 API合成

「マイクロサービスアーキテクチャ」第6回(12/20)

参加者 青木(読み手)、今井、沼田(記)
範囲 pp.61 – 70

4章 統合

  • 4.7 REST
    • 4.7.2 アプリケーション状態エンジンとしてのハイパーメディア(HATEOAS)(p.61先頭から)
    • 4.7.3 JSONか、XMLか、他の何かか
    • 4.7.4 便利すぎることに注意する
    • 4.7.5 HTTP上のRESTの欠点
  • 4.8 非同期イベントベース連携の実装
    • 4.8.1 技術選択
    • 4.8.2 非同期アーキテクチャの複雑さ
      • p.67 l.20
        Martin Flowler
  • 4.9 状態マシンとしてのサービス
  • 4.10 Rx(Reactive Extentions)
  • 4.11 マイクロサービスの世界におけるDRYとコード再利用のリスク

「マイクロサービスアーキテクチャ」第5回(12/16)

Posted on by 0 comment

参加者 沼田(読み手)、青木、今井(記)
範囲 pp.46-60

4章 統合

  • 4.2 顧客とのインタフェース
  • 4.3 共有データベース
    • p.48 l.2
      「スキーマを変更してデータをさらに適切にデータを表現したり、」
      「データを」がどちらか不要?
  • 4.4 同期と非同期
  • 4.5 オーケストレーションとコレオグラフィ
    • p.52 上方
      図4-4にはイベントブローカーが無く、本文l.4にもサブスクライブ先(イベントブローカー)が書かれていないので、「そのイベントをサブスクライブし、…」がイベントを受け取ることがサブスクライブのように読めてしまう。
  • 4.6 リモートプロシージャコール (RPC)
    • 4.6.1 技術的結合
    • 4.6.2 ローカル呼び出しはリモート呼び出しとは異なる
    • 4.6.3 脆弱性
    • 4.6.4 RPCはひどいか
  • 4.7 REST
    • 4.7.1 RESTとHTTP
      • p.58 下から9行目
        GETとPOSTで回避できるメソッドの話なので、createCustomer, editCustomerではなく、getCustomer, createCustomerの方が良い。
    • 4.7.2 アプリケーション状態エンジンとしてのハイパーメディア (HATEOAS) (p.60末尾まで)

「マイクロサービスアーキテクチャ」第4回(12/13)

参加者 今井(読み手)、沼田(記)
範囲 pp.31 – 46

2章 進化的アーキテクト

  • 2.10 チームの構築
  • 2.11 まとめ

3章 サービスのモデル化方法

  • 3.1 MusicCorpの紹介
  • 3.2 優れたサービスにするには
    • 3.2.1 疎結合
    • 3.2.2 高凝集性
  • 3.3 境界づけられたコンテキスト
    • 3.3.1 共有モデルと隠れモデル
    • 3.3.2 モジュールとサービス
    • 3.3.3 時期尚早な分解
  • 3.4 ビジネス機能
  • 3.5 ずっと下の亀
  • 3.6 ビジネス概念の観点での通信
  • 3.7 技術的境界
  • 3.8 まとめ

4章 統合

  • p.45 l.3
    …全体とは独立して変更やリリースを行うことができます。(衍字)
  • 4.1 理想的な統合技術の探索
    • 4.1.1 破壊的変更を回避する
    • 4.1.2 APIを技術非依存にする
    • 4.1.3 コンシューマにとって単純なサービスにする
    • 4.1.4 内部の実装詳細を隠す

「マイクロサービスアーキテクチャ」第3回(12/9)

Posted on by 0 comment

参加者 青木(読み手)、今井、沼田(記)
範囲 pp.21 – 31

2章 進化的アーキテクト

  • 2.4 原則に基づいたアプローチ
    • 2.4.2 原則
      • l.7 できなければ(衍字)
    • 2.4.3 プラクティス
    • 2.4.4 原則とプラクティスの結合
    • 2.4.5 実世界の例
  • 2.5 必要な標準
    • 2.5.1 監視
    • 2.5.2 インタフェース
    • 2.5.3 アーキテクチャ上の安全性
  • 2.6 コードを介したガバナンス
    • 2.6.1 手本
    • 2.6.2 カスタムのサービステンプレート
  • 2.7 技術的負債
  • 2.8 例外処理
  • 2.9 中央からのガバナンスと指導

「マイクロサービスアーキテクチャ」第2回(12/6)

Posted on by 0 comment

参加者 沼田(読み手)、青木、今井(記)
範囲 pp.6-21

1章 マイクロサービス

  • 1.2 主な利点
    • 1.2.3 スケーリング
    • 1.2.4 デプロイの容易性
    • 1.2.5 組織面の一致
    • 1.2.6 合成可能性
    • 1.2.7 交換可能にするための最適化
  • 1.3 サービス指向アーキテクチャ
  • 1.4 他の分解テクニック
    • 1.4.1 共有ライブラリ
    • 1.4.2 モジュール
      • p.12 下から7行目行末 誤字
        守られことは → 守られことは
  • 1.5 銀の弾丸などない
  • 1.6 まとめ

2章 進化的アーキテクト

  • 2.1 不正確な比較
    • p.16 下から2行目 行末  誤字
      対処するもの同じ物理的規則には → 対処するもの同じ物理的規則には
  • 2.2 進化するアーキテクト像
  • 2.3 区画指定
    • p.19 l.2 中ほど 誤字
      例え場合 → 例え場合
    • p.19 Netflixとは?
      、アメリカ合衆国のオンラインDVDレンタル及び映像ストリーミング配信事業会社。(Ref. https://ja.wikipedia.org/wiki/netflix)
  • 2.4 原則に基づいたアプローチ
    • 2.4.1 戦略的目標

「マイクロサービスアーキテクチャ」第1回(12/2)

Posted on by 0 comment

参加者 今井(読み手)、沼田、青木(記)
範囲 表紙, とびら, pp.v1-xi, pp.1-6

著者紹介
監訳者紹介
訳者紹介
カバーの説明

はじめに

1章 マイクロサービス

  • 1.1 マイクロサービスとは
    • 1.1.1 小さく、かつ1つの役割に専念
    • 1.1.2 自律性
  • 1.2 主な利点
    • 1.2.1 技術異質性
    • 1.2.2 回復性