タグ

ブックマーク / devpixiv.hatenablog.com (8)

  • 割れ窓理論を導入してWebサービスのクオリティに直結した話 - pixiv inside [archive]

    ピクシブ株式会社 Advent Calendar 2016 @8日目の記事です。 こんにちは、エンジニアのdo7beです。pixivFANBOXの開発などに携わっています。 さて、今回は新規開発プロジェクトに「割れ窓理論」を導入してサービスのクオリティ向上に繋がった話をご紹介したいと思います。 割れ窓理論とは 「割れ窓理論」とは、アメリカの犯罪学者ジョージ・ケリング氏が提唱した「建物の窓ガラスが割れたまま放置されると住民もゴミを捨てるようになり、治安が悪化し、より重大な犯罪が発生してしまう」という理論です。 つまり軽犯罪を取り締まることこそが、重大な犯罪を防ぐために重要であることを指しています。 私たちのチームではこれをWebサービスの新規開発プロジェクトに取り入れています。 WEBサービスにおける割れ窓は「軽度のデザイン崩れ」や「表記ゆれ」に、重大な犯罪は「バグ」や「全体のクオリティ低下

    割れ窓理論を導入してWebサービスのクオリティに直結した話 - pixiv inside [archive]
  • 大量接続に耐えるWebSocketアプリケーションサーバ構築のコツ - pixiv inside [archive]

    WebSocketの扱うサービスでは、長時間のコネクション、再接続処理、プロキシ、ロードバランサなど、インフラの面で多くの問題を抱えがちです。弊社のサービス「pixiv」の9周年企画でも、この問題に直面しました。 実際にそこで構築したインフラの事例をもとに、運用に使えるWebSocketサーバの構成について、pixivインフラ部の南川からご紹介します。 * 9周年企画 “黒歴史”をロケットで宇宙に飛ばす pixiv歴史 そもそも WebSocket とは? WebSocketはTCP上で動く双方向通信のための通信規格です。 Webページの読み込みで行われているような、クライアントがサーバにデータを要求し、サーバはクライアントにレスポンスを返すというHTTPの通信ルールとは違います。サーバと長時間コネクションを確立し、Socketのようにデータのやり取りを行います。そして、コネクションを

    大量接続に耐えるWebSocketアプリケーションサーバ構築のコツ - pixiv inside [archive]
  • 社内ISUCONを公開したら広く使われた話 - pixiv inside [archive]

    ISUCON6の出題者の1人の@catatsuyです。 ISUCON6予選が開催されましたが、結果はどうでしょうか。期待通りの結果になりましたか? ところで以前に紹介したように、我々が開催した社内ISUCONの問題はソースコード・AMIともに公開しています。 inside.pixiv.net github.com 各社のISUCONを愛する人達が、社内ISUCONの問題を作成して開催したという話は聞きますが、問題が公開されているケースはあまり聞きません。今回は社内ISUCONを公開し、簡単に試せるようにしたことでどのような反応が得られたのか紹介します。 事例 我々が見つけた事例を紹介します。もし漏れがあればtwitterなどで教えていただければ幸いです。 NTTコミュニケーションズさんの研修として使われたそうです。 社内ISUCONノウハウ 大公開 - Qiita KLabさんは5回に渡る

    社内ISUCONを公開したら広く使われた話 - pixiv inside [archive]
  • 面倒な外部コマンドをAWS Lambda化して運用から解放される - pixiv inside [archive]

    最近は社内でChainerやTensorFlowのハンズオンをしている@edvakfです。 今日は機械学習ではなく、AWS Lambdaの話です。 pixivPDF生成機能 pixiv小説には自分の投稿した小説を印刷可能な縦書きPDFに変換する機能があります。 inside.pixiv.net 小説PDF化する部分は最初インターン生が作ったものが元になっていて、C++で書かれています。そのプログラムに渡すデータを用意する部分はというと、これまたインターン生が作ったpixiv-novel-parserと、小説文を組版に最適な形式に自動変換するhakatashi/osekkaiいうNode.jsのプログラムを使って生成しています。 サービスにC++のコードを導入するのって勇気がいりますよね? もし入力ファイルによって任意のコードが実行できる脆弱性があったりすると大問題です。そのため、この

    面倒な外部コマンドをAWS Lambda化して運用から解放される - pixiv inside [archive]
  • ISUCON6出題チームが社内ISUCONを開催!AMIも公開!! - pixiv inside [archive]

    ISUCON6の出題者の1人の@catatsuyです。 GW直前の4/28、年度入社の新卒エンジニア全員と社内のエンジニアほぼ全員が参加するイベントとして社内ISUCONを開催しました。 同じく出題者の1人である@edvakfの記事でも書いたように、今年のISUCON6では株式会社はてなさんと弊社で共同出題する予定です。 inside.pixiv.net 今回は弊社のISUCON6出題チームの4人で開催した社内ISUCONの様子を紹介します。 社内ISUCON 時間は12:30から19:00まで行いました。営業日に会社のエンジニアのほとんどが参加するイベントなので、午後を割り当てる形にするぐらいが良いのではないでしょうか。今回は新卒研修の一環としての側面があったので、新卒エンジニアにはISUCON事前ハンズオンとしてこのような内容の講義を行いました。 初期実装 初期実装の言語は『Ruby

    ISUCON6出題チームが社内ISUCONを開催!AMIも公開!! - pixiv inside [archive]
  • 秒間50kリクエストを捌くノウハウがこの1冊に!nginx実践入門 - pixiv inside [archive]

    こんにちは、@harukasanです。ピクシブでは3年以上にわたってHTTPサーバにnginxを採用しています。これらのノウハウが詰まった「nginx実践入門」が1/16(土)、技術評論社から発売されることになりました。 この記事では書からピクシブで良く使われているnginxのテクニックについてかいつまんで紹介します。 すべてのリクエストを受け止めるnginx ピクシブのたくさんあるサービス(pixivpixiv Spotlight、pixivコミック、ピクシブ百科事典……)のどこかにHTTPリクエストを投げると、複数台あるフロントサーバのどれかに届きます。実際にアプリケーションを処理するのはフロントサーバの裏側にいるアプリケーションサーバです。これらのサーバにはPHPだったり、Ruby on RailsだったりPlay/Scalaだったりいろんなアプリケーションがデプロイされています

    秒間50kリクエストを捌くノウハウがこの1冊に!nginx実践入門 - pixiv inside [archive]
  • PHP初心者が仕事で躓いた4つの罠 - pixiv inside [archive]

    こちらはピクシブ株式会社 Advent Calendar 2015の2日目の記事です。 こんにちは。Vimエンジニアの kana です。 さて、皆さんもご存知の通り、WebサービスpixivにはPHPが使用されています: PHPについては様々な噂を聞き及んでいた為、 これまでPHPとは関わらないように注意して過ごしてきましたが、 pixiv.netの開発ではPHPを避けて通ることは出来ません。 仕方なくPHPを使うことになる訳ですが、 実際に使ってみると……これが予想していた以上に様々な方向から毎日新鮮な驚きを届けてくれます。 今回は実際に遭遇したPHP初心者が躓くポイントを幾つか紹介しようと思います。 switch の中で continue したら switch の直後に飛ぶ 大量のデータをループでぶん回して処理するのはよくある話です。 その中で特定の種類のデータについては処理をスキッ

    PHP初心者が仕事で躓いた4つの罠 - pixiv inside [archive]
  • pixivのデプロイを支えるpploy - pixiv inside [archive]

    メリークリスマス。@edvakfです。 以前にpixivの開発・デプロイ環境の変遷(2014年春版)という記事を書いたのですが、その後もpixivのデプロイ環境は変化し続けています。 今日はpixivで使っているpployというツールについて、半分社内向け資料のつもりで無駄に詳しく書いてみたいと思います。ちょうど年末だし「社内属人コードのドキュメント充実化デイ」をやりたいよねーって話をしていたところでもありますし。 一度社内で行ったプレゼンから抜粋した8ページだけの小さなスライドも公開したので忙しい方はどうぞ。 pployとは デプロイといえばcapistranoやminaなどのスクリプトを手動で実行している人もいると思いますが、pployはcapistranoなどの代替ツールではなく、サーバー上でcapistranoなどを実行するためのウェブアプリケーションです(webistranoの代

    pixivのデプロイを支えるpploy - pixiv inside [archive]
  • 1