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

  • Chaos Engineering やっていく宣言 - クックパッド開発者ブログ

    技術部のヨシオリです。 Netflix が Chaos Engineering の論文を公開して 2 年ほど経ちました。 クックパッドは最近、 Chaos Engineering を導入する事を決めました。 この記事ではその背景を紹介したいと思います。 そもそも Chaos Engineering とは Netflix では Failure Injection Testing として、営業時間中に意図的に障害を起す事をやっていました。Chaos Monkey というインスタンスとサービスを落すものから Chaos Gorilla、Kong という availability zone や region 単位で障害を発生させるものなどです。 その経験から Chaos Engineering というものが提唱されました。 Principles of Chaos Engineeringによれば C

    Chaos Engineering やっていく宣言 - クックパッド開発者ブログ
    matsumoto_r
    matsumoto_r 2018/08/02
    素晴らしい
  • Ruby の NODE を GC から卒業させた - クックパッド開発者ブログ

    こんにちは、技術部のフルタイム Ruby コミッタの遠藤(@mametter)です。メリークリスマス。 Ruby 2.5.0 がリリース予定です。いろいろな改善が含まれています。クックパッドからの主な貢献としては、「trace 命令の削除による高速化」や「分岐・メソッドカバレッジの測定のサポート」などがあります。 ユーザから見える改善はいろいろと記事が出てくると思うので、この記事では、「抽象構文木のメモリ管理のリファクタリング」というあまりユーザから見えない改善を紹介してみます。 概要 Ruby のパーサは、NODE という内部的なオブジェクトで構成された抽象構文木を生成します。2.4 までの NODE は GC に管理される普通のオブジェクトでしたが、2.5 からは GC の外で管理するようになりました。これにより、3 つ嬉しいことがあります。 大きなコードのパースが速くなりました

    Ruby の NODE を GC から卒業させた - クックパッド開発者ブログ
  • 時系列データベースに関する基礎知識と時系列データの符号化方式について - クックパッド開発者ブログ

    こんにちは。インフラストラクチャー部 SRE グループの吉川 ( @rrreeeyyy ) です。今期オススメのアニメはツインエンジェル BREAK です。 普段の業務並びに趣味の一環として、サーバのモニタリング環境の調査や改善に取り組んでいます。 そこで稿では、モニタリングのコンポーネントの一つとして外すことが出来ない、時系列データベースの基礎知識に関して紹介します。 そもそも時系列データ・時系列データベースとは? 時系列データというのは、特定の時間ごとに何らかの値を取得した際の、取得した一連の値を指します。 例えば、以下のようなフォーマットをしたデータなどは時系列データにあたるでしょう。 timestamp1,key,value1 timestamp2,key,value2 timestamp3,key,value3 : 時系列データベースとは、上記のような時系列データの保存・処理に

    時系列データベースに関する基礎知識と時系列データの符号化方式について - クックパッド開発者ブログ
    matsumoto_r
    matsumoto_r 2017/05/31
    良いまとめ。読みやすい
  • オープンソースソフトウェアポリシーをつくろう - クックパッド開発者ブログ

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

    オープンソースソフトウェアポリシーをつくろう - クックパッド開発者ブログ
    matsumoto_r
    matsumoto_r 2016/04/18
    おお、と思ったけどポリシー自体は公開されてなかった。でも大切な話なので各社色々考えるのも大事だなぁ
  • クックパッドのサーバプロビジョニング事情 - クックパッド開発者ブログ

    インフラ部の荒井(@ryot_a_rai)です。この記事ではクックパッドで利用しているプロビジョニングツール "Itamae" の紹介と細々した Tips を紹介します。 式年遷宮とプロビジョニングツール 現在、弊社ではインフラの式年遷宮*1を進めています。式年遷宮以前、弊社では Puppet を利用してサーバをセットアップしていましたが、式年遷宮に際して既存のプロビジョニングに関するコードは捨てることになるため、プロビジョニングツールの再検討を行うことになりました。 Puppet, Chef, Ansible, SaltStack を検討した結果、 言語特性の観点では、Ruby DSL な Chef が良い アーキテクチャ・エコシステムの観点では、シンプルな Ansible が良い といった点から、どれも決め手に欠ける状況で、Ruby DSL で記述できるシンプルなプロビジョニングツール

    matsumoto_r
    matsumoto_r 2015/05/12
    昨晩itamaeデビューして色々感想つぶやいていて、と思ってたら翌日にはこのタイミング良すぎる記事で、まーもう使うことに決めた!
  • Infratasterでリバースプロキシのテストをする - クックパッド開発者ブログ

    インフラ部の荒井(@ryot_a_rai)です。この記事ではインフラの振る舞いテストのツールであるInfratasterを使ってリバースプロキシの設定のテストをしてみたいと思います。 Infratasterとは Infratasterはインフラの振る舞いをテストするフレームワークで、RSpecのテストヘルパとして機能します。例えば、 特定のヘッダ付きのHTTPリクエストを送信した時にあるレスポンスヘッダが返ってくることをテストする Capybaraを使って実際のWebブラウザ上での挙動をテストする MySQLのSHOW VARIABLESの結果をテストする といったことが可能になります。 細かい概要についてはこちらのスライドやREADMEをご覧ください。 Serverspecとの違い インフラのテストといえばServerspecが有名かと思いますが、InfratasterはServersp

    Infratasterでリバースプロキシのテストをする - クックパッド開発者ブログ
    matsumoto_r
    matsumoto_r 2014/11/19
    mod_mrubyやngx_mrubyはmrubyで書いた自前のテストツール使っているが、置き換えに良さそうだなー
  • OS X キーチェーンから環境変数をセットするツールを作りました - クックパッド開発者ブログ

    こんにちは、技術部の福森 (@sora_h) です。 最近は環境変数に API トークンや credential といった認証情報を入れる事が増えてきています。 たとえば、AWS を利用するツールでは AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY といった環境変数にだいたいの場合で対応しています。 そのため、~/.bashrc や ~/.zshrc などシェルの設定に export を書いておき常に使える状態にしている方も多いと思いますが、 それって実は危険ではないでしょうか? 例えば、下記のようなリスクが考えられます: 意図せず情報が利用されて意図しない副作用が発生してしまう危険性 番に変更を与えるつもりはなかったけれど事故を起こしてしまう等 悪意のあるスクリプトを実行した際に環境変数を送信などされてしまう危険性 事故や漏洩を防ぐためにも、筆者はかな

    OS X キーチェーンから環境変数をセットするツールを作りました - クックパッド開発者ブログ
    matsumoto_r
    matsumoto_r 2014/06/05
    認証に関わるデータを環境変数に入れて使う上では良いと思う。
  • Cookpad の本番環境で使用している Ruby が 2.0.0-p0 になりました - クックパッド開発者ブログ

    技術部・開発基盤グループの村田です。 クックパッド日から、番環境を Ruby 2.0.0-p0 に移行しました。Ruby 2.0.0-p0 は 2013年2月24日にリリースされた Ruby の最新バージョンです。新しい Ruby を使って気持ち良く開発するために、できるだけ早く Ruby をバージョンアップしようと尽力してきた結果が実りました。 Ruby のバージョンアップでレスポンスが高速になった クックパッドRuby 2.0.0 に対応したことで、ユーザと開発者の両者にとって、これまでよりも快適になっています。 Ruby のバージョン移行は、Ruby Enterprise Edition から Ruby 1.9.3-p392 を経由して Ruby 2.0.0-p0 へと段階的に実施しました。Ruby を Enterprise Edition から 1.9.3、そして 2.0

  • 1