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
470
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
pixiv Cloud Journey #pixivmeetup
sue445
0
1.3k
Road to RubyKaigi Speaker (case sue445) #rubykaigi2023_after
sue445
0
1.9k
Fix SQL N+1 queries with RuboCop #rubykaigi
sue445
2
5.5k
sue445とOSSと社内ツール #subcul_dev
sue445
0
820
Sentry GKEに リプレイス 1年間の 知見見せます / Migrated to GKE Sentry #pixivdevmeetup
sue445
0
700
Ruby on CI #ginzarails
sue445
3
2.5k
Best practices in web API client development #RubyKaigi
sue445
13
15k
スペックを上げてクラウドで殴るCI / pixiv TECH SALON #pixivTECHSALON
sue445
10
16k
OSS雑メンテ / OSS zatsu maintenance #railsdm
sue445
3
4.1k
Other Decks in Technology
See All in Technology
Aurora PostgreSQLがCloudWatch Logsに 出力するログの課金を削減してみる #jawsdays2025
non97
1
220
株式会社Awarefy(アウェアファイ)会社説明資料 / Awarefy-Company-Deck
awarefy
3
11k
Amazon Aurora のバージョンアップ手法について
smt7174
2
150
EDRの検知の仕組みと検知回避について
chayakonanaika
12
4.9k
AIエージェント元年@日本生成AIユーザ会
shukob
1
220
Autonomous Database Serverless 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
17
45k
ディスプレイ広告(Yahoo!広告・LINE広告)におけるバックエンド開発
lycorptech_jp
PRO
0
380
Fraxinus00tw assembly manual
fukumay
0
110
サイト信頼性エンジニアリングとAmazon Web Services / SRE and AWS
ymotongpoo
7
1.6k
JAWS FESTA 2024「バスロケ」GPS×サーバーレスの開発と運用の舞台裏/jawsfesta2024-bus-gps-serverless
ma2shita
3
220
Two Blades, One Journey: Engineering While Managing
ohbarye
4
2.1k
MIMEと文字コードの闇
hirachan
2
1.4k
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
Designing for humans not robots
tammielis
250
25k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
10
1.3k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
640
Building Adaptive Systems
keathley
40
2.4k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.9k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
100
18k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
BBQ
matthewcrist
87
9.5k
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)