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
PRO
April 30, 2021
Technology
1
550
sue445謹製社内ツール十一選 / su445 in-house tools #pixivdevmeetup
エンジニア勉強会 in PIXIV DEV MEETUP (
https://conference.pixiv.co.jp/2021/dev-meetup
)で喋ったLT資料です。
sue445
PRO
April 30, 2021
Tweet
Share
More Decks by sue445
See All by sue445
Create Ruby native extension gem with Go
sue445
PRO
0
740
Road to RubyKaigi 2025 #rubykaigi2026_saisoku
sue445
PRO
0
110
Kaigi Effect 2025 #rubykaigi2025_after
sue445
PRO
0
1.4k
Road to Go Gem #rubykaigi
sue445
PRO
0
2.7k
pixiv Cloud Journey #pixivmeetup
sue445
PRO
0
1.6k
Road to RubyKaigi Speaker (case sue445) #rubykaigi2023_after
sue445
PRO
0
2.7k
Fix SQL N+1 queries with RuboCop #rubykaigi
sue445
PRO
2
7.1k
sue445とOSSと社内ツール #subcul_dev
sue445
PRO
0
890
Sentry GKEに リプレイス 1年間の 知見見せます / Migrated to GKE Sentry #pixivdevmeetup
sue445
PRO
0
790
Other Decks in Technology
See All in Technology
Amazon Bedrock Knowledge Basesチャンキング解説!
aoinoguchi
0
160
茨城の思い出を振り返る ~CDKのセキュリティを添えて~ / 20260201 Mitsutoshi Matsuo
shift_evolve
PRO
1
360
顧客との商談議事録をみんなで読んで顧客解像度を上げよう
shibayu36
0
270
超初心者からでも大丈夫!オープンソース半導体の楽しみ方〜今こそ!オレオレチップをつくろう〜
keropiyo
0
120
データの整合性を保ちたいだけなんだ
shoheimitani
8
3.2k
We Built for Predictability; The Workloads Didn’t Care
stahnma
0
140
量子クラウドサービスの裏側 〜Deep Dive into OQTOPUS〜
oqtopus
0
140
SchooでVue.js/Nuxtを技術選定している理由
yamanoku
3
160
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.6k
OCI Database Management サービス詳細
oracle4engineer
PRO
1
7.4k
Claude_CodeでSEOを最適化する_AI_Ops_Community_Vol.2__マーケティングx_AIはここまで進化した.pdf
riku_423
2
610
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
480
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
28
2.4k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
320
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.2k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Making the Leap to Tech Lead
cromwellryan
135
9.7k
4 Signs Your Business is Dying
shpigford
187
22k
sira's awesome portfolio website redesign presentation
elsirapls
0
150
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
56
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
120
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
63
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.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)