Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
sue445謹製社内ツール十一選 2021/04/30 エンジニア勉強会@PIXIV DEV MEETUP pixiv Inc. sue445 2021.4.30
Slide 2
Slide 2 text
2 自己紹介 ● sue445 ● 2018年7月入社 ○ もうすぐ4年目 ● インフラ部所属 ● #z-アニメ #z-precure #z-pretty-series sue445
Slide 3
Slide 3 text
3 ● AWS, GCP, CI, GitLab, Sentry etc… ● 最近は各チームがやりたいことに対して AWS, GCP, オンプレでいくつか案を出してアドバイ スしたり、実際に自分でシステムを構築 ● 例)オンプレで動いてたSentryをGKEに移行、Herokuで動いてたアプリをECSに移行 ● publicな業務内容: https://inside.pixiv.blog/search?q=sue445 業務内容
Slide 4
Slide 4 text
4 https://www.credential.net/9643f19d-5584-40b6-a330-5b966a26f310 GCPの認定資格所持 (ドヤッ
Slide 5
Slide 5 text
5 ● ピクシブに入社してから作った社内ツールを紹介 ● OSSになっていたり、なかったりします ○ OSSになってないものは本邦初公開です ● 11個紹介するので1つ20秒くらい 今日話すこと
Slide 6
Slide 6 text
6 ● Q. 何で社内ツールを作るのか? ○ 社内の開発環境に不満があるから ○ ピクシブが3社目だけどどの会社も大なり小なり不便 ○ なので不満点を解決するためにツールを作ってる ● Q. なんでOSSにするのか? ○ 社内コンテキストに依存しない汎用的なものは最初から OSSにしておけば今後 自分が転職した先でも使えて便利 ■ 実際、前職時代に作ったものが今も活躍してる ○ PRが飛んでくれば自分がコードを書かなくても社内が便利になる 0/11: 前置き
Slide 7
Slide 7 text
7 ● https://github.com/sue445/gitpanda ● https://inside.pixiv.blog/sue445/7256 ● GitLabのURLをSlackに貼り付けた時にいい感じに展開してくれるツール 1/11: gitpanda (OSS)
Slide 8
Slide 8 text
8 ● https://gitlab.com/sue445/tanuki_reminder ● Pull PandaのGitLab版 ● マージされてないMRをSlackやChatWorkで通知 2/11: tanuki_reminder (OSS)
Slide 9
Slide 9 text
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)
Slide 10
Slide 10 text
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)
Slide 11
Slide 11 text
11 yamlを編集して 4/11: pploy-app-itamae (in-house)
Slide 12
Slide 12 text
12 pployからデプロイ先をクリックするとインストールされる 4/11: pploy-app-itamae (in-house)
Slide 13
Slide 13 text
13 Slackにログが流れる 4/11: pploy-app-itamae (in-house)
Slide 14
Slide 14 text
14 ● pployが動いてるデプロイサーバ自身に pployからrbenv installなどを行う ● デプロイサーバにもrbenvが入っているので、rubyの新しいバージョンを使いたい時には APだけじゃなくデプロイサーバにもインストールしないと cap deployができない ● しかしセキュリティの観点からデプロイサーバはインフラ部しか sshできない ● デプロイサーバでrbenv installする時に毎回インフラ部への作業依頼が発生してたので チーム側で作業が完結できるようにするために作った 5/11: pploy-mitamae (in-house)
Slide 15
Slide 15 text
15 ● https://github.com/sue445/today_anime ● https://inside.pixiv.blog/sue445/5647 ● Slackの#z-anime で定時後に動かしてるボット 6/11: 今日のアニメボット (OSS)
Slide 16
Slide 16 text
16 ● 今日のアニメボットの映画版 ● 社内版はOSSじゃないけどruby-jp Slack用に作ったものは https://github.com/ruby-jp/anime_bot にあります 7/11: もうすぐ始まるアニメ映画お知らせ君 (in-house)
Slide 17
Slide 17 text
17 ● 140個以上あるzチャンネルを1日1回ランダムで教えてくれるボット 8/11: 今日のzチャンネル (in-house)
Slide 18
Slide 18 text
18 ● 社内には #z-evangelion-ネタバレ有 や #z-進撃の巨人ネタバレ有 などのチャンネルもあ るので、見てない人が間違って踏まないように抽選から除外する機能もある 8/11: 今日のzチャンネル (in-house)
Slide 19
Slide 19 text
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)
Slide 20
Slide 20 text
20 ● GitHubのorganizationでメンバー追加やリポジトリの設定変更などが行われた時に Slack に通知するためのツール ● 前職でもこの手のwebhook作ったw 10/11: github-audit-webhook (in-house)
Slide 21
Slide 21 text
21 ● sshできる社内サーバをモジュールで一元管理しつつ、 ~/.ssh/configをgit管理しやすくす るためのツール ○ ~/.ssh/configをgit管理しないなんて小学生までだよね〜 (ギャハハー ● コンセプトは https://github.com/mirakui/ec2ssh (gem)に近いのだが、mitamaeベース で作ったことで下記のメリットがあった ○ mitamaeのプラグイン機構を利用することで社内サーバの一覧を一元管理 ○ mitamaeがスタンドアローンバイナリなのでバイナリポン置きするだけで使える 11/11: pixiv_ssh_config (in-house)
Slide 22
Slide 22 text
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)
Slide 23
Slide 23 text
23 esaの10722と15092に詳しく書いてるので知りたい人は入社してください 11/11: pixiv_ssh_config (in-house)