サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Pixel 9
engineering.pixiv.net
こんにちは。 休日のゲームライフを充実させるため、せっせとエンジニアリングブログを書いています、ソフトウェアエンジニアのサイリュムです。 今回はpixiv.comのサーバ構成について簡単に紹介したいと思います。 国際版 pixiv.comのウェブアプリケーション部分はRuby on Rails 3.2系で作成しています。 ユーザとのやりとりを行うフロントエンド部分はRailsに任せ、データのやり取りや複雑なロジックは後述する内部APIに任せています。 nginx + unicorn Rackサーバにはunicornを使っており、nginx + unicornな構成を取っています。 nginxとunicornはunix domain socketで通信を行うようにしています。WEBアプリケーションサーバに乗っている静的なコンテンツはnginxが返し、動的ページへのリクエストはRailsが処理
近頃愉快な仲間たちとロックマン&バイオハザードの制限付きプレイを楽しんでいるインフラ兼ソフトウェアエンジニアのbokkoです。(ロックバスターオンリー & E缶禁止があんなに難しいとは思いませんでした…) 先週末の9/27~29に東京大学伊藤国際学術研究センターで開催されたYAPC::Asia 2012にスピーカーとして参加してきました。以下はその際に使用した資料になります。 pixiv thumbnails 資料中で述べられている画像アップロードの非同期化は僕がピクシブに入社して最初に担当した仕事で、非常に思い出深いものです。 その後も精力的にチューニングを行った甲斐もあって1作品あたりの画像のアップロードやサムネイルの生成にかかる時間は僕の入社当時と比べて数倍短くなりました。 また、サムネイルの生成方法についても見直しを行って参照頻度の低いサムネイルはmod_small_lightで
「お前はvim派?それともemacs派?」「Xcode派」 社内で肩身の狭い思いをしているiOS担当のshobyです。Xcodeも慣れると使いやすいですよ。 さて、今回はGHUnitというテストフレームワークを用いて、非同期通信の単体テストを行う方法を紹介します。 GHUnitとは GHUnitとはMac OS X、 iOS用の単体テストフレームワークです。 Xcode標準のテストフレームワークであるSenTestingKitと互換性があり、 標準フレームワークには無い多くの便利な機能を持っています。 SenTestingKitと比べたGHUnitの利点は以下の通りです。 非同期処理のテストが容易 通信等のテストを簡単に記述できる 実機上でのテストが容易 アプリケーションとして端末上で実行される メモリ容量の制限等、ハードウェアに影響を受ける処理のテストを行える テストを部分的に実行可能
先月末にwww.pixiv.netのバージョン管理をSubversionからGitに移行できてホッとしているインフラ兼ソフトウェアエンジニアのbokkoです。 pixivのSubversionリポジトリには\( ^ o ^ )/ディレクトリなるものが存在していて、開発が終了したプロジェクトやもう使われなくなったソースコードはremoveされるのではなく、 この\( ^ o ^ )/ディレクトリにmoveされます。 www.pixiv.netもGitに移行した後、{trunk,branches,tags}のすべてを\( ^ o ^ )/へmoveしましたが、あまりにも巨大過ぎて「svn move -> commit」が完了するのに1時間半かかりました。おそらく僕の人生の中で最も時間のかかったコミットとして全僕の中で語り継がれるのではないかと思います。 最近は弊社でも「最初に触れたバージョン管
Zoff PCのカラータイプ眼鏡を愛用しているインフラ兼ソフトウェアエンジニアのbokkoです。 夏休みは山登り -> 温泉で悠々自適に過ごしてましたが、休み明けから筋肉痛で体のあちこちが痛いです(><)。 今回はpixivで活用しているデータストアやその周辺ミドルウェアの話を3回くらいに分けてしようと思います。 pixivを支えるデータストア pixivでは主に以下の2つをデータストアとして活用しています。 MySQL KyotoTycoon MySQL pixivではユーザやイラスト、ブックマーク、あるいはそれらに関連した情報といったサービスの根幹に関わるデータはMySQLに保存しています。 これはMySQLの高い信頼性のほかに、ピクシブ社内でMySQLの運用に関するノウハウが蓄積されていたり、自作の運用ツール群が充実しているというのが大きな理由です。 KyotoTycoon Kyot
こんにちは、はじめまして。 pixiv.comのバックエンドAPIを作成しています、ソフトウェアエンジニアのサイリュムです。 pixiv.comではバッグエンドAPIをDebianのsqueezeに野良ビルドして入れたPHP5.4.xで動かしているのですが、最近PHPの更新頻度が高くて困ります。 なるべく更新の手間を押さえるため、pixivではDebianパッケージの作成まで自動で行うPHP5.4パッケージ自動生成スクリプトを作成して対応しています。 今回はそのスクリプトの一部を紹介しつつ、2012年8月21日現在の最新版であるPHP5.4.6のビルド手順を紹介したいと思います。 ビルドの準備 まずはPHPのビルドに必要なパッケージ群をaptを使ってインストールしておきます。 1 apt-get build-dep php5 これでビルドに必要な環境は揃いました。 早速最新のソースをダウン
このブログでは初めまして。7つも8つもブログを持っているのに入社してからめっきりブログを書くペースが落ちてしまったedvakfです。 僕は昔からライブラリとかフレームワークというものにほとんど興味がなく、入社するまではjQueryすらほとんど使わずに生のDOMをJavaScriptでゴリゴリ触ってたクチなんですが、いやー、やっぱりjQueryは使いやすいですねー。 そんな僕ですが、会社で使っているライブラリぐらいは見ておこうと、ピクシブ百科事典というサービスを見ていたら、Highcharts.jsなるものがありました。はてなブックマークでは2009年に発見されていて、既に400を超えるブックマークがあるんですね。 Highcharts.jsは商業利用は有料ですが、非商業利用は無料です(ピクシブではもちろん有料版を利用しています)。 デモをjsFiddle上でフォークして弄りながら見た目を調
ご挨拶エントリに引き続きインフラ兼ソフトウェアエンジニアのbokkoです。 記念すべき第一回目のエントリは拙作のソフトウェアであるngx_small_lightについて紹介させていただきます。 ngx small lightView more presentations from Tatsuhiko Kubo. ngx_small_lightは簡単に言うとNginxで画像変換を行うための拡張モジュールで、 mod_small_lightというApacheモジュールをNginx用に移植したものです。 元々pixivではサービスで使われている一部のサムネイルをpixiv用に改造したmod_small_lightで動的に生成しているのですが、 それと同時にApacheよりも柔軟な設定を記述しやすいNginxをアプリケーションサーバ群や画像キャッシュサーバ群のフロントサーバとして ヘビーに活用して
皆様はじめまして。ピクシブのインフラ兼ソフトウェアエンジニアのbokkoです。 この度ピクシブでもエンジニアによるブログを開始することになりました。 ピクシブではLAMPスタックをはじめとする様々なOSSを積極的に活用することはもちろん、時には独自のツールやソフトウェアを開発・運用することで サービス全体で400万を越えるユーザ数と月間約30億にもなるPV、また6Gbpsを越えるトラフィックを支えています。 本ブログではそういったpixivを支えるエンジニア達が開発しているソフトウェアやインフラストラクチャの裏側、 それらを運用していく中で培ってきたノウハウや技術的なTips、そしてイベントのお知らせやレポートについて全30回の予定でお伝えしていきます。 できるだけコンスタントに更新していこうと思っていますので今後ともよろしくお願いいたします。 また本ブログのTwitterアカウントは@p
HHKB Professional Type-Sが欲しいインフラ兼ソフトウェアエンジニアのbokkoです。 普段はHHKB Proの日本語配列キーボードを愛用しています。英語配列は苦手です。このことを同僚のエンジニアに言うとジト目で見つめられ・・・睨みつけられること請け合いです。 本連載の最後となる今回はpixivのデータストア/キャッシュ戦略を支える周辺ミドルウェアについて解説していきます。 memcachedからKyotoTycoonへ移行した際に発生した問題 前回の記事の最後にもあったようにpixivではAPの数だけあったmemcachedへのリクエストを少数のKyotoTycoonにまとめたことで一部のKyotoTycoonサーバへのTCPコネクション数が爆発してKyotoTycoonサーバのCPUやメモリリソースには余裕があるのにネットワークで詰まるという問題が起こりました。 元
このページを最初にブックマークしてみませんか?
『pixiv inside [archive]』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く