Upgrade to Pro — share decks privately, control downloads, hide ads and more …

第三回マイクロサービスアーキテクチャ読書会(後半)

Avatar for syobochim syobochim
January 30, 2017

 第三回マイクロサービスアーキテクチャ読書会(後半)

Avatar for syobochim

syobochim

January 30, 2017
Tweet

More Decks by syobochim

Other Decks in Technology

Transcript

  1. ポステルの法則を理解して耐性のあるリーダー (Tolerant Readers)をつかって破壊的変更を避け、 バージョンが必要ないようにします 4.13.1 最大限の見送り メールサービス「メール送信にtelephoneNumberって使って ないよね?消します。」 「えっ」➡ クラス修正が必要

    (telephoneNumberを消すことがコンシューマの破壊的変更 になっちゃう。) public class Customer {
 public String firstName;
 public String lastName;
 public String email;
 public String telephoneNumber;
 }
  2. ポステルの法則を理解して耐性のあるリーダー (Tolerant Readers)をつかって破壊的変更を避け、 バージョンが必要ないようにします 4.13.1 最大限の見送り メールサービス「項目増えてきたから階層構造にしてみた わー。」 「えっ」 ➡

    クラス修正が必要 (項目名は変わってないのに。。。) public class Customer {
 public Naming naming;
 public String email;
 } public class Naming {
 public String firstName;
 public String lastName;
 … }
  3. ポステルの法則を理解して耐性のあるリーダー (Tolerant Readers)をつかって破壊的変更を避け、 バージョンが必要ないようにします 4.13.5 複数のサービスバージョンの同時使用 サービス内の内部のバグを修正する必要があると 2つを直さなくちゃいけなくて大変 振る舞いをミドルウェアのどこかか 一連のnginxスクリプトに

    配置しなければいけなくなるので システムの振る舞いを検証するのが大変 データが旧バージョンと新バージョンの どちらで作られたものかがわからない コードベースを 分岐させるのはやめよう。 (http://12factor.net/ja/)
  4. ポステルの法則を理解して耐性のあるリーダー (Tolerant Readers)をつかって破壊的変更を避け、 バージョンが必要ないようにします 4.13.4 と 4.13.5を比べてみよう 4.13.4 エンドポイントは 複数のバージョンに対応しているが、

    裏のロジックは1つ。 古いバージョンのリクエストを受け取ったエンド ポイントは、新しいバージョンの形式に変換して から裏のロジックに流す。