まだまだ正月気分が続きますが、O'Reillyのマイクロサービスアーキテクチャ本感想の第4回です。
4章「統合」を読んでの続き
バージョニングについて
この節ではマイクロサービスにおけるバージョニングについて説明があります。マイクロサービスの内部としては分かりやすいバージョニングをしつつ、外部のマイクロサービスへはバージョンを意識させないことが大事とあります。(いつから新バージョンになったと錯覚していた!!)
- セマンティックバージョニングを利用した"分かりやすい"バージョニング方法
- x.y.zのxはメージャーバージョンを意味し、破壊的な変更を伴う
- x.y.zのyはマイナーバージョンを意味し、機能追加だが互換性あり
- x.y.zのzは不具合修正
- (この辺はdockerみたいな日付(年)を採用するところもあるので考え方次第かも)
- 破壊を伴うバージョンアップを行うためのエンドポイントの共存について
ユーザインタフェースについて
PCだけでなく、スマホ、タブレット、スマートウォッチなどデバイスが多様化している現在でのUIの構成ポイントが語られます。
- 様々なデバイスが存在し、それぞれの制約がある
- ブラウザ、解像度
- モバイルの場合通信は最低限であるべき
- SMSを利用するケースも多い
- 今後新たなデバイスが出てくる可能性も高い(VRやARもありますしね)
- API合成は各マイクロサービスが提供するAPIを組み合わせてUIを作る手法
- UI部品合成はマイクロサービスで小さな画面部品(UI)まで作成し、それを各デバイス向けに組み合わせる手法
- メリット
- マイクロサービスチームがUI部品の変更まで担当可能
- デメリット
- 各UIの一貫性をどうやって保つか問題(担当チームの趣味がでるかも)
- HTTPだけじゃなくてネイティブアプリの場合どうにもならない問題
- メリット
- BFF(Backend For Frontend)は、フロントエンド(PCブラウザ、ネイティブアプリ、管理者向け画面)などの各フロントエンドごとにAPIコール用のバックエンドを設ける手法
- ベストな方法は各自探すこと
- 大事なのは凝集性を維持すること
サードパーティソフトウェアとの統合
SaaSやCMS、CRMなどのサードパーティとの付き合い方についての解説。便利かつ多機能であるが故に、気が付くと沼のように沈み込んでしまう危険性がありますよという話。
4章の感想
4章は分割したマイクロサービスをいかに統合して顧客サービスとして展開していくかを学ぶことができました。分割したそれぞれのマイクロサービスをどのように連携させ、UIをどう構成し、サードパーティとどのように連携するのか、実業務への落とし込みを考えるとタスクの洗い出しだけでも大変に違いありません。
もっとも衝撃的だったのは共有データベースがマイクロサービスとしては悪手であるということで、目からうろこでした。うすうす感じてはいた「とりあえずデータストアといえばRDBでしょ、という時代では無い」ことを言葉として認識できました。
サービス間連携についてはRPCとRESTについて多くの用語や概念を学べました。リチャードソン成熟度モデルやらHATEOASとかRxとか聞いたことがある程度でしたので、著者が進める文献へのリンクなどが載せられているところは親切で助かります。