⌖ Detail
はじめに
事業の成長にあわせてシステムを育てていくと、一つのまとまりが大きくなりすぎ、変更や改善に時間がかかるという課題に直面することがあります。こうした課題に応えるシステムの作り方のひとつがマイクロサービスです。本記事では、マイクロサービスの意味や、従来の作り方との違い、活用の場面も踏まえながら、実務で押さえておきたいポイントを整理してご紹介します。
マイクロサービスとは?
マイクロサービスとは、一つのシステムを、それぞれが独立して動く小さな部品の集まりとして作り上げる考え方のことをいいます。英語の microservices に由来します。注文の受付、在庫の管理、支払いの処理といった役割ごとに、システムを小さな単位に分け、それらが連携して全体として働く形をとります。
マイクロサービスとよく比べられるのが、モノリシックと呼ばれる従来の作り方です。モノリシックが、システム全体を一つの大きなまとまりとして作るのに対し、マイクロサービスは、機能ごとに分けて作ります。分けることで、ある部分だけを変更したり、作り直したりしやすくなり、全体を止めずに改善を進めやすくなります。
一方で、マイクロサービスには難しさもあります。多くの部品が連携して動くため、全体のつながりを管理する手間が増え、設計や運用には高い技術が求められます。分ければよいというものではなく、事業の規模や変化の速さ、組織の体制を踏まえて選ぶことが大切です。小さく始めて、必要に応じて進めていく姿勢が現実的です。
広告
マイクロサービスがよく使われるシーン
マイクロサービスは、利用者が多く、頻繁に機能の追加や改善が求められるインターネット上のサービスなどで用いられます。多くの人が同時に使う場面や、部分ごとに素早く手を加えたい場面で力を発揮します。
実務では、システムの作り方だけでなく、組織のあり方とあわせて考えることが大切です。機能ごとに分けて開発を進めるには、それぞれを担うチームが、自律して動ける体制が求められます。技術だけを取り入れても、組織の進め方が伴わなければ、その利点は生きにくくなります。また、部品どうしがどのように情報をやり取りするのか、その取り決めを明確にしておくことも欠かせません。つながりの部分があいまいだと、一つの変更が思わぬところに影響し、かえって不具合の原因になりやすくなります。全体のつながりを見渡せる仕組みや、記録を残す工夫が、安定した運用を支える土台となります。人材育成の観点からは、担当する範囲に責任を持ち、他のチームと連携して進める力を育てることが、円滑な運用を支える手がかりとなります。
マイクロサービスを理解することの重要性
マイクロサービスを理解することは、システムの育て方を考えるうえで役立ちます。従来の作り方との違いを踏まえることで、自社の状況に合った選び方を判断しやすくなるためです。
情報システムに携わる立場からは、マイクロサービスを、組織のあり方と結びつけて捉える視点が役立ちます。システムを分ける形は、それを開発するチームの分け方とも深く関わるためです。なお、マイクロサービスは万能ではなく、管理の手間や求められる技術の高さといった負担も伴います。利点と負担の両面を理解したうえで、自社に必要かどうかを見きわめることが大切です。こうした冷静な判断があってはじめて、マイクロサービスはシステムを支える確かな選択となります。
✺ Editor’s Memo
現場での運用は、業界・規模・組織文化によって大きく変わります。記事内のインタビュー事例も併せて参考にしてください。
— SHARE with カイシャの育成論 編集部