2022年4月〜6月の個人OKR


2022 年 1 月〜3 月の振り返りが終わったので、次の個人 OKR を立てることにしました。ざっくり立てて細かくブラッシュアップします。GW 前までには確定させる予定です。

Objective: 効率的なシステム運用が可能なアプリケーション設計ができるエンジニアとなる

調査に必要なログを出したり、ユーザーの行動を予測してエラーハンドリングすることをベースに、それらを利用して問題を検知する仕組みを作る、想定していた利用人数の範囲内で業務を圧迫するような負荷の高い運用を発生させない。そういった状況になっていないかを常に計測して危険を事前に察知することができる。

作るだけではなくその後も想定の範囲内でコントロールする、そんなことができるエンジニアって良いなと思いました。

KR1: システム運用に関連した情報を学ぶ 

本をベースに学ぶ想定です。1Q では本を読んだ、読まないで設定して失敗したと感じたので読んだページ数を指標としてみることにしました。これにより、自分が 3 ヶ月で読める分量を大雑把に見積もることも目的とします。

  1. 300 ページ読む: 30%
  2. 600 ページ読む: 60%
  3. 1200 ページ読む: 100%

1 週間 50 ページくらい読めたら大体 60%達成。GW があるのでそこの影響は気になるところですがやってみて判断です。

読む予定の本

  1. システム運用アンチパターン
  2. ソフトウェアアーキテクチャの基礎
  3. 実戦 bash によるサイバーセキュリティ対策 など

KR2: 学んだ設計を独自のアプリケーションに組み込む

上記で学んだことを自身のアプリケーションに組み込み、適当にエラーなど発生させて試す想定です。1Q で作成したアプリケーションをベースにします。エラーハンドリングとかステータスコードガタガタなので自分のコードながら頑張りが必要そうです。

  1. 適切なエラーログの形を設計する: 30%
  2. 想定されるエラーをフロント、API 共に 100%ハンドリングする: 50%
  3. エラーログを Slack に検知する仕組みを作る (GCP => Slack の予定、API 乗っているの Cloud Run なので): 60%
  4. …考え付かず。

KR3: システムの外から DB 操作する場合を想定したツールの作成

DB 直接操作する系の運用や、CSV 取り込んで DB にデータを入れるようなもの、バッチ処理などシステムの外からシステムに影響を与える操作を想定しています。割と場当たり的に作ってはこれ正解にどれくらい近いのだろう?と思うことも多いので、自分が納得できるものを模索したい。

  1. 支払い情報(※)を CSV から DB に取り込む処理を作る: 30%
  2. DB 操作(CRUD)をするシェルみたいなツールとかを作る: 60%
  3. 定期実行するバッチ処理を作成する: 100%

※支払い情報なのは 1Q で作ったものが家計簿を想定していたからです

運用ってパズル要素があって楽しいかもしれない

アプリケーションは作った後の方が長いので、長期的に保守できるか、継続して大きなコストがかかり続けないか、開発を引き継ぐエンジニアのモチベーションやストレスは大丈夫かなど色々と考えなければいけないところがあると感じます。

わたしは機能を作る部分だけでなく、後のことを考えた仕組みづくりの部分も考えるの楽しいと感じてきたので、そのモチベーションをベースにしっかり学んで、今関わっているプロジェクトとか、今後のプロジェクトで良い影響を出せると良いなと思っています。

自分ではプログラムを書くことが結構好きだと思っているのですが、根本的には問題を解決することをパズルみたいに楽しめるからプログラムが好きという部分があるのかなと最近思うようになりました。なので、そういったパズル要素があればあんまりコード書かなくても苦ではないかもしれず、そうなると選ぶ選択肢も増えるなと思ったり。まだまだ知らないことばかりです。