Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
How we cook cookpad.com 2016
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yoshiori SHOJI
August 26, 2016
Technology
30
9k
How we cook cookpad.com 2016
http://cedec.cesa.or.jp/2016/session/PRD/11836.html
Yoshiori SHOJI
August 26, 2016
Tweet
Share
More Decks by Yoshiori SHOJI
See All by Yoshiori SHOJI
なぜThrottleではなくDebounceだったのか? 700並列リクエストと戦うサーバーサイド実装のすべて
yoshiori
13
6.6k
クライアントサイドでよく使われる Debounce処理 をサーバサイドで3回実装した話
yoshiori
2
920
ソートできるUUID v7をJavaで使うときの話
yoshiori
8
7.8k
Go Down Rockin'
yoshiori
31
16k
テストデータを貯めて感じたこと
yoshiori
12
4.4k
エンジニアリング x US 海外とのコラボレーション
yoshiori
3
2.1k
未完成な技術と歩む道のりでの 試行錯誤
yoshiori
0
200
DevOps, Immutable Infrastructure, Microservices and Chaos Engineering
yoshiori
13
2.4k
Change the recipe's world
yoshiori
3
1.5k
Other Decks in Technology
See All in Technology
新規事業 toitta におけるAI 機能評価の話 / AI Feature Evaluation in toitta
pokutuna
0
270
プロダクトエンジニアこそ必要なPMスキル 〜デリバリー力を最大化し、価値を届け続けるために〜
layerx
PRO
0
130
[Iceberg Meetup #4] ゼロからはじめる: Apache Icebergとはなにか? / Apache Iceberg for Beginners
databricksjapan
0
460
JuliaTokaiとしてはこれが最後かもしれない(仮) for NGK2026S
antimon2
0
120
人はいかにして 確率的な挙動を 受け入れていくのか
vaaaaanquish
4
2.6k
Data Intelligence on Lakehouse Paradigm
scotthsieh825
0
200
Lambda Durable FunctionsでStep Functionsの代わりはできるのかを試してみた
smt7174
2
140
いよいよ仕事を奪われそうな波が来たぜ
kazzpapa3
3
250
2026年はチャンキングを極める!
shibuiwilliam
4
540
ビジュアルプログラミングIoTLT vol.22
1ftseabass
PRO
0
140
AWS Devops Agent ~ 自動調査とSlack統合をやってみた! ~
kubomasataka
2
220
Riverpod3.xで実現する実践的UI実装
fumiyasac0921
2
340
Featured
See All Featured
It's Worth the Effort
3n
188
29k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
Building an army of robots
kneath
306
46k
For a Future-Friendly Web
brad_frost
181
10k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
710
How to make the Groovebox
asonas
2
1.9k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
48
Unsuck your backbone
ammeep
671
58k
Getting science done with accelerated Python computing platforms
jacobtomlinson
1
100
[SF Ruby Conf 2025] Rails X
palkan
0
720
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Transcript
何故 クックパッドの サービス開発の進化は 止まらないのか 庄司 嘉織 ∠
庄司嘉織 yoshiori 2001 組み込み系 プログラマ 2002 Borland Conference Tokyo で発表
2003 SI へ転職
2007 Java-ja コミュニティ立ち上げ 2009 ドワンゴへ転職 Web+DB PRESS で特集1 執筆 2011
ニコニコ静画 (電子書籍) リリース 2012 クックパッド へ転職
2014 Developers Summit で発表(ベストスピーカー) Developers Summit 関西 で基調講演 2016 CEDECで発表
イマココ ∠
クックパッドについて 2,450,000 cooking recipes 61,090,000 monthly unique visitors 1,850,000 PS
user
世界のクックパッド
13 languages 55 countries
None
世界一
世界一巨大な モノリシック Rails サイトでもある (かも知れない) https://speakerdeck.com/a_matsuda/the-recipe-for-the-worlds-largest-rails-monolith
rake stats >
なぜ Ǹ Ruby なのか スクリプト言語としては早い方 Ȑ 多分 Java や ASP
にすると サーバ台数半分くらいに出来る
コンピュータ資源を使い切りたい Ȑ 素早く価値を届けたい サーバコストを安くしたい 何を優先するか
素早く価値を届けたい コレは資源の有効活用や サーバコスト削減の努力を 怠っているわけではありません。 素早く価値を届けることを最優先事項とし、 それを最大限活かせる形で コスト削減などを 日々努力しています。
開発 テスト デプロイ
開発の基本的な流れ 開発用ブランチを切る 追加修正をしコミット ∠ ∠
開発環境には 本番のデータが 常にレプリ されている http://techlife.cookpad.com/entry/2014/10/03/110806
ダミーデータやテストデータでは サービスの価値はわからない データが 大量なときに 遅くなるなども 発見
開発の基本的な流れ 開発用ブランチを切る 追加修正をしコミット ∠ ∠
Pull Request を作成し レビューしてもらう リリースブランチに マージ CI でチェック ∠
レビュー対象 リリース対象となるブランチにマージされる コードはすべてコードレビューされる必要が ある。ただし、簡単な文言修正や緊急度の 高いものはテストが通ればマージして良い。 レビュー時 必ず返信がほしい、もしくは修正してもらい たいものは [MUST] をつける。逆に今は修
正しなくていいが次に弄るときは気にして おいてほしいことのような気軽なものには [nits][IMO]などをつける レビュー相手 他のチームとの連携や、専門分野外なの で識者にレビューしてもらいたいときはその 人達にも mention すること。 ȑ マージ LGTM を貰ったら自身でマージする。 また [MUST] が付いていない修正箇所は レビュー相手に再度確認を求める義務は なく自身の裁量で修正、マージして良い。
機械的にチェックできるのもは 機械にチェックさせる
iOS, Android は dokumi 使って チェック cookpad/dokumi
DeployGate などへの 自動アップロードにも対応 cookpad/dokumi 実機ですぐ チェックできる デザイナや ディレクタも
もちろん Pull Request 毎に CI も通す
Pull Request を作成し レビューしてもらう リリースブランチに マージ CI でチェック ∠ ∠
2,000+ 20,000+ FILES EXAMPLES ̓ MINITS cookpad/rrrspec 分散テスト実行システム
Pull Request を作成し レビューしてもらう リリースブランチに マージ CI でチェック ∠ ∠
本番デプロイ CI が通ると Staging に 自動的にデプロイされる ので動作確認 ∠ ∠
sorah/mamiya 150+ hosts 13 sec 高速デプロイシステム Ȑ Ȑ Ȑ Ȑ
Ȑ Ȑ Ȑ Ȑ
デプロイは開発者自身で行う 業務時間中のみデプロイ出来る デプロイはチャットでボットに言うだけ ロールバックもボットに言うだけ
本番デプロイ CI が通ると Staging に 自動的にデプロイされる ので動作確認 ∠ ∠
90+ 毎週約 90 個の Pull Request が 取り込まれている *クックパッド本体のみの数字です
30+ 課金や認証、 ユーザーサービスなど 30 以上の アプリケーションが 動いている
10+ 毎日 10 回以上 デプロイされている *クックパッド本体のみの数字です
「デプロイしたら終わり」ではない
スタッフだけ、 特定のユーザーにだけ 開発中の機能を 簡単に 公開できる cookpad/chanko 安全に簡単に
ユーザーさんが ご意見、ご感想を書くためのフォームを サービスの奥に隠すのではなく すぐに書ける場所に置く フォームへの投稿は 専用のチャンネルなどに流すのではなく、 常に眼に入るように サービス担当者が 普段から使っているチャンネルに流す
素早く価値を届けたい
2 年半前、発表した時は dokumi も rrrspec も mamiya も無かったし チャットでデプロイも 出来なかった
進化する 文化
情報共有 Blog と Wiki の機能を持った社内ツールがある。 Wiki だけでなく Blog があるのでストックスべき情 報とフロー情報を分けて書ける。それが別のサービ
スとしてあるのではなく、同じ所にあるため全員そ れを見れば良いし誰でも自分の意見を発信できる
全社的に 1Password が 導入された
意見交換 提案は最近は github/issues で行われる。議論と して追いやすく、後から経緯を見ることもできる。 チャットで話し始めたあとに issue に移行する場合 もある
社長も創業 者もアカウント 持ってるし 使っている
雑 ɔ http://techlife.cookpad.com/entry/2015/03/25/202709 決して低品質な仕事をしたり、誰かに迷惑をかけた りすることを指しているわけではありません。日頃か ら発言のハードルが低く、気軽に意見できることが 重要なのです。
zatsu リポジトリに 雑に issue を立て ていく
昼飯や 飲みに行った時の 貸し借りも
行動する ユーザーのため、会社のために正しいと思ったら 自分の意志で行動出来る。 怒る人は居ないし、助言してくれたり助けてくれる。 賛同したら一緒に動いてくれる。 Ŏ
Tech ブログ英語版 作ったぜ!と言ったら いろいろな人が 書き出している
社外のエンジニアにも貢献すること OSS 活動、執筆や講演などの社外への貢献も評価 の軸の1つです。 そういったことが許されているとかのレベルではなく 会社がそれを望んでいます。
今日ご紹介した 以外にも 多数
オープンである
平等である Ŏ ɔ
素早く価値を届けたい
–Grace Hopper http://en.wikiquote.org/wiki/Grace_Hopper “It's easier to ask forgiveness than it
is to get permission.”
None
None