この質問は非常に良いですね。多くの立ち上げ期のチームが悩む点です。分かりやすい言葉で例え話をするので、きっと理解できるでしょう。
モノリス型サービスは、小さなレストランを開くようなものです。 あなたはオーナー兼シェフ兼ウェイターです。食材の仕入れ、下ごしらえ、調理、配膳、会計まで、すべてこの小さな店の中で行われます。
- 利点: 開業が早い!一人か数人で店舗を借りれば、すぐに始められます。コミュニケーションコストはゼロで、新しいメニューを追加したければ、自分で考えて翌日には提供できます。管理も非常にシンプルで、この一店舗だけです。
- 欠点: 規模が大きくなると大変です。お客さんが増えすぎると、一人では手が回らなくなります。厨房が狭すぎて、調理器具が足りなくなったり、配膳通路が混雑したりします。厨房を改装しようとすると、店全体を数日間閉めなければならなくなります。
マイクロサービスは、大規模なフードコートを開くようなものです。 あなたは自分で店を出すのではなく、大家として場所を小さな屋台に分けます。麻辣燙(マーラータン)専門の店、タピオカミルクティー専門の店、鉄板焼き専門の店などがあります。各屋台は自分のビジネスを自分で管理します。
- 利点: 専門性!各屋台は自分のことだけを行い、迅速かつ高品質にサービスを提供します。タピオカミルクティーの店が非常に人気が出たら、すぐに隣にもう一つ屋台を追加できますし、他の店のビジネスには影響しません。どの屋台が改装やアップグレードをしても、他の屋台は通常通り営業できます。タピオカミルクティーの店には最新のスマートタピオカマシンを使わせ、鉄板焼きの店には伝統的な鉄板を使わせるなど、技術的な干渉はありません。
- 欠点: 初期投資が莫大!まず、フードコート全体を建設するために多額の費用をかけ、水道、電気、ガスを通し、統一レジの運用方法やゴミ処理方法など、一連の管理規則を確立する必要があります。数十の屋台の店主を調整する必要があるため、管理は非常に複雑で、コストも高くなります。
あなたへのアドバイス:
99%の場合、迷わずまずはモノリス型サービスで始めてください!
スタートアップ企業にとって最も重要なのは「生き残ること」であり、生き残るための鍵は「速さ」です。最速で製品を作り、市場に投入し、誰かが使ってくれるか、お金を払ってくれるかを確認する必要があります。この段階では、ユーザーは数十人、数百人程度かもしれません。モノリス型サービスの「欠点」など、全く問題になりません。
もし最初からマイクロサービスを導入しようとするなら、まだ製品の構想も固まっていないのに、まず100万人を収容できるフードコートを1年かけて建設するようなものです。完成した頃には市場は変化しているか、資金が尽きているでしょう。これは「時期尚早な最適化」と呼ばれ、スタートアップの大きなタブーです。
では、いつマイクロサービスを検討すべきでしょうか?
あなたの「小さなレストラン」が本当に大繁盛して、手が回らなくなった時です:
- チームが大きくなった: 20〜30人のシェフを雇い、一つの厨房にひしめき合って、指示が出せなくなり、お互いに干渉し合うようになった時。この時、「冷菜部門」「温菜部門」「点心部門」のように、いくつかの独立した「サブキッチン」に分けることができます。
- ビジネス規模が大きくなった: 毎日何千何万ものお客さんが来て、調理がボトルネックになり、レストラン全体の効率が低下している時。この時、「調理」という工程を独立させ、コンロを10台追加して、大量の注文に特化して対応できます。
- 特定の機能が非常に複雑になった: 例えば、あなたの「出前注文受付」システムは、要求の変化が非常に速く、毎回修正するたびにレストラン全体を休業させなければならないのは割に合いません。その場合は、その機能を独立させ、専門のチームに保守させることができます。
経験者からの率直な一言でまとめると:
まずはモノリス型サービスでビジネスを立ち上げ、収益を上げ、生き残ってください。モノリス型で開発する際も、コード構造を明確にしておくこと(小さなレストランで厨房、ホール、倉庫を分けるように)に注意すれば、将来本当にマイクロサービスに分割する必要が生じた時でも、改修が容易になります。
遠い将来を考えすぎず、まずは目の前の問題を解決してください。本当にモノリス型では解決できない苦痛に直面した時に、マイクロサービスを検討すれば良いのです。その時には、人材も資金も経験も揃っており、すべてが自然に進むでしょう。