ヨドバシの中の人が初めて語る、ヨドバシ.comを支える内製プライベートクラウドの中身
ヨドバシカメラが運営する国内の代表的なECサイトの1つである「ヨドバシ.com」は、同社が内製するプライベートクラウドによって支えられています。
そのプライベートクラウドはどのように作られ、どのような機能を備えているのかについて、クリエーションラインが主催し10月14日に開催されたオンラインイベント「Actionable Insights Day 2022」でその内幕がはじめて語られました。
この記事では、その内容をダイジェストで紹介します。
はじめて語られるヨドバシ.com を支えるプライベートクラウドの全容
株式会社ヨドバシリテイルデザイン サービスデプロイメント事業部 事業部長 戸田宏司氏。
ヨドバシリテイルデザインの戸田と申します。よろしくお願いいたします。「はじめて語られるヨドバシ.comを支えるプライベートクラウドの全容」というタイトルでお話をさせていただきます。
弊社は「いつもご利用ありがとうございます」といったことを直接お客様にお伝えしたいと、こう考えております。
システムも配送も同じ考えで、直接お客様から注文を受け取り、直接お客様のところにお持ちしたいと、全て自前でやっていきたいという思いがございます。
2016年にプライベートクラウドの構築を開始、2017年に稼働開始
ヨドバシカメラのシステムは1985年にPOSを導入しております。今の時代からすると当たり前のものですが、システムと連動してお客様に喜んでいただける仕組みを作る、という歴史はここからスタートしております。
その後、ポイントカードを導入いたします。
ちょっと自慢になってしまいますが、ポイントカード、後のゴールドポイントカードは、現在ではどこでも当たり前の仕組みですが、導入したのは全ての業界の中で実はヨドバシカメラが一番最初となっております。
1998年にECサイトを開設し、その後、サイトのマルチリージョン化や、配達サービスとつないで東京23区内には無料で当日お届けするサービスも2010年からやっております。これはエリアを拡大して主な大都市でも展開するようになっております。
2013年には、ECサイトで注文いただいた商品を近くの店舗で受け取っていただくサービスも開始し、2015年には電子書籍サービスも開始いたしました。
面白い取り組みといたしまして「ヨドバシフリーWi-Fi」があります。店舗の中にフリーWi-Fiのサービスを設けて、店内で商品を撮影してSNSへ自由に投稿してください。他店との比較もその場でしていただいて結構です。と、お客様に寄り添ってお客様の視点でお買い物を楽しんでいただけるように、そうした取り組みもやっております。
そしていよいよなんですけれども2016年にプライベートクラウドの構築を開始しまして、1年後に稼働を開始しております。
近年はサービスをたくさんリリースしていきたいという思いが強くなって、その度に新しいハードウェアを調達して組み立てて、ということでは間に合いません。そのため、サービスをすぐにデプロイし、リリースできるプライベートクラウドの環境を整えたことになります。
このスライドは文字だけだとちょっと寂しいので、右下にヨドバシくん靴下をあしらっております。ヨドバシ.comでご購入いただけます。
データベース、メッセージキューなどが最初のサービス
弊社のプライベートクラウドにおきましても「責任共有モデル」を採用しており、クラウド基盤の提供者と開発者の責任を分けております。今見ていただいているのは教科書通りの責任共有モデルになっております。
実は弊社では、教科書通りの責任共有モデルにさらにプラスして、黄色の部分、アクセスポリシーやデータの保全、そういったところも基盤提供者の責任範囲として分担をしております。
ここからは弊社のプライベートクラウドに関してIaaSとPaaS、コンテナ、モニタリング、プロビジョニング、CI/CDについてそれぞれ紹介をさせていただこうと思います。
2017年にはIaaSに相当するものが稼働し始めました。そのIaaSの上にPaaSを構築しております。
先にPaaSの部分をご紹介しますと、PaaSで最初に開発されたのはリレーショナルデータベースのサービスです。同時にMessage Queue、メモリのキャッシュサービスもリリースしました。
その後アプリケーションサーバー PaaS、そしてWebサーバーもリリースしました。
開発者の方はお分かりだと思いますがアプリケーションサーバーとデータベースとWebサーバー、この3つがあればサービスが開始できるようになります。そこで、この段階から徐々にプライベートクラウド上でサービスをリリースし始めました。
2019年、2020年にはオブジェクトストレージ、そしてサーチエンジン、データストリーミングのサービス提供も開始しました。分散データベースとドキュメントデータベース、グラフデータベースも別途作り進めておりました。
そして一番最後にAPIゲートウェイも提供して、お客様にすぐに使っていただける環境を整えております。
IaaSではOSの選択肢を提供せず、PaaSは14種類のサービス
次はIaaSの部分です。
利用者はフレーバーと呼ばれるコア数、メモリ、ボリュームを指定して利用することになっております。
OSの選択肢はてあえて設けていません。これは運用チームが我々とは別におりまして、その運用チームが円滑に運用していける、つまりはお客様に安定したサービスを提供していくことを第一に考えると、あまり多くの選択肢を設けない方がいいと考えたからです。
そのことでセキュリティパッチの適用や監視対象のメトリクス、運用チーム内での運用ノウハウの蓄積や共有が迅速に行えるようになっています。
その上のPaaSには大変力を入れています。お客様への安定したサービス提供を念頭におきまして、マネージドサービスでクラスター構成による冗長化をしていますし、モニタリング、アラート通知、データセンター間の同期、定期的なバックアップなども全てマネージドサービスでやっております。
現在は14種類のサービスをPaaSで提供しています。
2018年にKubernetesの採用を決定
弊社もコンテナへの取り組みを続けておりまして、2018年にDC/OSとKubernetesの比較評価を行いました。そしてKubernetesの方がこの先利用者が多そうだということもあって、Kubernetesの採用を決めました。
2020年頃からは5カ月単位でバージョンアップを繰り返しておりますが、同じ環境上でのバージョンアップではなく、新しいバージョン用のクラスタを用意して、複数クラスタが常に稼働し続けるという環境を作っております。
このバージョンアップの過程でハードウェアの構成の見直し、ネットワークの見直し、監視の見直しなどを行い、現在は実用段階に入っております。
マイクロサービス化も進めているところ
現在モノリシックなところからマイクロサービス化を進めておりまして、現時点でも50以上のシステムと200以上のマイクロサービスが弊社のプライベートクラウドで稼働中です。
CI/CDも開発者が使えるように、2019年にバージョン管理を作りまして、その後Issue管理、CI管理、APIの設計基盤も用意しました。
これから先、プライベートクラウドでやりたいことはたくさんあります。FaaSも作りたい、サービスメッシュも導入したいなどいろいろありますが、こういったことをこの後も続けていく、といったことを考えております。
ヨドバシカメラでならクラウドが設計できる、相当な規模で
最後になりますが、クラウドを使うことはあっても、クラウド自体を設計して構築するということはあまり経験できないと思います。ヨドバシカメラにいれば、実はそれができます。それも相当な規模で実現できます。
大きなシステムを作っていると、自分が一体何を作っているのか分からない、といった経験があるかもしれません。ヨドバシカメラではすぐにお客様にご活用いただけるサービスを提供し、自分のやっていることのフィードバックをすぐに感じ取ることができます。
これからクラウドの設計もそうですし、クラウドを使ったアプリケーション開発サービス開発の仲間を増やしていきたいと思っておりますので、ぜひよろしくお願いいたします。
(追記:2022/11/18)動画が公開されました。
ヨドバシAPIも開発を進めている
この講演の一年後、同社はヨドバシAPIの開発を進めていることも明らかにしました。
あわせて読みたい
MySQL互換の分散DB「TiDB Cloud」がサーバレスに対応、「TiDB Cloud Serverless Tier」プレビューを提供開始
≪前の記事
グローバルのクラウドインフラ市場シェア、Google Cloudが拡大傾向、AWSとAzureの1位2位は盤石。2022年第3四半期、Synergy ResearchとCanalysの調査結果