Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
何故 クックパッドの サービス開発の進化は 止まらないのか 庄司 嘉織 ∠
Slide 2
Slide 2 text
庄司嘉織 yoshiori 2001 組み込み系 プログラマ 2002 Borland Conference Tokyo で発表 2003 SI へ転職
Slide 3
Slide 3 text
2007 Java-ja コミュニティ立ち上げ 2009 ドワンゴへ転職 Web+DB PRESS で特集1 執筆 2011 ニコニコ静画 (電子書籍) リリース 2012 クックパッド へ転職
Slide 4
Slide 4 text
2014 Developers Summit で発表(ベストスピーカー) Developers Summit 関西 で基調講演 2016 CEDECで発表 イマココ ∠
Slide 5
Slide 5 text
クックパッドについて 2,450,000 cooking recipes 61,090,000 monthly unique visitors 1,850,000 PS user
Slide 6
Slide 6 text
世界のクックパッド
Slide 7
Slide 7 text
13 languages 55 countries
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
世界一
Slide 10
Slide 10 text
世界一巨大な モノリシック Rails サイトでもある (かも知れない) https://speakerdeck.com/a_matsuda/the-recipe-for-the-worlds-largest-rails-monolith
Slide 11
Slide 11 text
rake stats >
Slide 12
Slide 12 text
なぜ Ǹ Ruby なのか スクリプト言語としては早い方 Ȑ 多分 Java や ASP にすると サーバ台数半分くらいに出来る
Slide 13
Slide 13 text
コンピュータ資源を使い切りたい Ȑ 素早く価値を届けたい サーバコストを安くしたい 何を優先するか
Slide 14
Slide 14 text
素早く価値を届けたい コレは資源の有効活用や サーバコスト削減の努力を 怠っているわけではありません。 素早く価値を届けることを最優先事項とし、 それを最大限活かせる形で コスト削減などを 日々努力しています。
Slide 15
Slide 15 text
開発 テスト デプロイ
Slide 16
Slide 16 text
開発の基本的な流れ 開発用ブランチを切る 追加修正をしコミット ∠ ∠
Slide 17
Slide 17 text
開発環境には 本番のデータが 常にレプリ されている http://techlife.cookpad.com/entry/2014/10/03/110806
Slide 18
Slide 18 text
ダミーデータやテストデータでは サービスの価値はわからない データが 大量なときに 遅くなるなども 発見
Slide 19
Slide 19 text
開発の基本的な流れ 開発用ブランチを切る 追加修正をしコミット ∠ ∠
Slide 20
Slide 20 text
Pull Request を作成し レビューしてもらう リリースブランチに マージ CI でチェック ∠
Slide 21
Slide 21 text
レビュー対象 リリース対象となるブランチにマージされる コードはすべてコードレビューされる必要が ある。ただし、簡単な文言修正や緊急度の 高いものはテストが通ればマージして良い。 レビュー時 必ず返信がほしい、もしくは修正してもらい たいものは [MUST] をつける。逆に今は修 正しなくていいが次に弄るときは気にして おいてほしいことのような気軽なものには [nits][IMO]などをつける レビュー相手 他のチームとの連携や、専門分野外なの で識者にレビューしてもらいたいときはその 人達にも mention すること。 ȑ マージ LGTM を貰ったら自身でマージする。 また [MUST] が付いていない修正箇所は レビュー相手に再度確認を求める義務は なく自身の裁量で修正、マージして良い。
Slide 22
Slide 22 text
機械的にチェックできるのもは 機械にチェックさせる
Slide 23
Slide 23 text
iOS, Android は dokumi 使って チェック cookpad/dokumi
Slide 24
Slide 24 text
DeployGate などへの 自動アップロードにも対応 cookpad/dokumi 実機ですぐ チェックできる デザイナや ディレクタも
Slide 25
Slide 25 text
もちろん Pull Request 毎に CI も通す
Slide 26
Slide 26 text
Pull Request を作成し レビューしてもらう リリースブランチに マージ CI でチェック ∠ ∠
Slide 27
Slide 27 text
2,000+ 20,000+ FILES EXAMPLES ̓ MINITS cookpad/rrrspec 分散テスト実行システム
Slide 28
Slide 28 text
Pull Request を作成し レビューしてもらう リリースブランチに マージ CI でチェック ∠ ∠
Slide 29
Slide 29 text
本番デプロイ CI が通ると Staging に 自動的にデプロイされる ので動作確認 ∠ ∠
Slide 30
Slide 30 text
sorah/mamiya 150+ hosts 13 sec 高速デプロイシステム Ȑ Ȑ Ȑ Ȑ Ȑ Ȑ Ȑ Ȑ
Slide 31
Slide 31 text
デプロイは開発者自身で行う 業務時間中のみデプロイ出来る デプロイはチャットでボットに言うだけ ロールバックもボットに言うだけ
Slide 32
Slide 32 text
本番デプロイ CI が通ると Staging に 自動的にデプロイされる ので動作確認 ∠ ∠
Slide 33
Slide 33 text
90+ 毎週約 90 個の Pull Request が 取り込まれている *クックパッド本体のみの数字です
Slide 34
Slide 34 text
30+ 課金や認証、 ユーザーサービスなど 30 以上の アプリケーションが 動いている
Slide 35
Slide 35 text
10+ 毎日 10 回以上 デプロイされている *クックパッド本体のみの数字です
Slide 36
Slide 36 text
「デプロイしたら終わり」ではない
Slide 37
Slide 37 text
スタッフだけ、 特定のユーザーにだけ 開発中の機能を 簡単に 公開できる cookpad/chanko 安全に簡単に
Slide 38
Slide 38 text
ユーザーさんが ご意見、ご感想を書くためのフォームを サービスの奥に隠すのではなく すぐに書ける場所に置く フォームへの投稿は 専用のチャンネルなどに流すのではなく、 常に眼に入るように サービス担当者が 普段から使っているチャンネルに流す
Slide 39
Slide 39 text
素早く価値を届けたい
Slide 40
Slide 40 text
2 年半前、発表した時は dokumi も rrrspec も mamiya も無かったし チャットでデプロイも 出来なかった
Slide 41
Slide 41 text
進化する 文化
Slide 42
Slide 42 text
情報共有 Blog と Wiki の機能を持った社内ツールがある。 Wiki だけでなく Blog があるのでストックスべき情 報とフロー情報を分けて書ける。それが別のサービ スとしてあるのではなく、同じ所にあるため全員そ れを見れば良いし誰でも自分の意見を発信できる
Slide 43
Slide 43 text
全社的に 1Password が 導入された
Slide 44
Slide 44 text
意見交換 提案は最近は github/issues で行われる。議論と して追いやすく、後から経緯を見ることもできる。 チャットで話し始めたあとに issue に移行する場合 もある
Slide 45
Slide 45 text
社長も創業 者もアカウント 持ってるし 使っている
Slide 46
Slide 46 text
雑 ɔ http://techlife.cookpad.com/entry/2015/03/25/202709 決して低品質な仕事をしたり、誰かに迷惑をかけた りすることを指しているわけではありません。日頃か ら発言のハードルが低く、気軽に意見できることが 重要なのです。
Slide 47
Slide 47 text
zatsu リポジトリに 雑に issue を立て ていく
Slide 48
Slide 48 text
昼飯や 飲みに行った時の 貸し借りも
Slide 49
Slide 49 text
行動する ユーザーのため、会社のために正しいと思ったら 自分の意志で行動出来る。 怒る人は居ないし、助言してくれたり助けてくれる。 賛同したら一緒に動いてくれる。 Ŏ
Slide 50
Slide 50 text
Tech ブログ英語版 作ったぜ!と言ったら いろいろな人が 書き出している
Slide 51
Slide 51 text
社外のエンジニアにも貢献すること OSS 活動、執筆や講演などの社外への貢献も評価 の軸の1つです。 そういったことが許されているとかのレベルではなく 会社がそれを望んでいます。
Slide 52
Slide 52 text
今日ご紹介した 以外にも 多数
Slide 53
Slide 53 text
オープンである
Slide 54
Slide 54 text
平等である Ŏ ɔ
Slide 55
Slide 55 text
素早く価値を届けたい
Slide 56
Slide 56 text
–Grace Hopper http://en.wikiquote.org/wiki/Grace_Hopper “It's easier to ask forgiveness than it is to get permission.”
Slide 57
Slide 57 text
No content
Slide 58
Slide 58 text
No content