データから2022年をふりかえる
LAPRAS株式会社でSREをしていますyktakaha4と申します🐧
同僚のryo-endoが今年やったことについてふりかえりの記事を書いていていいな〜と思ったため、自分もやってみることにしました
個人的なことについての振り返りをするのがあまり得意でなく、記事も書いたことがなかったため、
極力具体的な数字を基にして思い出してみることにしました
ふりかえり
仕事と個人的にやったことでそれぞれ振り返っていきます
仕事
Issue
弊社では課題管理にGitHub Issuesを使っており、とあるリポジトリに全ての課題を集約して管理しています
また、個人的にあとから振り返りができるよう、対応したIssueのAssigneeやLabelについてはマメに設定するようにしています
OWNER/REPO
リポジトリ配下で、 LOGIN-NAME
がアサインされており今年更新があったIssueは、以下のワンライナーで抽出できます🦪
PAGE=1; rm -f issues.tsv; while [ $(curl -s -H "Accept: application/vnd.github+json" -H "Authorization: Bearer YOUR-GITHUB-TOKEN" -H "X-GitHub-Api-Version: 2022-11-28" "https://api.github.com/repos/OWNER/REPO/issues?per_page=100&state=all&assignee=LOGIN-NAME&since=2022-01-01T00:00:00Z&page=$PAGE" | jq -r '.[] | [.number, .state, .title, (.labels | map(.name) | sort | join(",")), (.assignees | map(.login) | sort | join(",")), .created_at, .closed_at, .html_url] | @tsv' | tee -a issues.tsv | wc -l) -gt 0 ]; do echo "page=$PAGE, count=$(cat issues.tsv | wc -l)";PAGE=$(($PAGE + 1)); done
実行するとこんな感じのtsvが出力されるので、スプシに貼り付けてガチャガチャします
$ head -2 issues.tsv
98765 open hogehogeのtf管理 SR yktakaha4 2022-12-26T06:36:19Z https://github.com/owner/repo/issues/98765
43210 closed fufafufaの削除 SR yktakaha4 2022-12-26T06:19:28Z 2022-12-26T06:26:23Z https://github.com/owner/repo/issues/43210
実際のデータをいくつか見てみたいと思います
月ごとにどのようなカテゴリのIssueをどのくらい完了したかは、以下になりました
Issueの完了件数
私は、離職した前任者の仕事を引き継ぐ形で2021年9月からSREとして働くようになったのですが、
この1年間、概ね一定のペースでSR関連のIssueを消化できていたようで安心しました
(10月の消化数が低いのは、ほぼ1か月丸々お休みを頂いていたからになります)
12月のSRのIssue件数が多いのは、年末大掃除対応によるものです
開発者がいなくなり故障したまま打ち捨てられたbotや、クローズ後に放置されているプロダクトの残骸など1年を通じてメモっておいたものを、ペア作業で影響調査しつつ消していきました
仕事を引き継いで以来ずっと懸案していたことだったので、年末のプロダクトのコードフリーズのタイミングを利用して対応できてよかったです
また、普段と違って 無駄なものがないか
という観点でソースコードやAWSコンソールを見ていると気づくことも多く、恒例行事にしていきたいと思います
大掃除Issueのイメージ
ペア作業(IssueのAssigneeに設定されていた人数)毎の件数は以下でした
今年は、4月よりSWEのktnyt 、7月よりSREのnappa のトレーナーをしていたため、毎月何かしらのペアプロや作業ができたのはとてもよかったと思います
12月の件数が多いのは大掃除の影響です
また、3人とか4人の内容があるのは、トラブル対応や、発見された既存不具合の修正対象がプロダクトの広範囲に渡るケース等を複数人で一気に対応した時のものです
SREチームは現状2人体制のため多人数で何かを進めることが少ないので、貴重な機会にはなります(バグを発生させないことが一番ですが…)
ペア作業件数
具体的な業務内容としては、以下のようなことがあったようです
抜本的な改修や新規機能の開発というよりは、既存の実装・運用上の不備を地道に改善していくということがほとんどだったように思います
- 契約SaaSや支払情報の一覧化
- アーキテクチャ図、ネットワーク図の作成
- SLO低下時のプロダクションフリーズの運用構築
- AWSのRI購入
- 死活監視の強化
- Kubernetesのクラスタアップデートおよび運用の手順改善
- インフラ及びミドルウェアバージョンアップ運用の手順改善
- READMEやCI/CDが未設定のリポジトリへの対処
- 各種ログの取得強化
- 脆弱性診断および指摘事項への対処
- WAF外部サービス導入
- Sorryページ表示機能の開発
- テックブログのインフラ構築
- 社内向けシステム・botの整備
- インシデント対応
- テクニカルサポートおよびバグ修正(ローテーションでたまに担当)
- ロードマップの作成および振り返り(リードとして)
- 採用応募者とのカジュアル面談・採用試験作成・技術面接(リードとして)
- 新入社員へのオンボーディング(トレーナーとして)
コミット
会社のOrganizationに対するコミットとしては、約3,000程度だったようです
コミット数
リポジトリへの貢献行数を可視化するKunitoriというCLIを直近で作ったので、そちらも使って見てみます
以下は、弊社のとあるプロダクトに対して書かれたテストコードの行数です
まず、1月時点の状態になります
2022年1月時点
こちらが、12月時点の状態です
2022年12月時点
私は普段SREをしているため、エンドユーザーにとってわかりやすい機能修正はしておらず、基本的にバグやセキュリティリスクの修正が主になるのですが、
そうした改修でもこまめにテストを書くようにしていたのと、既存コードでテストが書かれていないものに対して地道にテスト追加をおこなった結果、この1年で全体に対して8%程度が私の書いたテストになったようでした
テストを書くと、自分が書いてないコードでもかなり具体的に仕様を把握できるようになりますし、
例えば、外部APIへのリクエストがあるものでも、テスト可能にするためにモックのAPIクライアントを注入できるようにするなどのリファクタリングをおこなうことで、可読性や実行容易性を高めることができるものと思います
私は元々SWEからSREに転向したのもあるので、TerraformやKubernetesといったインフラに関する技術ばかりでなく、プロダクト品質を高めるための活動を広くおこなっていけたらと思います
個人的な活動
公開アウトプット
弊社で運営しているエンジニア向けポートフォリオサービスのLAPRAS に最近試験的に実装された機能として、月ごとの技術系SNSへのアウトプット件数をグラフで出してくれるようになったので見てみます
Activity Logのグラフ
今年は技術記事をたくさん書けたのがよかったと思います
Zenn 2022 Recap
として統計情報をメールで教えてもらえたのがうれしかったです
2022年の振り返り
Zennへの投稿は2020年から細々とおこなっていのですが、今年初めて3桁のLikesをもらいました
記事を書くモチベーションは基本的に自分のためではありますが、他の人にとっても関心がある内容であることがわかってよかったです
よく読まれた投稿
また、多くの人に読まれることのメリットとして、 有識者の方に間違いを指摘してもらえる
ということもあるなと思いました
基本的によくわかっていない事柄について自身が理解するために情報をまとめているため、非常にありがたかったです
誤り自体を減らしていけるよう引き続きやっていきたいと思います
登壇
先程のActivity Logのグラフで、10月に1件SpeakerDeckへのアウトプットがあったのですが、これはPyCon JP 2022 に登壇したことによるものです
Python Social Authで学ぶ、OAuth2.0認可コードフローにおける異常系への対処
というタイトルで、仕事でOAuthについて知ったことをまとめたものでした
初めて登壇したので相当緊張したのですが、会場では割と質問も多くもらえてありがたかったです
個人開発
CLIを2つと、Chrome拡張を1つ作りました
特に、Chrome拡張のDucktify は、仕事中にSpotify聴いてる方なら結構役立つのでないかと思います
OSS活動
基本的に個人リポジトリへのコミットが主でしたが、Starの多いOSSについてもいくつかPRをマージしてもらえたのでよかったです
資格
SWEからSREに鞍替えしたことで急遽まとまった知識を得たいなと思ったため、1月にCKAD、6月にCKAを取得しました
対して、年初にAWS SAAを失効してしまったので、来年は気が向いたらSAPを勉強してみたいと思います
技術書
今年読んだ技術関連の書籍で、印象に残っているものを貼っておきます
- 今年出たもの
- 既刊のもの
その他
去年から業後にランニングをするようになったのですが、なんとなく目標にしていた年1,000キロ走るのを達成できました
大会に出るとか、よりペースを早めていく…というよりは、健康のために極力同じ感じで継続していきたいと思います
おわりに
振り返ってみて、エンジニアとしての活動内容では今までで一番色々なことをしていたような気がしますが、
SREとして何をすべきか、悩みながら進めることが多かった1年であったように思います
また、今年(の特に前半)は個人プレーで物事に対処する場面が多かったという反省があるので、
来年は、よりチームや組織で解決していけるよう、やっていきたいとおもいます🐂
Discussion