タグ

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

  • Cookpad TechConf 2017 提供 Wi-Fi の裏側 - クックパッド開発者ブログ

    インフラ部 id:sora_h です。 先週開催された Cookpad TechConf 2017 如何でしたでしょうか。わたしは TechConf において Wi-Fi を担当していて、こちらも好評いただいたようでなによりでした。 というわけで、この記事では TechConf 2017 における Wi-Fi についての詳細を紹介します。 ネットワーク機器設定・サーバー mitamae レシピ等の公開 https://github.com/cookpad/techconf2017-network 今回の紹介する構成のうち、ネットワーク機器およびサーバ側の設定等、ほとんどを GitHub で公開しています。参考までにどうぞ。 TechConf 2017 NOC メンバー 実は外注などはしておらず、社内 IT と SRE グループのメンバーで構成されていました。 メイン (設計・運用・設営)

    Cookpad TechConf 2017 提供 Wi-Fi の裏側 - クックパッド開発者ブログ
    key_amb
    key_amb 2017/01/26
    おぉ〜。すごい。
  • 非SPAなサービスにReactを導入する - クックパッド開発者ブログ

    投稿開発部の外村(@hokaccha)です。今回はReactについてのお話です。 ReactとSPA 最近JavaScriptやそれを取り巻くフレームワークなどの話題では、サーバ側はAPIのみを提供し、View(HTML)は全てJavaScriptで描画するような、いわゆるシングルページアプリケーション(以下SPA)についてよく語られます。 一方で、SPAを構築するにはコストがかかることも事実で、特にフロントエンドエンジニアが多くない環境では、従来通りサーバーサイドでViewを書きつつ動的な部分だけJavaScriptで処理するというアーキテクチャのほうが現実的な場合も往々にしてあります。 今回はこのような、サーバー側でHTMLを生成し、一部の動的な部分だけをReactで書くためのTipsを紹介します。 なお、基的にサーバーサイドはRails前提ですが、RailsにおけるReactの開発

    非SPAなサービスにReactを導入する - クックパッド開発者ブログ
    key_amb
    key_amb 2016/10/27
  • 来年も Cookpad TechConf やります - クックパッド開発者ブログ

    こんにちは! @yoshiori です。 今年年明けに Cookpad TechConf 2016 という、クックパッドエンジニア、デザイナーがサービスづくりの過程で得た技術的知見や経験をみなさんに発表させていただくイベントを開催させていただきました。 こういったイベントは続けてナンボ!!! ってことで来年もやります!!! 前回は会場キャパシティ 250 人の所、1000 人以上のお申込みを頂きました。 今回はその反省も含めレイアウトを変更し会場キャパシティ 350 人用意しました!!! 今年もエンジニア組織的な話から海外展開で得た知見、基盤技術、サービス開発、デザイン、機械学習など多種多様なコンテンツを用意していますので、知っている分野は更に知見が深まり、知らない分野のこともザックリ知れる。そんな一日にしたいと思っています。 一同お待ちしています! みなさま奮ってご参加ください! Co

    来年も Cookpad TechConf やります - クックパッド開発者ブログ
    key_amb
    key_amb 2016/10/21
  • MySQLを1〜2時間でスケールアウトする - クックパッド開発者ブログ

    最近、Elastic BeanstalkやECSと戦っているSREチームの菅原です。 P5をやりたいのにPS3もPS4も持っていないので指をくわえて羨ましがっている毎日です。 この記事では、突然のアクセス増に備えるために、MySQLのスレーブを1〜2時間でスケールアウトできるようにした話を書きます。 MySQL on EC2 クックパッドは周知の通りAWSを利用していますが、主要なデーターベースについてはAmazon RDSではなくMySQL on EC2を使っています。 これは以下のような理由によるものです。 歴史的な経緯: AWS移行当時、RDSが無かった。また、移行後もしばらくはTritonnを使っていたため、RDSを使うことができなかった オンラインメンテナンスの実現: VPCルートテーブルを使った仮想IPとMHA for MySQLを使ってダウンタイムゼロのマスタDBの切り替えを

    MySQLを1〜2時間でスケールアウトする - クックパッド開発者ブログ
    key_amb
    key_amb 2016/10/06
    いい話。
  • ECS を利用したオフラインジョブの実行環境 - クックパッド開発者ブログ

    技術部の鈴木 (id:eagletmt) です。 クックパッドでは以前からアプリケーションの実行環境として Docker を利用していましたが、最近は徐々に Amazon EC2 Container Service (ECS) を利用し始めています。 去年の時点での Web アプリケーションのデプロイ手法 *1 や、最近 ECS を利用してどう Web アプリケーションをデプロイしているか *2 については紹介したことがあるので、今回は定期的なバッチ処理やジョブキューを介して非同期に実行されるようなオフラインの処理について、どのような環境を構築しているか紹介したいと思います。 Docker を使う前 Docker を利用し始めるより前から社内では kuroko2 *3 というジョブ管理システムが稼動しており、複数のアプリケーションから利用されていました。 kuroko2 は定期的にジョブを

    ECS を利用したオフラインジョブの実行環境 - クックパッド開発者ブログ
    key_amb
    key_amb 2016/09/10
    hako
  • 新規アプリのデザインで心がけたい5つのこと - クックパッド開発者ブログ

    こんにちは、株式会社トクバイ出向中のデザイナー 吉井です。 まだあまりご存知ない方も多いと思いますが、株式会社トクバイは2013年にクックパッドの新規事業としてスタートした「クックパッド特売情報」を分社化し、今年7月に設立されました。 それに伴いサービス名も「トクバイ」と改め、この夏Android / iOSの両アプリをリリース致しました。 ※9月5日現在、iOSアプリはAppStoreのおすすめにフィーチャーされています! トクバイは日々の特売品やチラシ、タイムセール情報など、リアルタイムで自分の近くのお店の買物情報を閲覧できるサービスです。 私はクックパッド特売情報の頃からデザイナーとして一連のサービス開発に携わっていますが、今日はその「トクバイ」も含め新規アプリをデザインする際、私が心がけている大きなポイントを5つご紹介します。 ユーザーをしっかりと理解する まず基中の基ですが、

    新規アプリのデザインで心がけたい5つのこと - クックパッド開発者ブログ
    key_amb
    key_amb 2016/09/06
    "トクバイはチラシやタイムセールなど近くのお店の買物情報サービス"
  • Ruby on Rails アプリケーションにおけるモンキーパッチの当て方 - クックパッド開発者ブログ

    技術部の牧です。 今日はモンキーパッチの話をします。 モンキーパッチとは何か そもそもモンキーパッチ (monkey patch) とは何でしょうか? 端的に言えば、言語の組み込みクラスやライブラリ、その他外部ライブラリの挙動を、動的に拡張する仕組みをモンキーパッチと呼びます。 *1 例えば、Ruby のモンキーパッチのすごく単純な例として以下のようなものがあります。 module NilClassExtension def empty? true end end NilClass.prepend(NilClassExtension) インスタンスが空であるかどうかを判定するメソッドとしての #empty? は String や Array など様々なクラスに存在しますが、 nil を唯一のインスタンスとする NilClass には来は存在しません。 このモンキーパッチを導入することで

    Ruby on Rails アプリケーションにおけるモンキーパッチの当て方 - クックパッド開発者ブログ
    key_amb
    key_amb 2016/08/31
  • 画像の認識・理解シンポジウムMIRU2016に参加してきました - クックパッド開発者ブログ

    こんにちは。人事部の小久保です。 8月1日(月)〜4日(木)の4日間、画像の認識・理解シンポジウムMIRUに研究開発部のメンバーと参加してきました。今回は、MIRUの内容やなぜ参加してきたのかについてご紹介したいと思います。 MIRUとは 今回で19回目を迎える画像の認識・理解シンポジウムで、画像の認識と理解技術に関する国内最大の会議です。 具体的には、研究者や技術者、学生が基礎から応用までさまざまな最新の研究発表をし、討論をする場となっています。今回は静岡の浜松で開催されました。 各自の発表内容は1枚のポスターにまとめられたものが展示されており、それぞれポスターの前で紹介する形になっています。発表やデモセッションに加えて、特別講演も別会場で行われました。 クックパッドの取り組み クックパッドは今回初めてMIRUに参加したのですが、企業展示という形でブースで発表をしました。 毎日午前中には

    画像の認識・理解シンポジウムMIRU2016に参加してきました - クックパッド開発者ブログ
    key_amb
    key_amb 2016/08/23
  • 開発速度を上げるための Pull-Request のつくり方 - クックパッド開発者ブログ

    こんにちは、投稿開発部の森川 (@morishin127) です。クックパッド、お料理アルバム、みんなのお弁当の iOS アプリの開発等に携わっています。 クックパッドでの開発は GitHub Enterprise 上で行われており、書いたコードをプロダクトに取り込む前には基的に第三者のコードレビューが必須です。コードレビューはプロダクトの品質向上に貢献していますが、往々にして結構な時間と労力がかかるものです。Pull-Request を出してレビューをしてもらい指摘の修正を繰り返していると、場合によってはマージに数日〜1週間ほどかかってしまうこともあります。自分の開発速度を速めるため、また周りのエンジニアの開発速度を下げないためにレビューしやすい Pull-Request を出すことは重要です。この記事ではレビューしやすい Pull-Request のために心がけていることを紹介したい

    開発速度を上げるための Pull-Request のつくり方 - クックパッド開発者ブログ
    key_amb
    key_amb 2016/08/17
    UIの変更にbefore/afterのスクショを並べたり、アニメGIF使うのいいな。
  • OpenSTFでAndroidのCIを2倍早くする - クックパッド開発者ブログ

    はじめまして!技術部モバイル基盤グループの加藤(@k0matatsu)です。 業務の一部でCIお兄さんとしてJenkins氏のメンテナンスなどを行っています。 今日はをにする話をしたいと思います。 CI待ち時間1/2で PR/レビューのサイクルの速さ2倍(当社比)です。 ※ ビルド所要時間のボトルネックは環境やジョブ内容によって異なるため効果には個人差があります。 当社のAndroid CI環境 さて、開発効率を2倍にする前に、まずは当社のCI環境がどうなっているか説明が必要ですね。 当社のAndroid向けCI環境は幾つかの試行錯誤を経て、現在はAmazon Web Service(AWS)を使って構成されています。 下図のように、Amazon EC2(EC2)インスタンス上に構成管理ツール:itamaeを使って作成されたJenkinsのmaster/slave構成を擁し、その中でAnd

    OpenSTFでAndroidのCIを2倍早くする - クックパッド開発者ブログ
    key_amb
    key_amb 2016/08/16
  • Android/iOSアプリのテストの区分戦略 - クックパッド開発者ブログ

    技術部の松尾(@Kazu_cocoa)です。 クックパッドのモバイルアプリ開発では、どのようなテストを書き、どのようなタイミングで、どのようなテストを実施するか?に関してエンジニア各位が意識を合わせるためにテストサイズを定義し運用してきました。ここでは、そんなテストサイズに関して簡単ですがまとめておこうと思います。 テストサイズとは ソフトウェアテストに関わったことがある方なら テストレベル という言葉には出会ったことがあるかと思います。JSTQBでは、このテストレベルは"管理していくテストの活動のグループ"と定義しています*1。 そうでない方も、俗に言う単体テスト/統合テストなど聞いたことがあるかと思いますが、その区分がここで示しているテストレベルとなります。 一方、このテストレベルはV字型と言われる開発工程と合わせて世の中で広く使われているため、社内における共通認識を構築するにあたり個

    Android/iOSアプリのテストの区分戦略 - クックパッド開発者ブログ
    key_amb
    key_amb 2016/08/13
    流し読みだけど、考え方として参考になりそうな気がする。
  • データベースドキュメント管理システム dmemo のご案内 - クックパッド開発者ブログ

    こんにちは、みんなのウェディングに出向中の小室 (id:hogelog) です。 今回はクックパッドとみんなのウェディングで利用しているデータベースドキュメント管理システム dmemo を紹介します。 https://github.com/hogelog/dmemo dmemo を作成し導入した経緯 私は2016年3月頃からみんなのウェディングで Redshift, bricolage, embulk, re:dash 等を利用したデータ分析基盤の構築を進めています。 (みんなのウェディングのデータ分析基盤の現状 - みんなのウェディングエンジニアリングブログ) 社内の誰でも扱えるデータベース、データの集約・計算・加工、ダッシュボードの作成、クエリの共有などは上記ブログ記事でも書いたように Redshift, bricolage, embulk, re:dash 等を組み合わせることで実現

    データベースドキュメント管理システム dmemo のご案内 - クックパッド開発者ブログ
    key_amb
    key_amb 2016/08/08
  • ActiveRecordを使ってRedshiftから大量のデータを効率的に読み出す - クックパッド開発者ブログ

    こんにちは、トレンド調査ラボの井上寛之(@inohiro)です。 普段は、クックパッドの検索ログを基にした法人向けデータサービス「たべみる」の開発や、 広告事業周辺のデータ分析などを担当しています。 Amazon Redshiftなどのデータベースに蓄積されたログなどの大量のデータに対して、 日次や週次などの単位でバッチ処理を行っている方は多くいらっしゃると思います。 ログなどを扱うバッチ処理では、処理対象が膨大であるとアプリケーションが使うメモリが増大し、 枯渇してしまう恐れもあるため、データの扱いに気をつける必要があります。 データベース内で完結するバッチ処理ならばそこまで気にする必要は無いかもしれませんが、 外部のプログラムからデータを読み出して処理する場合は特に注意が必要です。 そこで考えられる一つの工夫として、処理対象を分割して、繰り返して処理を行う方法が挙げられます。 一般的な

    ActiveRecordを使ってRedshiftから大量のデータを効率的に読み出す - クックパッド開発者ブログ
    key_amb
    key_amb 2016/07/01
  • そのメールアドレス、現在も使っていますか? - クックパッド開発者ブログ

    こんにちは。ユーザーファースト推進室ディレクターの大黒です。 ありがたいことにクックパッドは今年で20年目をむかえ、数多くのユーザーに利用されるまでに成長しました。それ故に発生する課題もあり、今回はその中でもユーザー登録に使われているメールアドレスの課題と対策をご紹介したいと思います。 ユーザー登録の仕組み クックパッドのユーザー登録では、下記の項目が必要となります。 メールアドレス パスワード 郵便番号 生年月日 ※iOSアプリでは郵便番号と生年月日は任意入力となります SNSアカウント認証や認証コードでのアクティベートを採用するサービスが今では主流ですが、20年続くサービスであれば一般的なユーザー登録フローではないでしょうか。しかしながら最近のスマートフォンユーザーの多くはメールを使わないという実態も分かっているため、ユーザー登録にメールアドレスを使い続けるかどうかは、別途議論を進めて

    そのメールアドレス、現在も使っていますか? - クックパッド開発者ブログ
    key_amb
    key_amb 2016/06/29
    取得したメアドを昔使っていた人が登録していたサービスにログインできてしまったら…と考えると確かに少し怖い。
  • 実践 Pact:マイクロサービス時代のテストツール - クックパッド開発者ブログ

    技術部の taiki45 です。 以前「サービス分割時の複雑性に対処する: テスト戦略の話」という記事で、サービス間のインテグレーションテストにおける問題について紹介しました。現在のクックパッドではこの問題の解決のために Pact というツールを導入して運用しています。この記事では、その運用の知見を紹介できればと思います。 Pact Pact は Consumer-Driven Contract testing (CDC testing) を実現するためのツールです。"Consumer"、"Provider" という見慣れない単語が出てきますが、この記事ではだいたい「Consumer = Web API クライアント」、「Provider = Web API サーバー」と対応ができます。この記事では具体的な Pact の利用例を通じて CDC testing がどういうものなのかについても

    実践 Pact:マイクロサービス時代のテストツール - クックパッド開発者ブログ
    key_amb
    key_amb 2016/06/28
  • 開発コストを最小限にして施策を進める - クックパッド開発者ブログ

    投稿推進部・ディレクターの中山です。 普段ディレクターはエンジニアとペアを組んでサービス開発をすることが多いですが、エンジニアが別の開発に集中したい時は、ディレクターだけで施策を進めることもあります。エンジニアがいないと動くものができない…と言っていては何もできません。 既に多くのディレクターの方が試していることかもしれませんが、実装に入る前に紙レベルでモノを作ってテストしたり、一般に出回っているツールを活用してみたり…と方法は色々とあります。私がここ数ヶ月で実践してきたことを、おさらいも兼ねてご紹介したいと思います。 方法1:紙でイメージを膨らませる サービスを考える際、いきなり実装に入ることはまず無いと思います。 当たり前の話かもしれませんが、スピーディにイメージを掴むには手書きが便利。何度も書いたり直したりしつつ頭の中のイメージを具体化し、周囲のスタッフに当ててみることがができます。

    開発コストを最小限にして施策を進める - クックパッド開発者ブログ
    key_amb
    key_amb 2016/06/15
  • インフラ新卒研修と社内ISUCONのはなし - クックパッド開発者ブログ

    インフラ部の荒井(@ryot_a_rai)です。 今年の4月、弊社には11名の新卒エンジニアが入社しました。そして現在、3ヶ月間の研修を受けています。ビジネスマナーから技術研修まで幅広く行われていますが、その中で5月下旬におこなったインフラ研修とその後の社内ISUCONについてご紹介します。 インフラ研修(講義) インフラ研修はインフラ部に配属されるエンジニアに限らず、全新卒エンジニアが参加する研修です。日常業務でコードを書いてサービスを開発していくうえで知っておいてほしい、インフラに関する基礎知識や共通言語を獲得することを目的としています。合計3日間をインフラ部の@kani_bと分担して講義しました。研修内容の内容はざっくりと以下のようなものです。 1日目 インターネットとは ブラウザでウェブサイトを閲覧する際になにが起きているのか IPからHTTPまでざっくりと Webインフラアーキテ

    インフラ新卒研修と社内ISUCONのはなし - クックパッド開発者ブログ
    key_amb
    key_amb 2016/06/14
  • ImageMagickのピクセルキャッシュとリソース制限 - クックパッド開発者ブログ

    こんにちは、成田(@mirakui)です。今日はみんな大好き ImageMagick チューニングのお話です。 2016/5/13 に公開された、いわゆる ImageTragick と呼ばれる脆弱性では、 policy.xml というファイルを更新するという workaround が紹介されていたのは記憶に新しいと思います。 この policy.xml は、今回の workaround のようにファイルタイプを制限するだけではなく、画像の縦横ピクセル数、利用するメモリやディスクのサイズなどを制限することができます。 Web サービスなどでユーザのアップロードした画像を ImageMagick で変換する場合、このようなリソース制限を適切に行うべきでしょう。 そこで今回は policy.xml によるリソース制限方法を紹介します。 前提 特に明記しない限り、2016/05/14 現在の 6

    ImageMagickのピクセルキャッシュとリソース制限 - クックパッド開発者ブログ
    key_amb
    key_amb 2016/05/18
    便利情報だ。
  • オープンソースライセンスの管理を楽にする -Android アプリ編 - クックパッド開発者ブログ

    2020年01月現在の近況については下記のエントリを参照してください techlife.cookpad.com こんにちは、投稿推進部の吉田です。 オープンソースライセンスの管理はアプリ開発における悩み事の一つですよね。今回はこの煩雑な作業をgradleプラグインを使って自動化する話をします。 稿におけるライセンスの管理とは、OSSライブラリの著作権者とライセンス文の管理に限定されることを予めご了承下さい。 紹介するgradleプラグイン cookpad/license-tools-plugin license-tools-pluginが提供する機能 yamlを使ったオープンソースライセンスの管理 ライセンス追記漏れのチェック ライセンス一覧のhtmlの作成 license-tools-pluginの利用方法 複雑な設定は必要なく、3ステップでライセンス一覧を管理することが出来ます。 プ

    オープンソースライセンスの管理を楽にする -Android アプリ編 - クックパッド開発者ブログ
    key_amb
    key_amb 2016/04/28
    へ~
  • オープンソースソフトウェアポリシーをつくろう - クックパッド開発者ブログ

    こんにちは、みんなのウェディング 高井です。 みんなのウェディングやクックパッドといったインターネットサービス企業では、オープンソースソフトウェアは欠かすことのできない存在です。LinuxMySQLRubyRailsといった主要なものをはじめとして、テクノロジースタックのほとんどがオープンソースソフトウェアによって構成されいるといっても過言ではありません。 ですから、企業としてどのようにオープンソースソフトウェアに向きあうかということが、とても重要な問題になります。そして、そのための指針が、オープンソースソフトウェアポリシーです。 今回は、クックパッドがどのようにオープンソースソフトウェアポリシーをつくったか、その背景も含めてをご紹介いたします。 クックパッドとオープンソース 今でこそクックパッドは、多くのオープンソースソフトウェアを公開したり、その開発に貢献したりする会社となってい

    オープンソースソフトウェアポリシーをつくろう - クックパッド開発者ブログ
    key_amb
    key_amb 2016/04/18