タグ

ブックマーク / techlife.cookpad.com (41)

  • クックパッドの検索反映時間を 1/288 にしたシステム改修 - クックパッド開発者ブログ

    こんにちは。レシピ事業部の新井(@SpicyCoffee)です。 クックパッドではこれまで、レシピを投稿してから検索結果に反映されるまで最長で 24 時間程度の時間がかかっていました。今回、この時間を 5 分程度、最長でも 10 分程度に短縮することに成功しました。記事では、プロジェクトオーナーの立場で関わった私が代表してその開発について紹介します。 プロジェクトの目的と数値目標 プロジェクトでは上記の「レシピを投稿してから検索結果に反映されるまでの時間短縮」が目的とされました。しかし、時間短縮といっても現状 24 時間であるものを "1 時間" にするのか、"1 分" にするのか、"1 秒" にするのかでは話が全然違います。この数値目標は設計を始めとした後の意思決定に大きく影響を与えるため、しっかりとした意図を持った状態で明確に定めておく必要がありました。 そこで、私とプロダクトオー

    クックパッドの検索反映時間を 1/288 にしたシステム改修 - クックパッド開発者ブログ
    koba789
    koba789 2023/10/05
    マイクロバッチ最高! 一番好きなマイクロです
  • Project Googrename: Google Workspace で 14 年運用されたドメインエイリアスをプライマリドメインに変更 & 全ユーザーを安全にリネームする - クックパッド開発者ブログ

    コーポレートエンジニアリング部の id:sora_h です *1。今回は 3 ヵ月ほど前に実施した、Google Workspace テナントのプライマリドメイン変更について、記録を兼ねて説明します。 クックパッドは 2009 年頃 *2 より Google Workspace *3 を利用しています。当社の対外的なメールアドレスは cookpad.com ですが、Google ではプライマリドメインとして cookpad.jp が設定されています。各ユーザーには cookpad.com のアドレスを別名 (エイリアス) として登録されていて、メールアドレスとしては cookpad.com を利用、ただ Google へログインする時だけ cookpad.jp を利用する運用になっていました。想像が出来ると思いますが、これが様々な面で不便・混乱を発生させていました。どうしてこうなった… *

    Project Googrename: Google Workspace で 14 年運用されたドメインエイリアスをプライマリドメインに変更 & 全ユーザーを安全にリネームする - クックパッド開発者ブログ
    koba789
    koba789 2023/06/28
    スーパーマイグレーションテクニックが炸裂しておる
  • データ分析 SQL とその実行結果を共有・検索できるアプリ Bdash Server を作りました - クックパッド開発者ブログ

    こんにちは。クックパッドエンジニアをしている @morishin です。Bdash Server というデータ分析 SQL を共有するアプリケーションを作って社内で使い始めたのでその紹介をします。 クックパッドのサービス開発は「仮説を立てる」→「作ってリリース」→「効果検証」の繰り返しで進んでいます。ここで言う効果検証というのは作ったサービスが狙い通りの使われ方をし、ユーザーに価値を提供できているかどうかの確認のことです。その手段は複数あり、実際に使っていただいたユーザーさんにインタビューをさせていただく場合もあればアプリケーションから送信されたアクセスログ等を分析することで評価する場合もあります。この記事では後者の定量分析を効率化するためのツールを作った話をします。 アプリの概要 まずはアプリの機能を紹介します。Bdash Server は、Bdash という同僚 (@hokaccha

    データ分析 SQL とその実行結果を共有・検索できるアプリ Bdash Server を作りました - クックパッド開発者ブログ
    koba789
    koba789 2021/06/11
    ついにできたんんだ。人類の夢叶ってるじゃん
  • 人気順検索のSolrはスケールのためにディスクを捨てた - クックパッド開発者ブログ

    技術クックパッドサービス基盤グループの id:koba789 です。 昨年まではデータ基盤グループというところで 最新のログもすぐクエリできる速くて容量無限の最強ログ基盤 を作ったりしていました。 今年はちょっとチームを移動しまして、検索システムをいじっていました。今回はそのお話です。 なお、クックパッドには様々な検索システムがありますが、この記事では説明を簡単にするためにレシピの検索のみに焦点をあてています。 クックパッドの検索システムにあった課題 クックパッドにはレシピを検索できる機能があります。 プレミアム会員限定の人気順検索もこの機能の一部です。 しかし、この重要な機能を支える検索システムにはいくつもの課題がありました。 Solr が古すぎる クックパッドでは、レシピ検索を含む多くの検索機能にSolrを用いています。 今年の始めに私がこの課題に取り組み始めた時点では、その Sol

    人気順検索のSolrはスケールのためにディスクを捨てた - クックパッド開発者ブログ
    koba789
    koba789 2020/11/25
    私の今年の新作です。仕事ではこんなことをしていました
  • Ruby に Software Transactional Memory (STM) を入れようと思った話 - クックパッド開発者ブログ

    技術部でRubyインタプリタの開発をしている笹田です。コロナの影響で、リモート勤務などに移行し、新しい生活スタイルを満喫されている方々がたくさんいらっしゃるんじゃないかと思います。ただ、私は以前から自主的に自宅勤務することが多かったので、正直生活がぜんぜん変わっていません。 さて、家で私が何をしているかというと、Ruby 3の準備です。その中でも、数年取り組んできた Ruby で並列処理をするための仕組みである Ractor の開発をしています(以前は Guild というコードネームで呼んでいました)。Ractor という名前は、Ruby の Actor みたいな意味で付けました。Erlang とか Elixir で有名な Actor model というアレです。厳密には、Actor model でよく言われる特性をすべて備えているわけではないのですが、並列で動く Ractor を複数作る

    Ruby に Software Transactional Memory (STM) を入れようと思った話 - クックパッド開発者ブログ
    koba789
    koba789 2020/11/20
    STM また盛り上がってほしいよなぁ。Intel の HTM はエラッタが見つかって BIOS で無効化されてそのままコケっぱなしなんだっけ
  • Ruby3 さみっと online 開催報告 - クックパッド開発者ブログ

    Ruby インタプリタの開発をしている技術部の笹田です。以前から自主的にリモートワーク状態だったので、あまり仕事環境は変わっていません。が、子供の保育園の登園を自粛しているため、色々大変です(主に育休中のが)。日常がはやく戻ってくれることを祈るばかりです。 さて、去る 4/17 (金) に、Ruby3 さみっと online というウェビナーイベント(オンラインイベント)を開催しました(Ruby3 さみっと online - connpass)。今年の12月にリリースされると言われている Ruby 3 に関するトピックに絞った発表会です。稿では、このイベントについてご報告します。 RubyKaigi 2020 が、4月から9月に延期されたので、Ruby 3 開発のマイルストーンがちょっと宙ぶらりんになってしまいました。 そこで、一つお披露目する機会を作ろうと企画したのがこのイベントです

    Ruby3 さみっと online 開催報告 - クックパッド開発者ブログ
    koba789
    koba789 2020/05/07
    ゆるくていい
  • クックパッドの在宅勤務環境 - クックパッド開発者ブログ

    コーポレートエンジニアリング担当 VP の @kani_b です。 昨今急速に拡大している新型コロナウイルス感染症の感染拡大リスクを鑑みて、従業員や関係者の皆さまの安全確保を目的に、クックパッドでは 2/18 (火) からまずは2週間ほど、国内拠点の全従業員(正社員、契約社員、パート・アルバイト、派遣社員、通常在席の業務委託)を対象に在宅勤務の原則化を実施することになりました。 クックパッド、新型コロナウイルスの拡大防止対策で、全従業員を対象に在宅勤務(Work from Home)を実施 | クックパッド株式会社 ‌ この記事では、現在クックパッドでどのような環境づくりのもと、在宅勤務が行われているかをご紹介します。 どの会社の方も同じような状況にあるかと思いますが、「他社ではどうやっているか」の一例として参考にしていただけると嬉しいです。 仕事に利用するシステム クックパッドでは、業務

    クックパッドの在宅勤務環境 - クックパッド開発者ブログ
    koba789
    koba789 2020/02/21
    リモートワーク、こんな感じでやっています
  • 退職処理を可能な限り自動化する - クックパッド開発者ブログ

    技術部 SRE グループの id:itkq です。2019 夏アニメで一番好きな作品は Re:ステージ!ドリームデイズ♪ です。この記事では SRE が運用している退職処理の自動化について説明します。 退職処理とは 入社後に業務のための様々なアカウントを作成するのと反対に、退職時にはそれらのアカウントを無効化する必要があります。これを退職処理と呼んでいます。SRE が管轄している典型的な例では、SSO に対応していない SaaS のログインアカウント・AWS の IAM User・データベースの個人ログインユーザなどが該当します。これらのアカウントは社員によって要否が異なったり必要な権限が異なるため、入社時に一括で用意せず必要に応じて申請してもらう形をとっています。一方で退職時にはそれらのアカウントをすべて無効化する必要があります。 退職処理は繰り返され、自動化の余地のあるタスクです。また

    退職処理を可能な限り自動化する - クックパッド開発者ブログ
    koba789
    koba789 2019/10/10
    こういうのは回数が少ないからこそ、その時々で曖昧な対応になりがちなので自動化が大切。アカウントの削除を忘れるとセキュリティ的にもよくないしね
  • EuRuKo 2019 で発表してきました - クックパッド開発者ブログ

    技術部でフルタイム Ruby コミッタをしている遠藤(@mametter)です。フルタイムで Ruby を開発しています。 先日、オランダのロッテルダムで開催された EuRuKo 2019 で発表してきたので、簡単にレポートします。 EuRuKo とは EuRuKo は、毎年ヨーロッパのどこかで開催されている Ruby のカンファレンスです。 EuRuKo 2019 会場 シングルセッション 世界の Ruby カンファレンスといえば、アメリカRubyConf 、ヨーロッパの EuRuKo 、日RubyKaigi だと勝手に思っていますが、この中で EuRuKo の特徴というと、シングルセッションなことです*1。つまり、発表を聞く会議室は 1 つだけです。どれを聞くか迷わなくていいですね。 必然的に、発表の数は少ないです。YouTube の動画の数を見てみると、RubyConf 2

    EuRuKo 2019 で発表してきました - クックパッド開発者ブログ
    koba789
    koba789 2019/07/10
  • モダンBFFを活用した既存APIサーバーの再構築 - クックパッド開発者ブログ

    技術部の青木峰郎です。 去年までは主にデータ分析システムの構築を担当していましたが、 最近はなぜかレシピサービスのサービス開発をやっています。 今日は、そのサービス開発をする過程で導入したBFF(Backends for Frontends)であるOrchaについて、 導入の動機と実装の詳細をお話しします。 Orcha導入にいたる経緯 まずはOrcha導入までの経緯、動機からお話ししましょう。 最初のきっかけは、わたしが去年から参加しているブックマークのようなサービスの開発プロジェクトでした。 このプロジェクトの実装のために新しいmicroserviceを追加することになったのですが、 そのときにいくつかの要望(制約)がありました。 1つめは、撤退するとなったときに、すぐに、きれいに撤退できること。 2つめが、スマホアプリからのAPI呼び出し回数はできるだけ増やしたくない、という要望です。

    モダンBFFを活用した既存APIサーバーの再構築 - クックパッド開発者ブログ
    koba789
    koba789 2019/06/22
    いつの間にか無敵万能エンジニア呼ばわりされててウケる
  • レシピ検索を支えるレガシーでクリティカルな大規模バッチを刷新した話 - クックパッド開発者ブログ

    こんにちは、会員事業部の新井です。余暇を全て Auto Chess に喰われています。 過去このブログにはサービス開発に関する記事*1を投稿させていただいているのですが、今回はシステム改修についての記事になります。 クックパッドには検索バッチと呼ばれる大規模なバッチが存在するのですが、今回それを刷新することに成功しました。 そこでこの記事では旧システムに存在していた問題点、新システムの特徴や実際の開発について述べたいと思います。 背景 クックパッドレシピ検索では Apache Solr を検索サーバーとした全文検索を利用しています。古くは Tritonn を利用して MySQL に作られた専用 table を対象に全文検索を実行していたようですが、その頃から「検索バッチ」と呼ばれるバッチが存在していました。 このバッチは、簡単に言うと「検索インデックス」と呼ばれる検索用メタデータを生成す

    レシピ検索を支えるレガシーでクリティカルな大規模バッチを刷新した話 - クックパッド開発者ブログ
    koba789
    koba789 2019/06/17
    Rails である必然性がないバッチジョブを plain Ruby で書き直して分離した話(DWH を活用してデータフローもまともにしている)
  • 1枚のラベルの向こうには、1人のユーザがいる【連載:クックパッドマート開発の裏側 vol.3】 - クックパッド開発者ブログ

    こんにちは。クックパッドマート連載3日目を担当します、買物事業部エンジニアの今井(@imashin_)です。 去年の10月ごろから、生鮮品ECサービスクックパッドマートの販売者向けサービスの開発を行っています。クックパッドマートを利用するのは、商品を買うユーザだけではありません。商品を販売する方々にも簡単に利用できるよう開発を進めています。 今回は、どのようにして商品を販売者からユーザまで届けられるように開発しているかを紹介します。 クックパッドマートではどうやって商品をユーザに届けているのか まず、今どのように商品を届けているのか、商品の注文から受け取りまでの流れを紹介します。 発注 02:00 注文締め切りと同時に配送計画を作成する 02:15 販売者に対してFAXまたはLINE WORKSにてPDFを送付し、商品の注文内容を伝える 販売者は、四六時中クックパッドマートだけを利用して

    1枚のラベルの向こうには、1人のユーザがいる【連載:クックパッドマート開発の裏側 vol.3】 - クックパッド開発者ブログ
    koba789
    koba789 2019/04/10
    私はケースの加工についてケチをつける役などをしました
  • マイクロサービス化を支える継続的切り替え術 - クックパッド開発者ブログ

    こんにちはこんにちは。技術部のクックパッドサービス基盤グループのシム(@shia)です。グループ名が大きいですね。 クックパッドで運営しているサービスの中、一番古くから存在しているレシピサービス (cookpad.com) ——以下このサービスのコードベースを cookpad_all と呼びます——があります。 クックパッドサービス基盤グループはこのレシピサービスの運用及び改善という責務を持つグループとして今年の2月に発足しました。 わかりやすい業務の一つとしてはお台場プロジェクトが挙げられます。 お台場プロジェクトに関しては昨年12月の最後を飾った青木さんの クックパッド基幹システムのmicroservices化戦略 〜お台場プロジェクト1年半の軌跡〜という素晴らしい記事があるので紹介は省きます。 お台場プロジェクトの一つとして、僕は最近 cookpad_all からフィーチャーフォン向

    マイクロサービス化を支える継続的切り替え術 - クックパッド開発者ブログ
    koba789
    koba789 2019/03/05
    ガラケーサイト2019
  • 春のインターンシップ自作キーボードコースのカリキュラムをちょっとだけ見せちゃいます! - クックパッド開発者ブログ

    Cookpad Spring 1day Internship 2019 自作キーボードコース、講師の KOBA789 です。 (インターンシップの正式名称長いな) 私事ですが、最近全自動洗濯乾燥機を買って生活が変わりました。 さて、募集開始時、にわかに界隈をお騒がせしておりました自作キーボードコースですが、気づけばもう当日まで1ヶ月を切ってしまいました。 講師の私は今必死に講義内容の準備をしているわけですが、今回は特別に、そのカリキュラムの一部をご紹介します。 そもそもどんな内容のコースなの? 募集ページには このコースでは、キーボードの仕組みをハードウェア・ソフトウェアの両面から解き明かし、究極のキーボードをゼロから自作できる技術を身につけます。 Cookpad Spring 1day Internship 2019 | クックパッド 採用情報 と、大変抽象的な記述をしていました。 "ハ

    春のインターンシップ自作キーボードコースのカリキュラムをちょっとだけ見せちゃいます! - クックパッド開発者ブログ
    koba789
    koba789 2019/02/25
    インターンシップの準備をやっていっています
  • 得られた知見をフリーズドライ〜情報共有のための仕組み Report.md の紹介〜 - クックパッド開発者ブログ

    こんにちは、会員事業部の新井(@SpicyCoffee66)です。今年はレシピサービスにおける体験改善を主な業務としていました。 サービス開発かラブライブ!の話をすると早口になります*1。今日はついにスマブラが発売されるのでおそらく早退します。 さて、記事ではサービス開発において重要な要素である施策結果・知見のプールや共有について、社内でどのような取り組みが行われているのかを紹介したいと思います。 施策の結果から最大限に学びを得たい 私たちはサービス開発を進める中で日々多くの施策を実施することになります。 サービス開発のプロセスにおいて、施策は実施して終わりではなく、その結果からいかに多くの学びを得るのかということが重要になります。 施策の結果から学びを得るためには、その施策の意図や結果を可能な限り 正しく 解釈し、それを(将来入ってくるメンバーを含めて)より多くの人に 共有 することが

    得られた知見をフリーズドライ〜情報共有のための仕組み Report.md の紹介〜 - クックパッド開発者ブログ
    koba789
    koba789 2018/12/07
    知見を Markdown で書いて PullRequest を投げるだけという素朴なしくみが案外有効だったという話
  • 【開催レポ】Cookpad TechBar #9 〜秋の最高LT大会〜 & ライブ配信の裏側 - クックパッド開発者ブログ

    こんにちは。新卒採用担当の小久保です。 2018年11月21日に、Cookpad TechBar #9 〜秋の最高LT大会〜を開催しました。 Cookpad TechBarとは Cookpad TechBarは学生向けのイベントで、クックパッド社員とカジュアルな雰囲気で気軽に交流していただけるイベントです。 今回のテーマ 今回は、「最高のLT」をテーマに、3名の若手社員と1名の内定者がLTをしてくれました。 具体的な発表内容としては、クックパッドの業務にほとんど関係のないLTを実施したのですが、堅苦しい説明会とは違う、TechBarならではの雰囲気を楽しんでいただき、大好評でした。懇親会では、参加者から多くの質問をしていただき、有意義な時間を過ごすことができました。 最高だと感じてもらう工夫 ただ楽しいLTイベントではなく、最高なLTイベントだと感じてもらうために実施した2つの取り組みにつ

    【開催レポ】Cookpad TechBar #9 〜秋の最高LT大会〜 & ライブ配信の裏側 - クックパッド開発者ブログ
    koba789
    koba789 2018/12/03
    イベント配信の裏側を書きました。詳細な構成やコードも公開しています
  • 最新のログもすぐクエリできる速くて容量無限の最強ログ基盤をRedshift Spectrumで作る - クックパッド開発者ブログ

    こんにちは。去年の今頃は Rust を書いていました。 インフラストラクチャー部データ基盤グループの id:koba789 です。 背景 クックパッドではデータ基盤の DBMS として Amazon Redshift を利用しています。 既存のデータ基盤について詳しいことは クックパッドのデータ活用基盤 - クックパッド開発者ブログ を参照してください。 今まで、ログは数時間に1度、定期実行ジョブで Redshift 内のテーブルにロードしていました。 ロードジョブの実行間隔が "数時間" と長めなのは、Redshift のトランザクションのコミットが遅いためです。 クックパッドでは数百ものログテーブルがあるため、仮に1分おきにすべてを取り込もうとすると秒間数回以上のコミットを行わなければなりません。 このような頻繁なコミットは Redshift 全体のパフォーマンスを悪化させてしまいます

    最新のログもすぐクエリできる速くて容量無限の最強ログ基盤をRedshift Spectrumで作る - クックパッド開発者ブログ
    koba789
    koba789 2018/11/21
    今年の新作、やっと出ました
  • Hackarade #04: Create Your Own Interpreter - クックパッド開発者ブログ

    技術部の遠藤(@mametter)です。Rubyの開発やってます。 クックパッドでは、Hackaradeという社内ハッカソンを定期的に開催しています。第1回はRubyインタプリタのハック(MRI Internal Challenge)、第2回は機械学習の体験(Machine Learning Challenge)、第3回はISUCON風の社内コンテストを行いました。 4回目となる今回は、遠藤が講師となり、「言語処理系を自作する」というテーマで開催しました。その概要と成果の一部をご紹介します。 概要 Cookpad Hackarade #04: Create Your Own Interpreter from mametter 言語処理系の作り方の基を一日で習得することを目標として、「RubyインタプリタをRubyで書くこと」を具体的な課題としました。 言語処理系は通常、プログラムテキスト

    Hackarade #04: Create Your Own Interpreter - クックパッド開発者ブログ
    koba789
    koba789 2018/10/16
    死ぬ気でセルフホスト可能なパーサーを手書きして死んだ。曰く(Ruby の)パーサーを書くのは人生の無駄とのことです
  • 自作キーボード沼 自由研究ノート - クックパッド開発者ブログ

    こんにちは!広報部のとくなり餃子大好き( id:tokunarigyozadaisuki )です。 クックパッドSlackには無数のオープンチャンネルが存在していますが、最近盛り上がりを見せているのが「#keyboards」というチャンネル。先週末コミックマーケットが開催されていたためここ最近はその話でもちきりの様子でしたが、普段から大事な仕事道具であるキーボードにこだわりを持った社員が日々情報交換をしています。興味位で社員のキーボードをのぞいでみると、ピカピカ光るものから、カチカチッと音がなるもの、アルファベットも数字も書いていないもの……その多彩さにびっくりします。 そこで、クックパッドエンジニアの最近のキーボード事情を調査してみました! なお、HHKBやRealforceはクックパッドでは当たり前だったので、紹介は割愛いたします。 クックパッドエンジニアのキーボード @takai

    自作キーボード沼 自由研究ノート - クックパッド開発者ブログ
    koba789
    koba789 2018/08/14
  • 機械学習を用いてユーザーのご意見分類業務を効率化した話 - クックパッド開発者ブログ

    こんにちは。研究開発部の @vanhuyz です。機械学習・自然言語処理を中心に研究開発しています。 今回は機械学習を活用してユーザーからのご意見を 81 のカテゴリーに自動分類し、ユーザーサポートスタッフによる手動分類の工数を半分にできた話を紹介したいと思います。 背景 クックパッドは現在約 5,500 万人の国内月間ユーザーがあり、日々ユーザーからたくさんのご意見やご要望を頂いています。創業してからユーザーの声を大事に扱う文化があり、どのご意見も一度目を通すようにユーザーサポートスタッフが努力しています。ご意見はスタッフによってさらに分類され、必要に応じてディレクターやエンジニアに振り分けられています。 例えば、こんな感じのご意見が来ています。「このレシピは簡単なので、子供とやってみました。楽しかったです」や「機種変更して、ログイン出来ません」や「もっと具体的な内容でも検索できるように

    機械学習を用いてユーザーのご意見分類業務を効率化した話 - クックパッド開発者ブログ
    koba789
    koba789 2018/08/08
    地に足の着いた機械学習事例だ