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
460
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.8k
Fix SQL N+1 queries with RuboCop #rubykaigi
sue445
2
5.4k
sue445とOSSと社内ツール #subcul_dev
sue445
0
820
Sentry GKEに リプレイス 1年間の 知見見せます / Migrated to GKE Sentry #pixivdevmeetup
sue445
0
670
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
15k
OSS雑メンテ / OSS zatsu maintenance #railsdm
sue445
3
4.1k
Other Decks in Technology
See All in Technology
iPadOS18でフローティングタブバーを解除してみた
sansantech
PRO
1
150
Docker Desktop で Docker を始めよう
zembutsu
PRO
0
190
GoogleのAIエージェント論 Authors: Julia Wiesinger, Patrick Marlow and Vladimir Vuskovic
customercloud
PRO
0
180
今年一年で頑張ること / What I will do my best this year
pauli
1
230
メールヘッダーを見てみよう
hinono
0
120
あなたの人生も変わるかも?AWS認定2つで始まったウソみたいな話
iwamot
3
870
embedパッケージを深掘りする / Deep Dive into embed Package in Go
task4233
1
220
生成AI × 旅行 LLMを活用した旅行プラン生成・チャットボット
kominet_ava
0
160
技術に触れたり、顔を出そう
maruto
1
160
Visual StudioとかIDE関連小ネタ話
kosmosebi
1
380
Cloudflareで実現する AIエージェント ワークフロー基盤
kmd09
0
290
When Windows Meets Kubernetes…
pichuang
0
310
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
113
50k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
The World Runs on Bad Software
bkeepers
PRO
66
11k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Practical Orchestrator
shlominoach
186
10k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
174
51k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
Statistics for Hackers
jakevdp
797
220k
How GitHub (no longer) Works
holman
312
140k
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)