SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2022 レポート(AD)

初公開! 楽天市場を支えるシステムの舞台裏【デブサミ2022】

【18-C-8】日本のインフラに近くなったサービスの裏側

  • このエントリーをはてなブックマークに追加

 「楽天市場」といえば、日本最大のネット通販サイトだ。ネット通販が広く普及した現在、日本人の生活を支える「止めてはいけない」サービスとなっている。そのサービスを支えるシステムがどのようになっているのか、興味があるというデベロッパーも多いだろう。「これまでの楽天は、中でやっていることを積極的に公開してきてきた方ではない」と語るのは、楽天グループ株式会社でコマースカンパニーCTOを務める星野俊介氏だ。その星野氏が初公開の情報も含め、楽天市場を支えるシステムの全体像や、運用の苦労、将来像などを披露した。

  • このエントリーをはてなブックマークに追加

楽天グループ株式会社 コマースカンパニーCTO 星野俊介氏

楽天グループ株式会社 コマースカンパニーCTO 星野俊介氏

1~2秒止まるだけで数百万円の損失が発生する

 システムの話に入る前に星野氏は、現在の楽天市場がどれほどの規模に成長しているのかを簡単に紹介した。楽天ID発行数は1億以上、商品登録数は3.6億点以上、国内EC流通総額は5兆円突破(2021年)。この数字を聞くだけで、絶対に止めてはいけないシステムになっていると感じられる方も多いだろう。実際、「1~2秒止まるだけでも損失が発生する。ユーザーだけでなく出店している店舗にも迷惑をかけてしまう」(星野氏)というくらい、停止させたときの損失が大きくなっている。

 その「絶対に止めてはいけないシステム」の全体像として、星野氏はサービス構成図を披露した。サブシステムの名前や機能は消してあるが、サブシステム間の関係などは本物だ。そして、サービス構成図を公開するのはこれが初めてだという。

楽天市場のサービス構成図
楽天市場のサービス構成図

 図を見ると、数十のサブシステムが連携しながら動いていることが分かる。個々のサブシステムは、数十~数百、大きいものでは千台規模のサーバーで動かしているという。そして、「サブシステム1つで、スタートアップ1社の企業システムくらいの規模」になっている。

 星野氏は図を見ながら、大部分が疎結合のシステムにできていると語るが、個々のサブシステムを見ていくと「まだモノリシックな部分や、分かりにくい部分が残っている」とも評する。「しっかりと疎結合ができていてコントローラブルな形で小さくなっているべきだが、きちんと設計して作っていくのが非常に難しい」。

 楽天市場の開設は1997年。今年で開設25周年となる。成長に合わせるようにシステムを書き換え続けているが絶対に止めてはいけないシステムになっている以上、一度にシステム全体を刷新するというわけにはいかないのだろう。

 それでも楽天市場のシステムは、少しずつあるべき姿に向かって変化しているという。とはいえ、古い設計のサブシステムを一気に変えることはできない。古いサブシステムを一つひとつ新しいものに変えていっているそうだ。昨年も、大きなサブシステムを1つ書き換えるプロジェクトを完了させたという。

 星野氏は、サブシステムの書き換えには2つの挑戦があるという。1つ目は、移行を前提にしながらもいつでも戻せる状態を作っておくことだ。「新しく作るときは、常に古い方も意識して進めなければならない、データも新しいサブシステムと古いサブシステムの間で常に同期ができているという状態を作っておかなければならない」。

 実際、昨年に完了したプロジェクトでは、開発したソフトウェアのうち半分以上が新旧の同期を取るものや、互換性を保つためのものだったという。「サービスを止めずに継続しながら、サブシステムを置き換えていくには、常に戻せる状態を作っておくことが欠かせない」と星野氏は語る。移行をうまく進められないと判断したときは、すべてを古い状態に戻すと決断することもあるそうだ。

 2つ目の挑戦は、プロジェクトに関わるメンバー全員に仕様を正しく理解してもらって、正しく実装してもらうことだ。昨年の移行プロジェクトでは、50件以上のドキュメントを作成し、そのドキュメントを、プロジェクトに関わる各チームが正しく理解できるようにサポートしながら、進捗を確認し、同期を取りながら進めていったという。

 さらに星野氏は「プロジェクトが大きくなっていくと、仕様、アーキテクチャ、それを作るアーキテクト、プロジェクトマネジメント、開発全体のチームの総合力、全体のチームマネジメント、このようなものが問われる。ソフトウェアを書くだけでは、なかなか成功しない。本当に総力戦だ」と付け加える。

次のページ
セール開始時は通常の50倍のアクセスが集中する

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Developers Summit 2022 レポート連載記事一覧

もっと読む

この記事の著者

笹田 仁(ササダ ヒトシ)

 フリーランスのライター、編集者。IT、特にソフトウェア開発の話が好きです。 趣味はドラムを叩くこと。コロナ騒ぎでリハーサルスタジオに入りにくくなり、ちょこちょこと楽器を買うことでストレスを解消していたら、いつの間にか置き場所に困るほどになってしまいました。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/15718 2022/05/31 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング