SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ2014】セッションレポート

【デブサミ2014】13-B-7 レポート
「何故クックパッドのサービス開発は日々進化しているのか」

  • このエントリーをはてなブックマークに追加

 日本最大の料理レシピサイト『クックパッド』。レシピやサービスの充実ぶりが有名ですが、ITやインフラ環境の側面においても、同社が取り組んでいる技術や手法が注目され続けています。今回のDevelopers Summit 2014では、日々更新を重ねつつも安定したサービスを運用し、技術トレンドが変化していく中で、どのようにしてサービス開発手法を進化させていくのか。その辺りのポイントについて、現在クックパッド社のサービス研究開発部およびHappy Author部の部長を務め、またコミュニティ『java-ja』の代表としても知られる庄司 嘉織氏が語りました。

  • このエントリーをはてなブックマークに追加
クックパッド 庄司嘉織氏
クックパッド 庄司嘉織氏

 冒頭、庄司氏は「クックパッドの印象としては、レシピのサービスが一番強いと思いますが、これ以外のサービス、新規事業にも力を入れています」とした上で「cookpad.comに関する話をします」と切り出してセッションを始めました。

 まず、Ruby 2.0/Rails 3.2による環境構成を説明し、「このボリューム、正直狂っているんじゃないかな。数か月間でこれだけ増えてるんです。……あの、ここ笑うところですよ?」と独特の語り口でセッションを進めていきます。

サービスの成長と安定性を両立させる3チーム制

 しかし、上図のような成長ペースにもかかわらず、デプロイは1日10回ペースを維持している。一体どうやって、これほどの安定リリースを実現しているのでしょうか? 庄司氏はこの点について、エンジニアで構成されている『サービス開発部』『インフラ部』『技術部』の存在を挙げました。

 サービス開発部隊がサービス開発に集中する。この理想を現実にするために、足回りがおろそかになりがちなサービス開発においてテスト基盤やデプロイ基盤を作成する『技術部』では、CI10分以内の終了を部の目標として定めました。これはどんなにサービス開発側がテストを増やしていたとしても守っているとのこと。

 『サービス開発部』の紹介では、"Chanko"というフレームワークの説明を行い、その素晴らしさを説きました。フレームワーク自体の特徴(特定ユーザーの時だけ文字列を書き換えて表示することができ、エラーの場合はデフォルト挙動を見せることができる、という拡張機能について解説)もさることながら、作業時のやり取りや作業体制にも庄司氏は非常に感動したと言います。「GitHubで頻繁に行われるPull Requestやマージ」「金曜日のデプロイ禁止」「マージは基本的に本人が行う」「DBスキーマの変更もPull Requestベース」「設計自体もissue機能を用いる(設計中の議論が一目瞭然となるのが良い)など。そしてさらに感動したのが、『デザイナーもGitHubを使っていた』点。庄司氏の作業しているブランチにPull Requestしてきたり、イメージの共有もPull Requestで送ってきたりと、「デザイナーがここまでやってくれるなんて!」と思ったのだそうです。

 デプロイのリリース間隔に関しては先述のとおりですが、ロールバックやデプロイロックも手元から行えるようになっていると庄司氏は解説。デプロイロックでは通常サーバ側をロックしますが、その体制を解くことで権威的にならないような工夫もしているそうです。これはインフラ部部長の成田一生氏による取り組みで、この点はとても大事なんです、と強調していました。

 また、ユーザーサポートにもGithubを用いているとのこと。HipChatに通知が入り、エンジニアも観測可能な状態で作業が進むので、サポート状況も進捗確認が可能です。「サポートの人ってエンジニアに投げたあと、不安になるものなんです。無視放置されているんじゃないかと。それがこれらを見れることで安心できるんです」とその有用性を説明しました。ちなみに庄司氏自らが、サポートもGitHubを使おうと提案し、浸透するようにしたと言います。「正しいと思ったら行動できる、自分で文化を作れてしまうという点が重要です」とクックパッド内の体制の特徴についてコメントしました。

各自が正しいと思うことを積極的に推し進める文化

 インフラ界隈のみならず、昨今至る所で耳にする『DevOps』というキーワード。クックパッド社内では、この言葉に対して意識することはないそうです。「元々やっていたことに後から名前が付いた。そんな感覚です」と庄司氏はその違和感について語りました。

 『社員一人一人にユーザーがいる』クックパッドでは、幸せにするためのユーザーを間違えないようにしよう、という考えが根底にあるのだそうです。サービスを使ってくれる人、幸せにするユーザーは立ち位置によってそれぞれ異なりますが、その点についての意識を忘れずに、幸せにするために常に正しいことを積極的に推し進めていく。それによって良いサイクルを回すことができ、クックパッドの文化の醸成に繋がると言います。例えば「このシステム、◯◯に使いこなせるかな?というのは逆に失礼。便利だから使ってみてよ!と勧めていく方が良い」と庄司氏は一例を挙げました。

 文化を作るために留意している点として、「情報共有」「なるべくルールを作らない」「それが正しいと思ったら行動する」などのポイントを挙げつつ、庄司氏は「お前ら取りあえず、バット振れよ。正しいと思ってやっていることなら怒られない」と背中を押してくれるコメント。また庄司氏自身も、この体制に関しては「信頼ベースで動いているけれども、この体制大きくなったら破綻するんじゃないか?」と不安視していた部分もあったそうです。しかしこの点について社長と語り合う機会があり、「破綻するのかな? ユーザーさんも居るし、信頼もあるし、破綻はしないんじゃないかなぁ……」と社長が話しているのを聞き「あ、これは大丈夫だな」と感じたそうです。

 「クックパッドは安定して速度を出している。文化さえ共有してしまえば、信頼して実行していけば問題ないのではないか」とまとめ、セッションを締めました。

発表資料

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
【デブサミ2014】セッションレポート 連載記事一覧

もっと読む

この記事の著者

しんや(シンヤ)

2010年末~2013年前半位までの期間で興味のある勉強会に頻繁に参加。参加してきた勉強会のレポートブログとTogetterをひたすらまとめ続け、まとめ職人(自称/他称含む)として暫く過ごしておりました。色々な縁あってDevelopers Summit 2013では『公募レポーター』も務めました。2013年05月『出張ブロガー』を経て2013年08月にクラスメソッド株式会社へ転職。現在は業務(AWS及びその周辺技術を扱う)の...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7685 2014/03/26 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング