Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
sue445謹製社内ツール十一選 / su445 in-house tools #pixivd...
Search
sue445
April 30, 2021
Technology
1
510
sue445謹製社内ツール十一選 / su445 in-house tools #pixivdevmeetup
エンジニア勉強会 in PIXIV DEV MEETUP (
https://conference.pixiv.co.jp/2021/dev-meetup
)で喋ったLT資料です。
sue445
April 30, 2021
Tweet
Share
More Decks by sue445
See All by sue445
Road to RubyKaigi 2025 #rubykaigi2026_saisoku
sue445
0
64
Kaigi Effect 2025 #rubykaigi2025_after
sue445
0
1.2k
Road to Go Gem #rubykaigi
sue445
0
1.5k
pixiv Cloud Journey #pixivmeetup
sue445
0
1.5k
Road to RubyKaigi Speaker (case sue445) #rubykaigi2023_after
sue445
0
2.2k
Fix SQL N+1 queries with RuboCop #rubykaigi
sue445
2
6k
sue445とOSSと社内ツール #subcul_dev
sue445
0
860
Sentry GKEに リプレイス 1年間の 知見見せます / Migrated to GKE Sentry #pixivdevmeetup
sue445
0
740
Ruby on CI #ginzarails
sue445
3
2.6k
Other Decks in Technology
See All in Technology
robocopy の怖い話/scary-story-about-robocopy
emiki
0
430
AWS re:Inforce 2025 re:Cap Update Pickup & AWS Control Tower の運用における考慮ポイント
htan
1
120
Perlアプリケーションで トレースを実装するまでの 工夫と苦労話
masayoshi
1
330
TypeScript 上達の道
ysknsid25
23
5.1k
増え続ける脆弱性に立ち向かう: 事前対策と優先度づけによる 持続可能な脆弱性管理 / Confronting the Rise of Vulnerabilities: Sustainable Management Through Proactive Measures and Prioritization
nttcom
1
230
From Live Coding to Vibe Coding with Firebase Studio
firebasethailand
1
390
SAE J1939シミュレーション環境構築
daikiokazaki
1
200
ビジネス文書に特化した基盤モデル開発 / SaaSxML_Session_2
sansan_randd
0
210
バクラクによるコーポレート業務の自動運転 #BetAIDay
layerx
PRO
1
610
猫でもわかるQ_CLI(CDK開発編)+ちょっとだけKiro
kentapapa
0
190
Kiroでインフラ要件定義~テスト を実施してみた
nagisa53
2
210
AI人生苦節10年で会得したAIがやること_人間がやること.pdf
shibuiwilliam
1
250
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
Scaling GitHub
holman
461
140k
The Language of Interfaces
destraynor
158
25k
Agile that works and the tools we love
rasmusluckow
329
21k
How to Ace a Technical Interview
jacobian
278
23k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
The Cost Of JavaScript in 2023
addyosmani
51
8.7k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
530
Speed Design
sergeychernyshev
32
1k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
Designing Experiences People Love
moore
142
24k
Gamification - CAS2011
davidbonilla
81
5.4k
Transcript
sue445謹製社内ツール十一選 2021/04/30 エンジニア勉強会@PIXIV DEV MEETUP pixiv Inc. sue445 2021.4.30
2 自己紹介 • sue445 • 2018年7月入社 ◦ もうすぐ4年目 • インフラ部所属
• #z-アニメ #z-precure #z-pretty-series sue445
3 • AWS, GCP, CI, GitLab, Sentry etc… • 最近は各チームがやりたいことに対して
AWS, GCP, オンプレでいくつか案を出してアドバイ スしたり、実際に自分でシステムを構築 • 例)オンプレで動いてたSentryをGKEに移行、Herokuで動いてたアプリをECSに移行 • publicな業務内容: https://inside.pixiv.blog/search?q=sue445 業務内容
4 https://www.credential.net/9643f19d-5584-40b6-a330-5b966a26f310 GCPの認定資格所持 (ドヤッ
5 • ピクシブに入社してから作った社内ツールを紹介 • OSSになっていたり、なかったりします ◦ OSSになってないものは本邦初公開です • 11個紹介するので1つ20秒くらい 今日話すこと
6 • Q. 何で社内ツールを作るのか? ◦ 社内の開発環境に不満があるから ◦ ピクシブが3社目だけどどの会社も大なり小なり不便 ◦ なので不満点を解決するためにツールを作ってる
• Q. なんでOSSにするのか? ◦ 社内コンテキストに依存しない汎用的なものは最初から OSSにしておけば今後 自分が転職した先でも使えて便利 ▪ 実際、前職時代に作ったものが今も活躍してる ◦ PRが飛んでくれば自分がコードを書かなくても社内が便利になる 0/11: 前置き
7 • https://github.com/sue445/gitpanda • https://inside.pixiv.blog/sue445/7256 • GitLabのURLをSlackに貼り付けた時にいい感じに展開してくれるツール 1/11: gitpanda (OSS)
8 • https://gitlab.com/sue445/tanuki_reminder • Pull PandaのGitLab版 • マージされてないMRをSlackやChatWorkで通知 2/11: tanuki_reminder
(OSS)
9 • https://gitlab.com/sue445/gitlabci-bundle-update-mr • GitLab CI上でbundle updateしてMergeRequestを作るためのgem • circleci-bundle-update-prのGitLab版 •
社内版dependabotもあるので併用してる 3/11: gitlabci-bundle-update-mr (OSS)
10 • pploy(社内デプロイツール)からアプリの各 APサーバにアプリの実行ユーザで rbenv installやnodenv installなどするツール • 各APにいちいちsshしてコマンド叩くのが面倒なのでワンクリックでいけるようにした •
Ansible Galaxyのrbenvのモジュールだとsudoが使えないユーザでrbenv installできな かったのでItamaeで書いた • 余談:sue445は https://github.com/itamae-kitchen/itamae のコミッタ 4/11: pploy-app-itamae (in-house)
11 yamlを編集して 4/11: pploy-app-itamae (in-house)
12 pployからデプロイ先をクリックするとインストールされる 4/11: pploy-app-itamae (in-house)
13 Slackにログが流れる 4/11: pploy-app-itamae (in-house)
14 • pployが動いてるデプロイサーバ自身に pployからrbenv installなどを行う • デプロイサーバにもrbenvが入っているので、rubyの新しいバージョンを使いたい時には APだけじゃなくデプロイサーバにもインストールしないと cap deployができない
• しかしセキュリティの観点からデプロイサーバはインフラ部しか sshできない • デプロイサーバでrbenv installする時に毎回インフラ部への作業依頼が発生してたので チーム側で作業が完結できるようにするために作った 5/11: pploy-mitamae (in-house)
15 • https://github.com/sue445/today_anime • https://inside.pixiv.blog/sue445/5647 • Slackの#z-anime で定時後に動かしてるボット 6/11: 今日のアニメボット
(OSS)
16 • 今日のアニメボットの映画版 • 社内版はOSSじゃないけどruby-jp Slack用に作ったものは https://github.com/ruby-jp/anime_bot にあります 7/11: もうすぐ始まるアニメ映画お知らせ君
(in-house)
17 • 140個以上あるzチャンネルを1日1回ランダムで教えてくれるボット 8/11: 今日のzチャンネル (in-house)
18 • 社内には #z-evangelion-ネタバレ有 や #z-進撃の巨人ネタバレ有 などのチャンネルもあ るので、見てない人が間違って踏まないように抽選から除外する機能もある 8/11: 今日のzチャンネル
(in-house)
19 • https://github.com/sue445/emoy_webhook • https://sue445.hatenablog.com/entry/2019/07/21/225436 • Slackにemojiが追加された時に通知するツール • Slackに追加されたemojiはUtsuhieで自動でesaにも同期されてる ◦
https://fromatom.hatenablog.com/entry/2020/02/04/132414 9/11: emoy_webhook (OSS)
20 • GitHubのorganizationでメンバー追加やリポジトリの設定変更などが行われた時に Slack に通知するためのツール • 前職でもこの手のwebhook作ったw 10/11: github-audit-webhook (in-house)
21 • sshできる社内サーバをモジュールで一元管理しつつ、 ~/.ssh/configをgit管理しやすくす るためのツール ◦ ~/.ssh/configをgit管理しないなんて小学生までだよね〜 (ギャハハー • コンセプトは
https://github.com/mirakui/ec2ssh (gem)に近いのだが、mitamaeベース で作ったことで下記のメリットがあった ◦ mitamaeのプラグイン機構を利用することで社内サーバの一覧を一元管理 ◦ mitamaeがスタンドアローンバイナリなのでバイナリポン置きするだけで使える 11/11: pixiv_ssh_config (in-house)
22 • ~/.ssh/ ◦ config ◦ conf.d/ ▪ pixiv :
pixiv_ssh_configで動的生成したhost一覧 ▪ xxxx : 必要に応じて自由に追加 • ~/ssh_config-mitamae/ ◦ Makefile ◦ bin/mitamae ◦ plugins/mitamae-plugin-recipe-pixiv_ssh_config/ (submodule) 11/11: pixiv_ssh_config (in-house)
23 esaの10722と15092に詳しく書いてるので知りたい人は入社してください 11/11: pixiv_ssh_config (in-house)