タグ

ブックマーク / inside.pixiv.blog (45)

  • Terraform運用事例書きました - pixiv inside

    こんにちは、インフラ部の id:sue445 です。 Terraformなにもわからないけどディレクトリ構成の実例を晒して人類に貢献したい - エムスリーテックブログ や Terraformのディレクトリ構成の模索 - Adwaysエンジニアブログ を読んで影響されたのでピクシブのTerraform運用事例を紹介しようと思います。 Terraformの採用理由 GitLabでのリポジトリ構成 Terraformのファイル構成 moduleがうまく使えたと思っている事例 GitLab CIでTerraformをいい感じにCIする テンプレートの使い方 ピクシブで実際に使っているテンプレートファイル このテンプレートでできること masterブランチ以外 masterブランチ このテンプレートファイルのポイント 最後に Terraformの採用理由 Terraformと同じようなプロビジョニン

    Terraform運用事例書きました - pixiv inside
  • RendertronをGKEとCloud Runで構築しました - pixiv inside

    こんにちは、インフラ部の id:sue445 です。 今回はRendertronをGKEとCloud Runの両方で構築した話をしたいと思います。 tl;dr; 前置き 今までのRendertronの問題点 GKE版Rendertronについて GKEの採用理由について GKE版Rendertronの構成 全体 GKE内部 pod内部 Kubernetesの設定と解説 rendertron-deployment.yaml rendertron-hpa.yaml rendertron-ingress.yaml rendertron-service.yaml Tips nodeのストレージサイズをケチり過ぎたらpodが起動できなくなった N1マシンタイプのnodeとN2マシンタイプのnodeを比較した結果、N2マシンタイプが安くなった Cloud Run版Rendertronについて Clou

    RendertronをGKEとCloud Runで構築しました - pixiv inside
  • ピクシブの全員が共通で使ってるSaaSの紹介 - pixiv inside

    この記事では2020年5月時点でピクシブの社員全員が使っている主なSaaSを紹介します。 ピクシブとSaaS ピクシブはpixiv、BOOTHなどクリエイターを支援する様々なサービスを提供していますが、これらは基的に内製しています。 業務を支えるシステムは最近ではもっぱらSaaSを選ぶことで、社内の開発・運用力をユーザ向けにフォーカスするようにしています。 そんなピクシブでは、かつてはチームごとにバラバラにSaaSを選んで使うことを基にしてきました。 現在はチームが違えどピクシブのプロダクト全体を皆で支えているという意識が高まり、チーム間での共通言語化をすること、利用ノウハウを高めることの重要さが上がってきました。 そういう変化を背景として、徐々に使うSaaSを全員で同じものを使うようになってきています。 なお今でも新しいサービスの利用が必要になったら、どの社員でも申請することができま

    ピクシブの全員が共通で使ってるSaaSの紹介 - pixiv inside
  • ピクシブの技術と文化を伝える #PIXIVTECHFES を開催しました - pixiv inside

    ピクシブは「遊びで創る、毎日を。」というビジョンを掲げています。インターネット企業とエンターテイメント企業という2つの顔を持つピクシブは、技術のみならず「遊び」を企業カルチャーの重要な軸として捉えています。 この価値観は「趣味としてどういうコードを書き続けたのか」に関心を持ち深堀りしていくという、採用面接のスタイルにも強くあらわれています。テクノロジーに熱中し、それを突き詰めたプロフェッショナルたちが、互いの専門性に共感し、尊敬し、コラボレーションする場がピクシブであると私は考えています。 このような企業カルチャーも含めて、ショーとして社外へ発信していくイベントが、ピクシブが主催する技術カンファレンスです。昨年の「pixiv TECH SALON」に続き、第二弾である「PIXIV TECH FES.」は、2020年2月17日(月)に新宿BLAZEにて開催されました。 イベントの見どころを

    ピクシブの技術と文化を伝える #PIXIVTECHFES を開催しました - pixiv inside
  • pixivに脆弱なパスワードで登録できないようにしました - pixiv inside

    図1: 脆弱なパスワードを入力した場合のエラー画面 こんにちは、pixiv開発支援チームのmipsparcです。 パスワード、もしかして使いまわしていますか? 複数のサービスで同じパスワードを利用していると、「パスワードリスト型攻撃」によって不正アクセスの被害を受けてしまうかもしれません。 パスワードリスト型攻撃の被害にあわないためには、ブラウザやパスワード管理ツールで自動生成された安全なパスワードを利用するのが好ましいです。 しかし、実際には多くの人が「使いまわしたパスワード」や「簡単なパスワード」(以下、脆弱なパスワード)を利用していますし、啓蒙活動にも限界があります。 pixivではサイバー攻撃への対策を複数とっていますが、根的な対策のひとつとして、脆弱なパスワードを新しく設定できないようにしました。 脆弱なパスワードの判定方法 脆弱なパスワードの利用はどのように防ぐことができるで

    pixivに脆弱なパスワードで登録できないようにしました - pixiv inside
  • GitLab令和最初のリプレイス。フルコンテナ化ポスグレ移行 - pixiv inside

    こんにちは、sue445です。 先日社内で使ってるGitLabのリプレイスをしたのでその辺の話をしたいと思います。 リプレイスの内容 今回のGitLabリプレイスでは主に下記を行いました。 サーバ移設に伴いURL以外全部変えた レガシーな環境で運用されていたGitLabを全てDockerコンテナに載せた MySQLからPostgreSQLに移行 以上を1時間弱のメンテでやりきった 構成 ざっくり書くと、SSL終端のフロントサーバのみ同じで、それ以外のバックエンドを全部変えました。 旧 APサーバ Debian Wheezy CPU: Intel Xeon E5-2640v2 * 2 Memory: 40GB Disk: 64G + 512G MySQL兼Redisサーバ Debian Wheezy CPU: Intel Xeon X3430 Memory: 8GB Disk: 256G M

    GitLab令和最初のリプレイス。フルコンテナ化ポスグレ移行 - pixiv inside
  • iOSDC Japan 2019にピクシブのエンジニアが3名登壇して、ブース展示もして、おもしろノベルティ配布もして盛りだくさん! - pixiv inside

    こんにちは。iOSアプリ開発のリードをしているFromAtomです。デザイナーさんに「アー写みたいなかっこいい写真撮りたい」と無茶振りしたら、いい感じに撮影と現像をしてくれて感謝感激しています。 2019年9月5日(木)〜9月7日(土)に開催される iOSDC Japan 2019 に、ピクシブから3名のエンジニアが登壇することになりました!まずは、その3つの発表内容に登壇者のコメントを添えてご紹介したいと思います。 スクリーン配信機能の実装が大変だったので知見をお伝えします iOSで画面を収録してライブ配信を行うにはReplayKit2を利用し、Upload Extension経由で画面を配信する必要があります。 さて、そのUpload ExtensionをXcodeで追加すると BroadcastSetupViewController というUIViewControllerが追加されま

    iOSDC Japan 2019にピクシブのエンジニアが3名登壇して、ブース展示もして、おもしろノベルティ配布もして盛りだくさん! - pixiv inside
  • 【SSRも】Fleur − 新しいFluxフレームワーク【イケる】 - pixiv inside

    みなさんこんにちは! VRoid Hubでフロントエンドエンジニアをしている花倉ミツカ (a.k.a. ラグ)です 🙌 今回のpixiv insideはちょっとだけお仕事から離れて(ガチ)アイスブレイクです。私が1年ほど開発しているFluxフレームワーク、Fleur (フルール, @fleur/fleur)について、その設計や使い方についてご紹介させていただきます! 目次 どういうフレームワーク? 実際の使い方 質問 まとめ どういうフレームワーク? pixiv Sketchで採用されている Fluxible というFluxフレームワークを参考に、「書きやすさ」と「現代的な機能の採用」の二点を重視してTypeScriptでフルスクラッチしました。(Fluxibleは私が知ってる中で一番"整っている"フレームワークだと思っています♨) Fleurの大規模なプロダクションでの採用実績はまだあ

    【SSRも】Fleur − 新しいFluxフレームワーク【イケる】 - pixiv inside
  • HAKATA Test Night #1 で「トークンリフレッシュ処理を含むAPIClientのテスト」について喋ってきました #hakata_test_night - pixiv inside

    おばんです、博多に行った際に一番美味しかったのは明太子だと思った田中です。「お前はまだ当の博多グルメを知らない」的なマサカリ歓迎です。 さて、今回は先日博多で開催されたHAKATA Test Night #1で発表した内容についてまとめます。 HAKATA Test Night #1 - connpass 発表について トークンリフレッシュ処理を含むAPIClientのテスト #hakata_test_night from Kenji Tanaka 概要 Access/Refresh Token形式の通信処理は簡単にまとめると以下の手順を踏みます。 Access Tokenが有効期限切れだった場合に、Refresh Tokenを使ってAccess Tokenを更新する Refresh処理が成功したら、新しく取得したAccess Tokenを使って元の通信処理をRetryする これらの一連

    HAKATA Test Night #1 で「トークンリフレッシュ処理を含むAPIClientのテスト」について喋ってきました #hakata_test_night - pixiv inside
  • SpringBootでさくっとVue.jsを使う - pixiv inside

    こんにちは。@orekyuuです。Javaが大好きなエンジニアですが、入社してからはずっとRailsエンジニアをやっていました。最近はJDK11+SpringBootでサクッとWebアプリを立ち上げる仕事を始めたので、SpringBootの話を書いてみます。 今作っているアプリではThymeleafというテンプレートエンジンでレンダリングしています。ほとんどのWebアプリではformの内容を入力によって表示を変えたりしたいといったケースでJavaScriptを使ってDOM操作をしたくなります。今はjQueryという時代でもないので、ちょっとしたDOM操作をVue.jsを使って操作できると便利そうです。 Vue.jsを使う準備 webpackの設定を書く package.jsonとwebpack.config.jsを用意します。ほぼ普通のjsプロジェクトと同じだと思います。 ポイントはout

    SpringBootでさくっとVue.jsを使う - pixiv inside
  • 毎秒1万リクエストの負荷試験をした話 - pixiv inside

    はじめまして。ピクシブで広告関連のプロダクトを開発しているeastです。今回は、社内で運用している広告配信サーバーの負荷テストを実施したので、その話をしたいと思います。 経緯 ピクシブの広告配信サーバーは、pixiv体を中心に複数のサービスに対して広告配信を行なっています。現在私はこの広告配信サーバーの大規模改修を行なっているのですが、先日ついに広告配信サーバーの改修がほぼ完了したので、試しに負荷試験を行なってみたいと思い立ちました。 目標は毎秒1万リクエスト ピクシブの広告配信サーバーへのリクエスト数はDailyで 4〜6億req もあり、これは毎秒平均に直すと約 5,000RPS(Request Per Second) になります。さらに、ピークタイムである休日の深夜帯には 12,000RPS にも達します。つまり新しい広告配信サーバーにも、毎秒12,000のリクエストを捌く性能が必

    毎秒1万リクエストの負荷試験をした話 - pixiv inside
  • Flutterで社員研修用のアプリを作った話 - pixiv inside

    みなさんはじめまして。初めてじゃない方はお久しぶりです。ピクシブでAndroidアプリエンジニアをしておりますconsommeです。 ピクシブでは基的に年一回、社員同士の交流を深めるという目的のもと、社員研修を開催しています。2018年は2泊3日の沖縄研修が計画されました。そのなかで研修運営チームから「社員研修で使うアプリを作れないか?」という相談を受けました。 研修中は基的にチーム行動になるので、自分のチーム以外の人が何をしているかがわかりづらい。それなら各自で研修中に撮った写真を共有して、みんなで楽しめれば社員同士の交流につながるのではないか、そのためのアプリが欲しい、とのこと。 そう言われるとアプリエンジニアとしては作らないという選択肢はありません。ぜひやりましょう、ということで、社員研修を盛り上げるためのアプリを開発することになりました。 システム構成 アプリ側 アプリはFlu

    Flutterで社員研修用のアプリを作った話 - pixiv inside
  • 失われた2人日をiMac Proで取り戻し、開発体験を向上するまでの軌跡 - pixiv inside

    お初です。2017年10月入社の @kobaken です。iOSアプリ開発を生業にしております。 最近はすっかりスタァライトされてしまい、舞台創造科の一員になってしまいました。 普段は声優のことを考える傍ら、pixivpixiv SketchのiOSアプリの開発をしています。 ところで、iOSアプリ開発をされている皆さんの中に、このような現象に頭を悩まされている方はいるでしょうか? なかなか終わらないビルド……侵されるCPUリソース……固まるIDE…… わかります。自分も以前までは上記の症例に頭を悩まされ、【精神破壊(メンタルブレイク)】される寸前でした。 どうにかして作業効率を上げないと僕が病んじゃう!そうすると開発の手が止まって、新しい価値をユーザに届けられなくなっちゃう!私これからどうすればいいの〜〜〜!……そんなとき僕たちの目の前に現れたのが「iMac Pro」でした。 iMa

    失われた2人日をiMac Proで取り戻し、開発体験を向上するまでの軌跡 - pixiv inside
  • 今日から簡単!Webpacker 完全脱出ガイド - pixiv inside

    こんにちは、@f_subal です。普段はおもに pixivFACTORY のフロントエンドを見ています。 今回は pixivFACTORY において、フロントエンドのビルドに Webpacker を利用するのをやめた話をします。 Webpacker をやめよう rails/webpacker は Ruby on Railsプロジェクトwebpack を導入する際に用いられる gem です。必要な webpack の設定ファイルの生成や、Rails のテンプレートからビルド済みの JavaScript ファイルを読み出すために用いるヘルパー関数など、多数の機能を提供します。 結論から言うと、Webpacker を入れてもあまり良いことがありませんでした。単に必要が無いというより、あることによって面倒が増していると感じたので、剥がしました。以下 Webpacker が導入された Ra

    今日から簡単!Webpacker 完全脱出ガイド - pixiv inside
  • WEB+DB PRESS連載『PHP大規模開発入門』を振り返る - pixiv inside

    2024年4月26日追記 WEB+DB PRESS総集編[Vol.1~136]が発売されたので、今後はぜひこちらをお買い求めください gihyo.jp pixiv運営技術基盤チームのうさみけんた(@tadsan)です。 2018年4月26日に技術評論社さまからWEB+DB PRESS総集編 [Vol.1~102]が発売されます(一部書店には既に並んでいるようです)。これは2000年12月に発売されたWEB+DB PRESSの創刊号から102回までの全バックナンバーのPDFを収録した、超大ボリュームの総集編(WEBからもダウンロード可能)です。 17年に及ぶWEB+DB PRESSの歴史の中で、ピクシブ株式会社も2014年から2017年までの間、連載企画『PHP大規模開発入門』を執筆・掲載させていただきました。 連載記事一覧 連載各回の内容は以下の通りです。 Vol.80 「モダンな開

    WEB+DB PRESS連載『PHP大規模開発入門』を振り返る - pixiv inside
  • 放置しがちな社内システムこそ式年遷宮していこう - pixiv inside

    こんにちは、CTO兼福岡オフィスマネージャーの@edvakfです。最近はとあるC++のコードをRustに逐語訳しながらRustを勉強中です。 今回はピクシブで使っているデプロイ管理画面のpployをgo-pployにリプレースした話を書きます。 まずは結論から メンテナビリティの向上 を目指して社内システムをリプレースした 小規模であっても新規開発から得られる学びはとても大きい その気になれば式年遷宮できるシステム規模を心がけましょう そもそもpployとは? pployとは、「デプロイ管理画面」という類の小さなウェブアプリケーションです。 ピクシブで開発しているウェブアプリケーションのデプロイは基的にはすべて 「デプロイ中」状態になる masterにpushする staging等にデプロイして確認する productionにデプロイする 問題無ければ「デプロイ中」状態を解く という手順

    放置しがちな社内システムこそ式年遷宮していこう - pixiv inside
  • Swagger+JSON SchemaでAPIの型をテストして開発サイクルをスピードアップさせた話 - pixiv inside

    CTO兼福岡オフィス立ち上げ担当として新アプリを作っている@edvakfです。 JSON APIを開発しているとこういう問題がありがちですよね。 仕様どおりにAPIの形式を作ったはずだけどなんか自信が持てない テストでいくつかのキーが存在するかの簡単なチェックはしてるつもりだけど、全部チェックするのは大変すぎる APIのControllerやViewをリファクタリングしたらレスポンスの形が変わってアプリがめっちゃクラッシュし始めた というのが怖くて誰もリファクタリングできなくなった APIドキュメントがメンテされない 知らない間にレスポンスのフィールドが増えてたけどドキュメントに書いてない これらを解決したい!と思って試行錯誤したら、スマートに解決することができました。この記事ではRailsのことについて書きますが、考え方は他の言語・フレームワークでも同じです。 なお、今回使ったgemのバ

    Swagger+JSON SchemaでAPIの型をテストして開発サイクルをスピードアップさせた話 - pixiv inside
  • pixivを常時HTTPS化するまでの道のり(後編) - pixiv inside

    ピクシブ株式会社で開発基盤チームとして働いている @catatsuy です。 前編ではpixivを常時HTTPS化する前にやった前準備として、広告、画像といったリソースをHTTPSに切り替える際の手順を紹介しました。 pixivを常時HTTPS化するまでの道のり(前編) - pixiv inside 後編では実際にpixivのアプリケーション自体を常時HTTPS化していく手順を紹介します。 従来のHTTPS配信 pixivPHPアプリケーションを実行するアプリケーションサーバー(Apache/mod_php)の前段にnginxを配置する構成になっています。以前からセキュリティ的に重要なページはHTTPSで提供しており、nginxでHTTPS終端処理を行っていました。HTTPSで応答する場合はアプリケーションサーバーにX-HTTPSヘッダーを付けてプロクシーしています。 具体的には以下のよ

    pixivを常時HTTPS化するまでの道のり(後編) - pixiv inside
  • CTOが福岡移住!?ピクシブ福岡オフィスついに始動! - pixiv inside

    今週から福岡に移住しました、CTOの高山(@edvakf)です。 「オマエは何を言っているんだ…?」と思われるかもしれませんが、大真面目です。 今回はピクシブ福岡オフィスの所信表明を、無駄に自己啓発的な見出しとともにお送りします。 変わり続けることこそが安定 今を去ること半年前にピクシブ福岡オフィスを開設しましたが、誤解を恐れずにいえば、完全に「勢い」でスタートしたので、これまでは具体的な動きには繋がっていませんでした。 さらに誤解を恐れずにいえば、勢いというのはとても大切で、人も会社も意識的に変化を起こしていかなければ「現状維持」という易きに流れてしまいがちです。変化の激しい時代・業界にいる我々としては「変わり続けることこそが安定」を常に意識していきたいですよね。 などと、ゴールデンウィーク明けに飲みの席で熱弁を振るっていたところ、「いいjang!来週から福岡オフィス立ち上げちゃいなYo

    CTOが福岡移住!?ピクシブ福岡オフィスついに始動! - pixiv inside
  • pixivを常時HTTPS化するまでの道のり(前編) - pixiv inside

    ピクシブ株式会社で開発基盤チームとして働いている @catatsuy です。主にpixiv技術的な改善をしていますが、広告チームも兼任しているので広告周りの開発もしています。 今回pixivの常時HTTPS化を担当したのでやったことを紹介します。 pixivをHTTPS化した理由 現在のインターネット全体の流れとして常時HTTPS化が進んでいます。エドワード・スノーデン - Wikipediaが暴露したNSAの事件発覚や 公衆無線LANの利用拡大により、通信経路上でユーザーの個人情報を保護することがインターネット全体として非常に重要になってきました。Googleが行っている調査によると、HTTPSページの閲覧時間はウェブ全体の利用時間の3分の2にも及びます。 それだけではありません。ブラウザに新しく追加されるAPIや機能(HTTP2/WebRTC/ServiceWorkerなど)はHTT

    pixivを常時HTTPS化するまでの道のり(前編) - pixiv inside