2021年3月29日 ~ 4月4日 振り返り

先週の振り返り。

仕事

先週は、Play 2.6へのMigration作業を行いました。

機能開発ではなく改善タスクに多くの時間が割ける今、フレームワークのバージョンが古いものを上げていこうとチームで動いており、先々週あたりにPlay 2.4 から 2.5 に上げて問題がなかったので、2.6 にも上げてしまおうという流れです。

ただ、Play 2.5 から 2.6 へのMigrationに関して、Migration Guideを読んでもらうと分かるのですが変更点がかなり多いです。 www.playframework.com

play-jsonがライブラリとして切り出されたり、Akka Httpがサーバのデフォルトになったりと既存のコードに影響するものが多く、「コンパイルが通らないから通るように修正 → テストが通らない → 修正すると他でエラーが出る → 修正する」 みたいなサイクルをぐるぐる回していました。

今のプロジェクトに入ってから機能追加や修正をやっていましたが、Play自体にあまり詳しいわけではありません。今回2.6へのMigration作業を通してPlayFramework周りの知識を深められればなと思って作業しているので、かなり楽しく作業を進めれています。

先週だけでは終わる量ではなかったので、次のスプリントでも作業することになりそうです。

Migration作業について

アプリケーションフレームワークのMigrationは、Migration Guideがある場合はそれらをチェックシートにして作業を1つ1つ進めるのが良かったです。

というのも、変更内容が多い場合にいくつも修正作業を同時に進めてしまうと、どれがどこまで進んだのか進捗管理が難しくなってしまいます。また、修正作業の抜け漏れも発生しやすい状態になってしまうからです。

また、Migration作業を進めるに当たり作業ログも逐次書いていくと良いと思います。

作業ログがあると時間が空いてしまった場合にも思い出しやすいですし、作業を誰かに引き継ぐ場合にもここまでこういう内容で進めたと共有しやすくなるからです。

プライベート

注文していたOura Ringが届いて、最近コンディションや睡眠の数値を改善する活動にハマっています。

睡眠時の何が悪いのかを具体的な指標で示してくれるので、改善するポイントが分かりやすいのが気に入っています。

Amazonで買うと5万以上しますが公式サイトで注文すると3万弱で買えるので、もし検討されている人は公式サイトで買うことをオススメします!

ouraring.com

やったこと

  • AWS DevOps Engineer資格勉強
  • アルゴリズム実技検定公式テキスト 6.3 幅優先探索と深さ優先探索 まで

読書

入門 監視

入門 監視 ―モダンなモニタリングのためのデザインパターン

入門 監視 ―モダンなモニタリングのためのデザインパターン

  • 作者:Mike Julian
  • 発売日: 2019/01/17
  • メディア: 単行本(ソフトカバー)

先週は「入門 監視」を読みました。もっと早く読んでおけば監視の仕組みを作る際に参考になったのになと思いながら読んでました。

監視のアンチパターンやデザインパターン、良いアラートの仕組みなど、監視についてギュッと濃い内容でまとまっています。

あと、付録Cとしてsongmuさんが書かれた実践 監視SaaSも非常に勉強になりました。

3章には「良いアラートの仕組みを作る6つの方法」について書かれているのですが、その1つに「アラートにメールを使うのを止める」というのがあります。

アラートの使い道は以下の3つに集約されると書かれています。

- すぐに応答かアクションが必要なアラート
    - SMSなどに送る
- 注意が必要だがすぐにアクションは必要ないアラート
    - 社内チャットに送る
- 履歴や診断のために保存しておくアラート
    - ログファイルに送る

お客様とチームで使っているDataDogのアラートがメールとSlackに送られており、特にメールの量が多すぎるので注意力が削られている原因にもなっているので改善の余地があるなと感じました。

  • 監視アンチパターン
    • ツール依存
    • 役割としての監視
    • チェックボックス監視
    • 監視を支えにする
    • 手動設定
  • 監視デザインパターン
    • 組み合わせ可能な監視
    • ユーザ視点での監視
    • 作るのではなく買う
    • 継続的改善
  • 良いアラートの仕組み
    • アラートにメールを使うのを止める
    • 手順書を書く
    • 固定の閾値を決めることだけが方法ではない
    • アラートを削除し、チューニングしよう
    • メンテナンス期間を使おう
    • まずは自動復旧を試そう