特に印象深かったものを振り返ってみます。
Circle CIのセキュリティアラート対応
年末年始休暇が明けてすぐ、Circle CIのセキュリティアラートに対応しました。
バックエンドチームの他のメンバーはお休みだったのですが、kazuさんの協力を得ながら対応を進めることができました。
GoアプリケーションのCI/CDのビルド時間を短縮
koをベースにしたパイプラインに置き換えて、CI/CDの実行時間を5分から1分30秒程度に短縮しました。
サイドプロジェクトとしての総会運営
mikanの2Qの総会の運営を担当することになり、運営のプロジェクトマネジメントと、コンテンツ設計などをやっていました。
総会ではmikanにまつわるクイズセッションを用意して、出題・回答・集計ができるアプリケーションを皆に触ってもらいました。
アプリケーションについての詳しい内容は、Zennに記事を書いています。
※ちなみにmikanの四半期は、1月から始まります。2Q総会は6月23日に実施されました。
Go Conference 2023
6月に業務時間を使って、オンラインでカンファレンスに参加させてもらいました。
テストや静的解析、メモリ、コンパイル時の最適化などといったトピックをメインにセッションを聴いて、非常に勉強になりました。
Go Conference mini 2023 Winter In KYOTO
12月に開催されたGo con miniにはオフラインで参加しました。久々のオフラインイベントはすごく良かったです。
学びが多く、さらには会場や懇親会、2次会で色んな方と交流できたので満足度が高いです。
レシートログの分析基盤をBQへ移管
これまでレシートをそのままS3に保存し、Athenaで解析するときによしなにJSONをパースしていた部分を、ある程度アプリケーション側のロジックによってパースした状態でBQに保存するという仕事をしていました。
下記の記事を参考に、BigQuery Subscriptionsを利用した構成にしました。
BQへの移管後は、あるSKUの有効期間などを集計するクエリなども作っていました。App Storeのサーバー間通知やGoogle Playのリアルタイムデベロッパー通知によって得られる様々なイベントをもとに、アップグレードやダウングレード、請求保留期間などを考慮するのが大変でした。
SREっぽい動き
作りっぱなしであまり運用されていなかったCloud Monitoringを、朝会後にウォッチするようにしたり、分散トレーシングできるようにしたり、必要であればAPIやインフラに手を加えるということをしていました。
mikanのバックエンドチームは自分を含め2名しかいないので、日々よしなに色々対応しています。
今年はバックエンド起因の障害が多い年で、システム障害を経て…というところが大きいです。
APIサーバのレイテンシが遅くなっていたら該当のエンドポイントを特定してSQLをチューニングしたり、GraphQLのクエリのうち負荷の高い部分をモデルリゾルバに切り出したり、DBコネクションのプライマリ/セカンダリを見直したりといった地道な積み重ねで、メトリクスは落ち着くようになりました。
社外との接点
2月にmikanに入社して1年が経ち、プライベートも落ち着いてきたこともあって積極的に社外とのつながろうとした年でもありました。
mikanとして実施させていただいたカジュアル面談や、個人的に受けたカジュアル面談などを含めると、結構な数の接点を持たせていただきました。
さらには、色々なイベントに参加して、そこで生まれたご縁もありました。
その中でも、現在も継続的に接点を持たせていただいている企業様、団体、個人の方々がいらっしゃるのは本当にありがたい限りです。引き続きよろしくお願いいたします。
最後に
今年もいろんなことに挑戦できて、非常に濃い1年になりました。いつも支えてくれる妻や会社のメンバーのおかげだと思います。
来年も良い年にできるように頑張ります。