マイクロサービスパターン を読み始めました / Chapter01 モノシリック地獄からの脱出
モノシリックなアプリケーションをどのような方法で分割、周りを巻き込んでいくか。
また、本当に分割すべきなのか?を学ぶため、
マイクロパターンサービスを読み始めました。
マイクロサービスパターン[実践的システムデザインのためのコード解説] impress top gearシリーズ
- 作者:Chris Richardson,長尾高弘,樽澤広亨
- 発売日: 2020/03/23
- メディア: Kindle版
全ページで500ページ超と、読み切るのは先になりそうなため、
読了して気になった章・部分を書き留めていこうと思います。
目次
- 本書について
- 1.1 ゆっくりとした足取りによるモノシリック地獄への転落
- 1.2 本書がみなさんにとって意味を持つ理由
- 1.3 本書で学べること
- 1.4 マイクロサービスアーキテクチャで状況打開
- 1.5 マイクロサービスアーキテクチャの利点と欠点
- 1.6 マイクロサービスアーキテクチャのパターン言語
- 1.7 マイクロサービスを越えて: プロセスと組織
- 1.8 まとめ
概要
冒頭「本書について」では、ロードマップを示してくれています。
ざっくりかいつまむと、
- モノシリックアプリケーションの事例と症状の説明
- マイクロサービスパターンとは何か?
- マイクロサービスにおけるパターンの紹介と深掘り
- デプロイやサービスメッシュ
- モノシリックアプリケーションにマイクロサービスパターンを段階的に適用していく方法の紹介
というような流れで、13章構成となっているようです。
また、本書のマイクロサービスアーキテクチャの定義は、以下の本が源流となっているとのことです。
気になったところ
X,Y,Z軸スケーリング
スケールキューブ(The Scale Cube)という概念の紹介がありました。
前職では、AWSのElasticBeanstalkで最小・最大インスタンスを指定し、スケーリングをさせていたのですが、それがスケールキューブでいうX軸スケーリングに当てはまることがわかりました。
ただ、Z軸スケーリング(リクエストをルーティングさせて、使用するアプリケーションインスタンスを制定する)の方法はあまり見たことがなく、事例とかあったらどのように実現しているか、とても見てみたい...。
実際にZ軸スケーリングしようとすると、ルーティングが複雑になるってことかな(APIGatewayみたいので特定のパターンの場合、特定のエンドポイントに振り分ける的な感じになる?)
— ざき@どんどんドーナツどーんと行こう (@zucky_zakizaki) 2020年8月9日
パイプ・サイクル
本書では、マイクロサービスアーキテクチャが万能薬ではないことを説明してくれています。
その説明の中で、ハイプ・サイクルという理論が紹介されていました。
新しい技術が出てくると、
- この技術すげー、銀の弾丸だ!
- あれ、すごいけど実践ではほとんどうまくいかなくね...(成功することもあるけど)
- もうこの技術はダメぽ
- ダメなわけではなくて、適切な使い方ができていないだけだ
- この技術はこう使用すべき、これ以外は別の技術採用を考えた方がいい
のような傾向になるのが多い印象です。
このような技術(テクノロジ)のライフサイクルをハイプ・サイクルと呼ぶそうです。
新しいことを目の当たりしたり、覚えたりすると、それを実行・実践したくなる気持ちになります。気持ちの高ぶりを抑えて、本当に有効かということを観点において、議論してくことが大切だと、ハイプ・サイクルを見て感じました。
トランジション・マネジメント
1.7 マイクロサービスを越えて:プロセスと組織では、マイクロサービスアーキテクチャを適用するには、システムだけでなくチーム・人の感情にも目を向けるべきという話がありました。
モノシリックアプリケーションにマイクロサービスアーキテクチャを適用しようとすると、当然、適用するための知識やマインドをみんなが身につけていく必要があります。
ただ、新しいことを身につけ、確立するまでには混乱・葛藤、苦戦することもあります。
その感情や反応をマネジメントする方法として、トランジション・マネジメントが紹介されていました。
トランジション マネジメント ──組織の転機を活かすために (フェニックスシリーズ)
- 作者:ウィリアム・ブリッジズ,スーザン・ブリッジズ
- 発売日: 2017/11/12
- メディア: 単行本(ソフトカバー)
このマネジメントは開発だけでなく、チームビルディングや、新しいことを始める自分自身を引き上げるための方法としても、利用できそうに感じました。
ページ数も200ページ未満のようなので、折を見て読み進めたいと思います。
おわり
単に技術を語るだけでなく、モノシリック・マイクロサービスアーキテクチャのそれぞれの利点。また、チーム開発をする上で必要なことも含めて書かれており、2章以降を読む意欲が上がりました。
また、13章では、本書内で登場するモノシリックアプリケーションにマイクロサービスアーキテクチャを段階的に適用する方法も書かれています。この13章が一番読みたい章のため、理解するための前提知識を辞書引きしながら、かいつまんで読み進めたいと思います。
(あー、本書を読んだ人たちの感想や解釈を見てみたい...)