2章移行を計画する

モノリスの分解における細かい技術的な側面に真っすぐ飛び込むのは簡単だ。そして、それが本書の残りの焦点でもある。しかし、その前に、あまり技術的ではないいくつかの課題を探る必要がある。移行をどこから始めるべきか? 変化をどのように管理すべきか? どのようにして他の人を旅に連れて行くのか? そして、早い段階で問われるべき重要な質問はこうだ。そもそもマイクロサービスを用いるべきなのだろうか?

2.1 目的を理解する

マイクロサービスは目的ではない。マイクロサービスを手にすることが「勝利」ではないのだ。マイクロサービスアーキテクチャを採用することは、合理的な意思決定に基づいた意識的な判断であるべきだ。マイクロサービスアーキテクチャへの移行は、既存のシステムアーキテクチャのままでは達成できないことを実現するために考えるべきだ。

何を達成しようとしているかを把握せずに、どの選択肢を取るべきかの意思決定プロセスを、どうやって方向付けるのだろうか? どこに時間を集中するのか、どのように優先順位をつけるのかは、マイクロサービス化で達成しようとしていることによって大きく変わってくるはずだ。

目的を理解していないと、選択のプレッシャーから情報の分析に時間をかけ過ぎて、判断を下せない状態に陥ってしまったり、あるいは、「マイクロサービスがNetflixにとって良いものなら、自分たちにとっても良いもののはずだ!」と思い込んで、カーゴカルト†1的なメンタリティに陥ってしまう危険性もある。

[†1] 訳注:積荷信仰ともいう。本質を理解せず表層のみを模倣する人々や行為を指す。

よくある失敗

数年前、あるカンファレンスでマイクロサービスのワークショップを開催していた時のことだ。どの研修でもそうだが、私は参加者がなぜそこにいるのか、そして何を持ち帰りたいかということを知るのが好きだ。その研修では何名かが同じ会社から参加していたため、私はその理由を知りたいと思った。そのうちの1人に「あなた方がワークショップに参加した理由は何ですか? なぜマイクロサービスを使うことに興味があるのでしょう?」と尋ねてみた。すると、彼はこう答えた。「わかりません。上司が参加しろと言ったので」 興味をそそられた私はさらに訊いてみた。「上司がここにあなたを送り込んだ理由に何か心当たりはありませんか?」 すると、こういう答えが返ってきた。「そうですね、彼に直接訊いてみたらどうでしょう。彼は私たちの後ろに座っていますよ」 私は質問する相手を上司に変えて、同じ質問をした。「それで、なぜマイクロサービスを使用するのでしょう?」 上司はこう答えた。「うちのCTOがマイクロサービスをやると言ったので、それが何なのかを知るべきだと思ってここに来ました」 ...

Get モノリスからマイクロサービスへ ―モノリスを進化させる実践移行ガイド now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.