2024.10.21
お互い疑心暗鬼になりがちな、経営企画と事業部の壁 組織に「分断」が生まれる要因と打開策
出前館のサーバーサイド開発(全1記事)
提供:LINE株式会社
リンクをコピー
記事をブックマーク
吉川英興氏:出前館のサーバーサイド開発について紹介いたします。私は吉川英興と申します。2010年に入社して、2020年から出前館のプロダクト開発を担当しています。
まず出前館について、ご存知の方も多いと思いますが、簡単に説明いたします。2000年、20年くらい前にフードデリバリーサイトとしてオープンしました。
4年前の2017年から、出前の受注だけではなく、飲食店様の代わりに商品をお届けするシェアリングデリバリーのサービスも開始しました。現在、加盟店は70,000店舗となり、シェアリングデリバリーもエリアを拡大しており全国に進出しています。
私たちLINEのエンジニアが、なぜ出前館の紹介をしているのか、あるいは出前館の開発をしているのかを簡単に説明いたします。
2017年に「LINEデリマ」という、出前館のOEMのようなサービスをLINEのアプリ内で開始しました。LINEデリマで注文すると、出前館に注文が連携され食事が届くというサービスでした。そこから業務を一緒にやっていく、事業を連携していくという関係がありました。
2020年の3月に資本業務提携して今まで以上に関係を強めて、一緒に事業をする発表を行い、実際に20年6月くらいから一緒に開発も共同で行っています。
「LINEデリマ」については、出前館とLINEアカウントの連携をできるようにしてブランドを統合し、2020年の12月をもってクローズしました。
出前館で私たちがどんなものを作っているかというと、主に3つのユーザー向けにプロダクトを開発しています。1つは一番左側。これが一番出前館と言って思い浮かべてくれるところだと思いますが。近くの飲食店を選んで、メニューから商品を選んで注文するという、エンドユーザー向けのサイト。
真ん中は加盟店向けのタブレットアプリの画面ですが、加盟店に注文が入った時に、どんな注文が入ったのかなどを表示するものです。このタブレットアプリ以外にも、加盟店の持っているPOSに連携したり、FAXに注文を送信したりする仕組みもあります。
一番右側は配達員向けのドライバーアプリと言われているもので、最近見かけた方もいると思いますが、出前館の自転車やバイクに乗っている方が注文情報を見て、どのお店に商品を取りに行ってどこに届けるということを行うためのアプリになります。これらを管理する画面がそれぞれあって、そういったものを開発しています。
どんな特徴があるか、出前館のプロダクトはおおざっぱに言うと、ECサイトと配送システムという2つをくっつけたようなシステムになっています。
ただ一般的なECサイトとは特性が違いまして。ECサイトというと、例えば北海道で頼んでも九州で頼んでも、どこで注文しても同じサービスを提供できますよというのが、ECサイトの強みだったりするのが普通なのですが、出前館は基本的に食事を届けるという特性上、お店と頼む人がすごく近いところにいるので、エリアの情報などを活用しながらやっていくサービスになっています。
これも食事というところですごく特徴的なんですが、頼んでから20分以内、15分以内で食品を運びたいというところを目指してやっています。
あともう1つあるのが、食事はなかなか欠かすことはできません。今日は出かけたくないなとか、買い物行きたくないなとか、雨が降っているとか、ちょっと外食も嫌だなっていう場合でも、食事はみなさんするので、そういった時にサービスを使ってくれる傾向があります。
出前館で使われている技術スタックですが、これはわりとLINEのほかのサービスと近い技術を使っていて、あまりLINEで使っていないものだと、データベースがOracleだったり、一部のシステムがPHPで動いていたりするところかなと思います。
データセンターは、出前館がもともとオンプレのデータセンターを使っていて、これもあとで説明しますが、少しそこから抜けようというか、脱却しようということで、AWSと、あとLINEのプライベートクラウドのVerdaと2つのサービスを使って、3つのデータセンターを今使っているという状況になります。
開発体制は、2020年私たちが一緒に共同開発を始めてから、かなり多くのエンジニアが出前館の開発に参加しています。それぞれ拠点が分かれていたり、出前館がもともと大阪で創業したというのもあって、出前館の開発も東京と大阪に分かれています。
LINEからは、LINE KYOTOの開発メンバーであったり、LINE FukuokaのQA、品質保証のチームであったり、あと最近では韓国の開発チームも入って、かなり多拠点で開発しています。
出前館のプロダクトの課題について、一部は解消しつつありますが、今こういった問題を抱えています。
サービス開始してから20年経っていて、10年くらい前に大規模なリニューアルをした関係で、設計や実装が古くなってきています。全部ではないのですが、Java8やSeesaa2みたいな、サポートの切れたものが少し残ってしまっているのが現状です。
また、シェアリングデリバリーという配送機能が後付けで入り、ニーズに合わせてどんどん建て増ししてきたということもあって、設計が古くなっていたり、それぞれのシステムの依存が複雑になっているなどの問題を抱えています。
あとはデータセンターですね。これもずっと使っているデータセンターなので、新たにサーバーを足すのが難しかったり、そもそもデータセンターの持っているコアスイッチの帯域が厳しくなっているなどの問題があって。こういったところは少しずつ今解消しているというところです。
まだ私たちは、開発を一緒に始めて1年くらいしか経っていないんですけれども、これまで一緒にやってきたところをいくつか紹介したいなと思っています。この中から今日は2つ、一番上の「参照APIプロジェクト」と「レコメンドシステム」を詳しく説明しようかなと思います。
まず「参照APIプロジェクト」が立ち上がった一番の理由は、課題を解決するというところ。この図で言うBeforeのところですね。フロントエンドのアプリやWebの受け口のところがAWS上にあるのですが、APIがオンプレのデータセンターにあって、その先のOracleが、かなり負荷が高くてなっていました。
負荷が高い原因もいろいろあったのですが、すごく複雑なクエリがたくさん走っている状態で。これを解消しようということで、いったんOracleにクエリがいかないように、AWS上にあるフロントエンドの近いところにOracleの読み込み専用のリードレプリカをPostgreSQLで構築しました。
そのAPIも参照用に新たに再実装して、それをエンドポイントごとにロードバランサーで分けていくかたちでAPIを一つひとつ移行していきました。今はもう参照系はほぼ下の経路を通るようになっていて、これからトランザクションのある書き込み系もどうやって移していこうかを検討しているところになります。
あともう1つの事例として「レコメンデーション」を紹介したいと思います。これはどちらかと言うと技術的な課題をクリアするというよりは、ユーザーに新しい価値を提供していこうというところで始めました。
出前館では収集したデータをあまり活用できていなかったのですが、LINEのデータ分析環境にデータを送って、ユーザーにおすすめの商品とか店舗を表示するものです。
今日はいろいろ都合があって、スクリーンショットみたいなものは出せませんが、アプリとか見ていただくと、店舗一覧の近くに「あなたへのオススメ」というのが出ていると思います。
出前館の場合は地域ごとに頼めるものが違うというのもあって、地域ごとであったり、そのエリアで人気のお店であったり、またユーザーの属性や購買情報から、「このお客さんは今までこの店舗を使ったことがないけど、こういうお店も使ってくれるんじゃないのかな」みたいなのを機械学習で抽出し、それを表示することを始めています。
もう1つやっているのが、いわゆる商品を買ったら、サイドメニューなどのよく一緒に買われているものを提案するというのをやっています。
現状の出前館だと、最低注文金額というのがあって、ある程度金額がないと注文ができないこともあるので、そのためにユーザーさんは追加の商品を探すので。そこでよく買われているものを提案しています。
今までやってきたことを紹介しました。最後に、今まさにやっていることであったり、今後こういうことに取り組んでいくことを紹介いたします。
まず一番上の基盤の刷新では、先ほど話したインフラや、古いフレームワークが残っているところを解消しようということで、アーキテクチャを全体的に見直したり、オンプレのデータセンターからクラウドに進めていったりと、いくつかサブプロジェクトに分けて対策をしています。
あと3つは、それぞれユーザー向けのプロジェクトです。エンドユーザー向けには、やっぱり良い体験をする、おいしいものを選ぶことが一番ユーザーが求めているものだと思います。
そのために自分に合った商品であったりとか、ほかの人がどういう評価だったのか、といったお店だけじゃなくて商品でもレビューできるようにしたりなど、そういったところに取り組んでいます。
加盟店向けに関しては、自分のお店でどういったものが売れているのかといったレポート機能のところを改善して行こうと思っています。
また現状の管理画面は決して使いやすいものではないので、そういったところも改善して、出前館を通して、より自分のお店を盛り上げるようなことをしてほしいなと思っています。
3つ目は配達員のところです。出前館は人が物を運ぶというところで、配達員はいっぱいいるんですが、誰に何を運んでもらうかを効率よくやっていくことで、お届け時間を短くしたり、配達件数を増やしていったりするために、こういったものを作ろうとしています。
出前館の開発を一緒にしていただける方を募集しています。本当に今フードデリバリーサービスはすごく盛り上がっていて。競合もたくさんいますが(笑)。市場も急成長しているので、そういった環境にあるサービスの開発をやってみたいという方に入ってほしいですね。
あと出前館と一言で言っても、機械学習であったり、インフラ面であったり、位置情報であったりと、いろいろな技術を使って構築しています。あとはBtoBtoCなのでビジネス向け業務システムであったり、エンドユーザー向けのシステムであったりなど、いろいろなものを作っています。
いろいろな技術領域に触れる機会があると思います。こういったところをやってみたい方は、ぜひ応募してもらえればと思います。あとの3つはこんな感じですかね。本日はありがとうございました。
※シェアリングデリバリーは株式会社出前館の商標です。
LINE株式会社
2024.11.13
週3日働いて年収2,000万稼ぐ元印刷屋のおじさん 好きなことだけして楽に稼ぐ3つのパターン
2024.11.21
40代〜50代の管理職が「部下を承認する」のに苦戦するわけ 職場での「傷つき」をこじらせた世代に必要なこと
2024.11.20
成果が目立つ「攻めのタイプ」ばかり採用しがちな職場 「優秀な人材」を求める人がスルーしているもの
2024.11.20
「元エースの管理職」が若手営業を育てる時に陥りがちな罠 順調なチーム・苦戦するチームの違いから見る、育成のポイント
2024.11.11
自分の「本質的な才能」が見つかる一番簡単な質問 他者から「すごい」と思われても意外と気づかないのが才能
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.11.18
20名の会社でGoogleの採用を真似するのはもったいない 人手不足の時代における「脱能力主義」のヒント
2024.11.19
がんばっているのに伸び悩む営業・成果を出す営業の違い 『無敗営業』著者が教える、つい陥りがちな「思い込み」の罠
2024.11.13
“退職者が出た時の会社の対応”を従業員は見ている 離職防止策の前に見つめ直したい、部下との向き合い方
2024.11.15
好きなことで起業、赤字を膨らませても引くに引けない理由 倒産リスクが一気に高まる、起業でありがちな失敗
2024.11.13
週3日働いて年収2,000万稼ぐ元印刷屋のおじさん 好きなことだけして楽に稼ぐ3つのパターン
2024.11.21
40代〜50代の管理職が「部下を承認する」のに苦戦するわけ 職場での「傷つき」をこじらせた世代に必要なこと
2024.11.20
成果が目立つ「攻めのタイプ」ばかり採用しがちな職場 「優秀な人材」を求める人がスルーしているもの
2024.11.20
「元エースの管理職」が若手営業を育てる時に陥りがちな罠 順調なチーム・苦戦するチームの違いから見る、育成のポイント
2024.11.11
自分の「本質的な才能」が見つかる一番簡単な質問 他者から「すごい」と思われても意外と気づかないのが才能
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.11.18
20名の会社でGoogleの採用を真似するのはもったいない 人手不足の時代における「脱能力主義」のヒント
2024.11.19
がんばっているのに伸び悩む営業・成果を出す営業の違い 『無敗営業』著者が教える、つい陥りがちな「思い込み」の罠
2024.11.13
“退職者が出た時の会社の対応”を従業員は見ている 離職防止策の前に見つめ直したい、部下との向き合い方
2024.11.15
好きなことで起業、赤字を膨らませても引くに引けない理由 倒産リスクが一気に高まる、起業でありがちな失敗