2016/01/23 Cookpad TechConf 2016 http://techconf.cookpad.com/
2015年9月26日に開催された「Seasar Conference 2015」のセッション「【世界最大級】クックパッドの Microservices 化【WIP】」を聴講しました。マイクロサービスに関するコラム記事を書いた後でしたので、この話題が気になっていたのです。結果として、現場の開発者による生々しい話を聞くことができました。「等身大のマイクロサービス切り出しの現場」と言えばいいでしょうか。 【世界最大級】クックパッドの Microservices 化【WIP】 講演者はショウジヨシオリさん。現在、クックパッドで開発者として働いています。 クックパッドのシステムは、「世界最大級のモノリシックRailsサービス」として知られています。今回は、その一部をマイクロサービスに切り分ける経験を語りました。講演資料が次のリンクから見られます。 https://speakerdeck.com/yo
ソーシャルゲームブームを皮切りにしてエンジニア不足が叫ばれるなか、主婦向けのレシピサイトという一見エンジニアからほど遠いWebサービスに、なぜ一流のエンジニアが魅力を感じて次々と集まってくるのか。その秘訣とエンジニアのスキルセットについて、クックパッド技術部長の小川伸一郎氏に伺った。 重力に引かれるように、いいエンジニアが集まってくる ――なぜクックパッドには優秀なエンジニアが集まるのか、その秘訣をお聞きしたいと思います。まず、小川さんはどうしてクックパッドに入られたのでしょうか。 外から見た時には、Rubyの業界で知れ渡った、優秀で知名度の高いエンジニアが、数多く在籍していたから、ということがあります。2010年頃に、当時技術部長だった井原さん(編注:井原正博氏)が、優秀なエンジニアを多数採用するという方向に舵を切りました。その頃から、RubyのコミッターやRuby界隈で知名度のある優秀
こんにちは。検索編成部&研究開発チームの原島です。 クックパッドのレシピには、内部で、様々な情報が付与されています。例えば、こちらの「母直伝♪うちの茹でない塩豚」というレシピには「肉料理」という情報が付与されています。これらの情報は、クックパッドの様々なプロダクトで利用されています。 レシピに情報を付与する方法は沢山ありますが、その一つに機械学習があります。クックパッドでは、レシピが肉料理か否か、魚料理か否か、...という分類を行うことで、「肉料理」や「魚料理」などの情報をレシピに付与しています。 今日は、分類をどのように実現しているか、その裏側を紹介します。 ■ 実装フェーズ まず、分類器を実装する際に気をつけたことを紹介します。 モデルを決定する 分類を行うには、そのための機械学習のモデルを決定する必要があります。クックパッドでは、十分な精度が出るだけでなく、リファレンスが多いという点
技術部の鈴木 (id:eagletmt) です。 クックパッドでは一部の Web アプリケーションサーバで Docker が使われており、今回はそのデプロイ方法について紹介します。 Docker で Web アプリケーションをデプロイするときには、まだまだベストプラクティスがある状況ではありません。 たとえば、どのように無停止でデプロイするか、どのようにコンテナと通信するかといった問題があります。 最初に Apache Mesos と Marathon などのツールを検証しましたが、クックパッドの環境において使いやすそうなものはなく、最終的に自前でデプロイのしくみを作ることにしました。 しかし Docker 周辺のツールは様々な新しいものが出てきている最中です。 今はまだベストなものが無いけれども、近いうちによりよいものが出てくるかもしれません。 そのため、できるだけ単純なしくみにしておく
こんにちは。検索・編成部の原島です。 大学の研究者にお会いすると、「クックパッドのデータを研究に使用したいんですが...」と相談されることがあります。料理に関する研究をしているけれど、実際のデータがないため、なかなか研究が進まないという相談です。 料理に関する研究が進まないのは、クックパッドにとっても残念なことです。これらの研究は、クックパッドのサービスを改善するための「芽」でもあります。データがないだけで芽が育たないのは、非常に悲しい話です。 このような現状を打破するため、本日から、クックパッドのデータを研究者に公開します。このエントリでは、我々が準備してきたデータ公開の仕様について QA 形式で解説します。 誰が利用できるの? 申請していただいた研究者です。ただし、公的機関(e.g. 大学、独立行政法人)の研究者に限ります。申請時には、クックパッドと国立情報学研究所(後述)による審査が
自己紹介 会員事業部*1 森田です。昨年はプレミアムサービス(以下PS)*2の訴求改善を担当しました。その中で抜きん出て効果の高かった施策を紹介します。具体的な数値を書くことは出来ないものの、この施策一つで前期に私がおこなった他の施策効果の合計を上回ります。 施策内容 紹介する施策は検索結果に関係するものです。今までは検索結果の下に控えめに表示していた人気順検索*3以外のPSコンテンツの訴求を、検索結果の間に追加しました。 殿堂入りレシピ*4 (人気順検索以外のPSコンテンツ)の訴求 予期せぬ効果 実はこの施策は会員事業部によるものではなく、別部署による検索ページへの大きなデザイン変更施策*5の一部として行われました。そのため検索結果の間でPSコンテンツを紹介することも私が考えたわけではなく、効果も深く考えていませんでした。当時私が気にしていた事は、今までも存在していた人気順検索の訴求効果
こんにちは。投稿推進部の清水(@pachirel)です。 2009年にクックパッドに入社してから、インフラ周り、クックパッドの人事周り(採用・評価)や広告周りのシステム開発を担当していました。 2014年4月頃から、2〜3名の小さなチームで新規サービスのプロトタイピングをいくつか行っています。 企画の詳細は省きますが、私がこの10ヶ月ほどで学んだことをまとめました。アジャイル開発やLean startupの考えに共感しているので、そこから得た内容に私の体験を付け加えたものになっています。 今回はプログラミングに関する技術的な内容は含まれていません。 なぜ作るか スタートアップが失敗する原因で一番多いのは「人が必要としていないものを作ってしまった」というものです。 The Top 20 Reasons Startups Fail 社内の新規サービス開発でも同じ傾向があるのではないでしょうか。
クックパッド 広告事業部の大野晋一です。責任範囲は広告事業の純広告およびネットワーク広告の商品開発担当で、事業部にはそれぞれの売上でコミットしています。 この記事では、動画変換の仕組みにおけるDockerの活用について紹介します。 クックパッドは8月8日、iOS/Androidのブラウザにおいて動画クリエイティブを掲出する広告商品を公開しました。広告商品としての詳細はプレスリリースやスライドを見ていただくのがわかりやすいのですが、本稿に関係する特徴としてスマートフォンのブラウザで自動的に再生が開始されるというものがあります。 スマートフォンのブラウザにおいては、現在のところ、動画を自動再生させることは出来ません。これはAppleやGoogleといったブラウザベンダが課している制約です。そこで、クックパッドでは、janiというライブラリを使い、特定の規則に基づいて作られた画像を、JavaSc
応募企業の探し方や履歴書の書き方、面接のポイントから円満退職の 秘けつまで。あなたの転職を成功に導くためのノウハウを紹介! この企画は、Web業界で名を馳せる伊藤直也氏と注目企業のCTOが、寿司を摘まみつつホンネで語り合う、かつて無かったインタビュー企画である。 元・超ワガママエンジニアのクックパッドCTOと語る、「CTOって何する人だ?」論 【後編】 #naoya_sushi <前編のあらすじと後編のお話> ある秋の日の宵の口、広尾の寿司屋に集った伊藤直也氏(以下「naoya」)と、『クックパッド』CTOの舘野祐一氏(以下「secondlife」、文中ではセコン)。もともと『はてな』で上司と部下という間柄だった二人が、旬の美味を愉しみながら話し始めたのは、『はてな』時代のセコン氏が「マネジメントなんか一切やりたくない」と公言し、「新しい技術を取り入れてはすぐに飽きて放置」するという超絶ワ
モバイルファースト室の @slightair です。 クックパッドの iOS/Android アプリは、少し前のバージョンからWebP形式の画像をサーバから取得して表示するようにしています。 この記事では、なぜ画像形式をWebPに切り替えたのか、また切り替える上で注意した点などを説明します。 Cookpad アプリと画像 クックパッドのアプリはユーザさんに投稿していただいたレシピを表示するアプリケーションです。その性質上、レシピ画像や調理手順、検索画面のサムネイルなどたくさんの画像をサーバから取得して表示する必要があります。 画像の数が増えたりサイズが大きくなればなるほど通信量が増えます。最近はスマートフォンの画面サイズがどんどん大きくなっているので、それに合わせて取得する画像を大きくしていくとさらにファイルサイズが増え、通信量も増えていってしまいます。 サーバとやりとりするデータが多くな
モバイルファースト室の @rejasupotaro です。 クックパッドでは、サービスをリリースしてログを収集して分析して改善してまたリリースして、というサイクルを素早く回すことでより良いものを作るということをウェブではやってきました。 クックパッドのサービス開発のフレームワークをモバイルアプリでも適用したいのですが、モバイルアプリにはウェブアプリと違ったロギングの難しさがあります。 今回はモバイルアプリのロギングの問題点とPureeというログ収集ライブラリについて話します。 モバイルアプリのロギングの難しさ ウェブアプリでは、基本的にはサーバー側でログを収集することができますが、モバイルアプリの場合は画面の制御はアプリ側で行われ、APIを介してデータを受け取るため、クライアント側でログを収集して送信する必要があります。 アプリのログを収集するのに、画面遷移をしたりタップするたびにサーバー
初めまして、インフラストラクチャー部の加藤 (@EugeneK) です。 クックパッドでは現在178万ものレシピが公開されていますが、目的のレシピを探すために検索機能を提供しています。 今回は検索機能の裏側の仕組みについて、インフラストラクチャーの観点からお話ししようと思います。 全ての検索機能を支えるSolrと周辺のアーキテクチャ クックパッドにはレシピの検索だけでなく様々な検索機能がありますが、その全てはSolrを活用して実装されています。 以前はMySQL Tritonnによる全文検索機能を使用していましたが、2011年頃からSolrに切り替わりました。 クックパッドではSolrをマスタ - スレーブ構成にすることで冗長性と負荷分散を実現しています。以下の構成図をご覧ください。 マスタとスレーブの間には、リピータと呼ばれる検索インデックスを中継するためだけの役割のサーバがいます。この
こんにちは。技術部の吉川です。 今回はクックパッドの開発環境構成、特に開発用データベースの構成についてご紹介します。 開発環境の構成 クックパッドのシステム環境は以下のようなフェイズに分かれています。 ※ これはcookpad.comの構成で、サブシステムや個別のサービスはその規模や特性に応じて構成が異なります。 development 開発者が実際に開発を行う環境です。クックパッドでは仮想環境は用いず、手元のマシンでRailsアプリケーションを動かして開発を行っています。 データベースはローカルではなく、開発者全体で共通の開発用データベースに接続しています。 test 手元でテストを実行する場合は、ローカルマシンのデータベースを利用します。CI(rrrspec)などの場合も同様で、テスト実行サーバーのデータベースが利用されます。 staging stagingといえば準本番環境として、本
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く