ピクシブにおける技術選択
Rubyビジネスセミナー 大阪
2024-01-29

pixiv Inc.
Harukasan / Michii Shunsuke© pixiv Inc.

Harukasan / 道井 俊介
ピクシブ株式会社 執行役員 CTO
2012年 ピクシブ株式会社に新卒として入社
インフラチームでインフラの構築・運用
2016年には画像変換のクラウドサービス ImageFlux をリリース
2020年1月より CTO に就任© pixiv Inc.

2

今日話すこと
この17年でピクシブはなにをしてきたのか
そのためにRubyをどのように活用し、なにをしてきたのか© pixiv Inc.

3

ピクシブ株式会社
2005年にWeb制作ベンチャーとして設立された会社
2024年1月現在の社員数は約350名、そのうち150名程度がエンジニア
東京都渋谷区千駄ヶ谷と福岡県福岡市博多区にオフィスがある© pixiv Inc.

4

ピクシブのミッション

Accelerate
Creativity.
創作活動を、もっと楽しくする。

© pixiv Inc.

5

2007

© pixiv Inc.

6

RBBToday “イラストを見せ合ってコミュニケーションするサイト「pixiv（ピクシブ）」がオープン”https://www.rbbtoday.com/article/2007/09/13/44869.html© pixiv Inc.

7

お絵描き楽しす© pixiv Inc.

8

イラスト

© pixiv Inc.

マンガ

小説

うごくイラスト9

創作活動がもっと楽しくなる場所© pixiv Inc.

10

累計登録ユーザー 1億人を達成

16年で登録されたアカウントは 1億以上

総登録ユーザー数

累計投稿作品数は 1.3億作品以上
新規登録ユーザーの70%が海外 からのユーザー登録になっている© pixiv Inc.

11

2012

© pixiv Inc.

12

「マンガ雑誌の連載」をいち早く電子化した総合マンガサイト
9,000以上のマンガ作品を掲載
ピクシブ初期の Rails アプリケーション© pixiv Inc.

13

2013

© pixiv Inc.

14

2013年12月 リリース
誰でも簡単に作品を販売・購入できる創作物の総合マーケットサービス
決済や配送を代行し、手間なく簡単に利用できる© pixiv Inc.

15

2015

© pixiv Inc.

16

2015年2月 リリース
ものづくりがもっと楽しくなる
グッズ制作サービス
ほぼ全てのグッズを1個から制作
つくったグッズをBOOTHでオンデマンド制作し在庫を持たずに販売できる© pixiv Inc.

17

2018

© pixiv Inc.

18

2018年4月 リリース
クリエイターの創作活動を支える
ファンコミュニティサービス
定期的な支援を行うことでクリエイターを支援でき、創作活動を続けられ、新たなコンテンツを生み出すことにも挑戦できる© pixiv Inc.

19

投稿する場所から創作活動を楽しむ場所へ© pixiv Inc.

20

新しいクリエイティブツール

© pixiv Inc.

21

2015

© pixiv Inc.

22

2018

© pixiv Inc.

23

© pixiv Inc.

24

「創作活動がもっと楽しくなる場所を創る」から「創作活動を、もっと楽しくする」へ© pixiv Inc.

25

Where emotion keeps
activating something next.
感動と衝動を、次の何かへ。

© pixiv Inc.

26

ピクシブにおけるプロダクト開発とはなにか「創作活動を、もっと楽しくする」ためには何をすればいいのか
サービスを変化させるために、適切な技術を選択し、開発に導入する© pixiv Inc.

27

ピクシブにおける技術選択とはなにか
影響の大小を問わず、サービスの動作に影響を与えることになる選択のこと
例えば「どのプログラミング言語を用いるか」という問題は技術選択の1つ
創作活動を、もっと楽しくするために何が必要か決めること
技術選択においてはしばしば決断が必要になる© pixiv Inc.

28

全てのエンジニアが技術選択の自由をもつ
エンジニアは自らシステムを変更し、世界に影響を与えることができる
自由には責任が伴う。なんでもやっていいわけではない
常に質の高い技術選択を行うために、あらゆる情報を共有し、部署をこえて全てのチームが協力する© pixiv Inc.

29

ピクシブにおける Ruby
2010-2011年にかけて Ruby on Rails を取り入れはじめる
現存している最も古い Ruby on Rails は pixivコミック (2012年6月リリース)
それまでは主に PHP を使って開発していた© pixiv Inc.

30

ピクシブが Ruby に取り組みはじめたころの環境
Ruby on Rails 2.0 が出たのは2008年なので、2010年ごろには既に Ruby on Rails を大規模なサービスに導入する事例が多く出てきていた
国内でも Ruby on Rails のノウハウを持つソフトウェアエンジニアが増えていた
ピクシブも Ruby を得意とするエンジニアを多く採用
私もそのうちの1人で、内定者だった2011年ごろはピクシブでRailsを書いていた© pixiv Inc.

31

ピクシブがRubyに取り組みはじめたころの環境
初期の技術スタック●●●●

Ruby on Rails 3.0
Ruby 1.9
unicornnginx

大規模なWebアプリケーションを開発するための道具が揃っていた
ピクシブが pixiv だけではなく様々なサービスをリリースしていくため
Ruby on Rails を選択© pixiv Inc.

32

Ruby on Rails を使って開発したサービス
2012
pixiv投稿マンガや、出版社との協業作品などが楽しめる2013
創作物の総合マーケットプレイス

2015
オリジナルグッズ制作サービス

お⼿軽 お絵かきコミュニケーションアプリ

講談社と共同運営マンガアプリ

3Dキャラクターのための投稿‧共有プラットフォーム

Web発⼩説、ゲームのノベライズ、絵本まで豊富なラインナップ

2018
2022
エンタメのための運⽤型広告© pixiv Inc.

33

技術選択における肝要
技術選択において考慮すべきポイントはたくさんある
●
●
●
●

開発速度
メンテナンス性開発・運用にかかるコスト
心理的障壁

いま「創作活動をもっと楽しくする」ためにはどの技術を選択するか
これまでの資産は技術選択を考える際の重要な要素のひとつだが、このままでいいのか常に問い続けなければならない© pixiv Inc.

34

pixiv の技術選択
pixiv は2007年に最初に生み出された瞬間から PHP で書かれていた
所謂 LAMP Stack = Linux / Apache HTTP Server / MySQL / PHP
特定のフレームワークを利用していない生の PHP から成長していった
2007年頃に1人で書かれたことを考えると妥当な技術選択と言える© pixiv Inc.

35

pixiv と Ruby
pixiv の開発にも Ruby は使われていた
国際版 pixiv β● 2011年にリリースされた海外ユーザー向けのフロントエンド● ActiveResource をもちいて PHP の内部 API をモデルとして用いる● JavaScript→Rails→PHP Private API→PHP Coreとモデルが何層にも渡っていて見通しは悪く、開発しやすいとはいえない● メインの pixiv に注力するために提供を終了
compass● SassをベースとしたCSSコンパイラ● pixiv のフロントエンドをビルドするためには ruby が必要© pixiv Inc.

36

pixiv と PHP
pixiv は17年前に書かれた PHP で今も動き続けている
2024年1月現在は PHP 8.2 で動いていて、 PHP 8.3 への移行をすすめている最中
Rubyへの依存はほとんどなくなった
なおすところも多いが、最新の PHP が使えるよう改善され続けている
PHPStan での静的解析をはじめ様々な開発しやすい環境が整えられている© pixiv Inc.

37

フロントエンドに Next.js を採用
2022年頃から pixiv のフロントエンドを Next.js でリプレイスしはじめた
それまではPHPと密結合するかたちでReact、Vueを使って開発
PC版はReact、モバイル版はVueを採用しておりレスポンシブではなかった
実装を統一し複雑さを下げるため Next.js でリプレイスされることになった

pixiv inside: pixivをNext.jsでリプレイスする取り組みをご紹介します。
https://inside.pixiv.blog/2022/08/15/120000© pixiv Inc.

38

pixiv とオンプレミス
マザーボードがむき出しの PC で pixiv はサービスをはじめた自社のサーバールームに増設し続ける。数万円でサーバーを1台用意できた
回線容量の逼迫とともにデータセンターのハウジングへ移行
いまでも自社で管理している物理サーバーがサービスの中核になっている© pixiv Inc.

39

私が入社した頃はまだ本番のリクエストをさばいていたサーバー群© pixiv Inc.

40

オンプレミス環境の活用
pixiv は数千万ユーザーが利用するサービスであり、安定して常に大きなトラフィックを配信し続けている
長期間にわたって提供しており比較的キャパシティプランニングしやすいオンプレミスのインフラを用いることで大幅にコストを圧縮できる自社サーバールームはついになくなったが、今でも自社でオンプレミス環境を構築できるエンジニアがいる© pixiv Inc.

41

パブリッククラウドも活用
オンプレミス環境だけではなくパブリッククラウドのインフラも活用している
AWS、Google Cloud、IDCFクラウドが利用可能であり、オンプレミスの環境とのインターコネクトも構築している© pixiv Inc.

42

講談社と共同で運営しているマンガアプリ。2018年にリリース
Ruby on Rails で構築し、AWS上の独立したインフラ環境で稼働している協業することが前提の事業であり、 pixiv と独立していた方が都合が良かった© pixiv Inc.

43

pixiv に広告を配信できる運用型広告サービス
月間4400万人以上の pixiv ユーザーに対して独自のターゲティングを行い、届けたい層にピンポイントで広告を配信できるインフラストラクチャとして Google Cloud を使って構築している
配信サービスは Go で構築されており、配信用管理画面は Ruby on Rails を使ってつくられている© pixiv Inc.

44

技術選択の多様性
サービスの特性にあわせてさまざまな技術選択がなされる
サービス同士でノウハウや資産を共有できることもあればできないこともある
Ruby on Rails アプリケーションではピクシブ全体で利用できるところを gem として配布し、各サービスで実装を共通化できるようになっている© pixiv Inc.

45

© pixiv Inc.

46

プロダクトの複雑性と技術選択
ピクシブのサービスはとても複雑で自律したコミュニティとして成り立っている
私たちが取り組むべき問題も同じように複雑な構造をもっているそれぞれの問題に取り組むためには、統一性よりも個々の適切な技術選択が重要になることもある© pixiv Inc.

47

ピクシブと Ruby コミュニティ
全てのエンジニアが正しい技術選択を続けるためには利用している技術とともに成長しつづけなければならない
社外の技術コミュニティと共にピクシブの技術コミュニティも成長していく
現在オープンしている Ruby on Rails を利用する採用ポジション●

バックエンドエンジニア（ pixivコミック）https://hrmos.co/pages/pixiv/jobs/503●

バックエンドエンジニア（ pixivFACTORY）
https://hrmos.co/pages/pixiv/jobs/507●

バックエンドエンジニア（ Palcy）
https://hrmos.co/pages/pixiv/jobs/504●

バックエンドエンジニア（ pixiv Sketch）
https://hrmos.co/pages/pixiv/jobs/509●

バックエンドエンジニア（ pixiv広告）
https://hrmos.co/pages/pixiv/jobs/506© pixiv Inc.

48

Ruby のコミュニティと行っている活動© pixiv Inc.

49

まとめ
「創作活動を、もっと楽しくする」ためにやる事はたくさんある
ピクシブにおける技術選択の難しさは事業の複雑性を反映している
エンジニア組織はそれをとりまくコミュニティと共に成長する
エンジニア募集中です！

© pixiv Inc.

50