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

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

syobochim
January 30, 2017

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

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