RubyKaigi 2023の冷蔵庫は何だったのか

エンジニアの成田(@mirakui)です。最近はクックパッドマートの流通基盤エンジニアとして、商品の流通に関わるソフトウェアやハードウェアに携わっています。

さて、クックパッドは先日長野県の松本で開催された RubyKaigi 2023 にスポンサーとして参加しました。そのスポンサーシップの一環として、参加者に配られるドリンクを冷やすための冷蔵庫を提供しました。

会場に設置した6台の冷蔵庫は、私たちが「マートステーション」と呼ぶ、クックパッドマートにおいてユーザーが購入した商品を受け取るための冷蔵庫です。現在は都内を中心に、駅やコンビニエンスストア、マンションの共用部といった生活動線に設置しています。マートステーションの技術的な詳細は下記の記事をご覧下さい。

techlife.cookpad.com

今回設置したのは、上記の記事中で "JCM-Mk4" と呼んでいる、現行型である第4世代の冷蔵庫です。それまでのモデル第3世代とはベースとなる冷蔵庫は同じですが、断熱性能を高めて結露対策を行ったり、Raspberry Pi を使うのを止めて、より安定性の高い産業用の機材に変更したりといった改良が加わっています。

冷蔵庫監視ダッシュボード

会場のクックパッドブースでは、6台の冷蔵庫をリアルタイムに監視する Grafana ダッシュボードを展示していました。

会場で展示した冷蔵庫のダッシュボード

ダッシュボードには、会場に設置したそれぞれの冷蔵庫において、主に以下のような値を表示していました。

  • 冷蔵庫の庫内温度
  • 解錠状態
  • ドアの開け閉めの状態

各冷蔵庫には産業用IoTゲートウェイであるFutureNet MA-S110 が取り付けられています。これは簡単に言うと小型 Linux PC であり、SIM カードやアンテナを取り付けることで、LTE 回線を通じてインターネットに繋がることができます。

ダッシュボードは Grafana で作られており、AWS 上にある Prometheus に格納されたデータを表示していました。Prometheus からは SORACOM Gate を経由して、各冷蔵庫の SORACOM Air SIM と通信を行い、温度センサーや鍵の会場状態の値を取得しています。これらの値を返しているのは、もちろん Ruby です!(RubyKaigi しぐさ)Linux 上で Sinatra の API サーバが動いていて、冷蔵庫における各種デバイスの制御や状態取得を司っています。

クックパッドマートは主に生鮮食品を配送するサービスであるため、商品の温度を担保することは事業において非常に重要です。たとえばもし冷蔵庫のドアが開けっぱなしになっていて庫内の温度が上がってしまうと、商品が傷んでしまう可能性があります。そのために私たちは冷蔵庫の温度やドアの開閉などを遠隔監視できるようにしており、会場で展示したダッシュボードは実際に運用で用いているものを簡易化したものです。

写真で振り返る RubyKaigi 冷蔵庫

RubyKaigi 開催前日です。会場に6台の冷蔵庫が届きました。各種の配線を行う私です。配線を終えて電源を入れればやがてオンラインになり、冷蔵庫の管理システムに自動的に登録されます。

設営中の筆者 / Photo by @pastak

設営を完了した6台の冷蔵庫です。中にはドリンクが入っています。

会場に設置した冷蔵庫

ドリンクはみやもとファームのりんごジュースと松本ブルワリーのクラフトビールで、RubyKaigi から提供されました。りんごジュースはりんごの品種違いで4種類あり、風味の違いを楽しむことができました。松本ブルワリーのビールは Session IPA と RubyKaigi 2023 Matsumoto Lager で、どちらも RubyKaigi 2023 のオリジナルラベルがデザインされていました。

提供されたドリンク

冷蔵庫を開けるためには QR コードリーダーに解錠用の QR コードをかざす必要があります。実際の商品受け取りではクックパッドマートのアプリ上に表示される購入者用の QR コードを使って解錠するのですが、RubyKaigi の解錠では簡易的に、あらかじめ印刷した QR コードをぶら下げておくことで誰でも解錠できるようにしました。ちなみにこのカードは私の手作りです。QR コードは現地でマートのラベルプリンターを使って印刷しました。

解錠用のQRコード

りんごジュースは全日提供でしたが、ビールの提供は17時以降のみにしていました。Ruby で制御しているスマートロックなので、17時以降でないと解錠できないというギミックも簡単に用意できるのですが、わかりやすさを優先して物理的に QR コードリーダーを封印していました。

物理的な封印。これもマートのラベルプリンターで現地作成

クックパッドブースではダッシュボードの展示を行っていました。ビールの提供が始まる17時以降、ドアの開け閉めによって一斉にグラフが動き始めます。

クックパッドブースのダッシュボード展示

私もエンジニアとして、期待通りビールが冷やされているか確認を行いました。

温度監視の動作確認

おわりに

RubyKaigi 2023 では、とてもおいしいりんごジュースとクラフトビールが用意されました。私たちは大量に冷蔵庫を所有するスポンサーとして偶然居合わせたので、喜んで冷蔵庫を提供しつつ、クックパッドマートの流通の裏側をデモする機会をいただきました。クックパッドマートでは、生鮮食品を適切な温度を保ちながらユーザーに届けるために様々な工夫を凝らしています。首都圏のサービス提供エリアにお住まいの方は、ぜひクックパッドマートで買物をしてみて、生産者から冷蔵庫に届くまでの技術に思いを馳せていただければ幸いです。 最後に、RubyKaigi 2023 スタッフのみなさまおよび、ブースに訪れていただいたみなさま、どうもありがとうございました。