こんにちは
10/5 - 11/13 で RECRUIT Job for Student 2020 ~Engineer/Data Specialist~ に参加していました。
RECRUIT Job for Student 2020 ~Engineer/Data Specialist~
今回、僕はスタディサプリ ENGLISH の SRE チームに配属されました。
桐谷美玲さんが CM に出演しているサービスですね!
待遇とか
基本オンラインでの勤務で、僕は週 3.5 日出社という形でした。割と頻繁に学校の用事などで抜けたりと、かなり自由に勤務をさせてもらいました 🙏
↑ のページに詳しく載っていますが、
- 時給 2000 円
- 交通費/宿泊費
- 技術書補助(上限 1 万円)
- 食事代
が出ました。 めちゃんめちゃん豪華です
オンラインなので交通費/宿泊費?と思われるかもしれませんが、希望する人は色々制限付きですが数日出社日を設けることができ、その際の費用と言った感じです。
2日間現地出社マンでした pic.twitter.com/RoggMQUoMH
— さんぽし (@sanpo_shiho) October 16, 2020
スタディサプリ ENGLISH は新しめのオフィスですごくきれいでした。
また、記載がありませんが、技術書補助と一緒に在宅勤務補助ももらう事ができました
書籍購入補助で買ってもらった〜〜 pic.twitter.com/noFwJWd2X2
— さんぽし (@sanpo_shiho) September 14, 2020
という事で積読補助はこの二冊を
在宅!!!補助!!!!!!! pic.twitter.com/PdkhtyM99w
— さんぽし (@sanpo_shiho) September 14, 2020
在宅補助は Magic TrackPad を買ってもらいました 🙏
またまた、食事代に関しては、ランチ代が毎勤務分もらえたので、近所の UberEATS を色々食べまくっていました。
やった事
Jenkins/ArgoCD のデプロイ通知の改善を行いました。
現状は ArgoCD の sync の完了の通知を出しておらず、ArgoCD のダッシュボードを見に行かないと完了しているかわからない、sync の失敗にもすぐに気がつけない、と言った問題がありました。
ArgoCD Resource Hooks と言う PreSync(sync の実行前)や PostSync(sync 完了)、SyncFail(sync 失敗)などの sync に関するイベントを検知して Job を実行することができる機能を用いて、Slack 通知を実現しました。 Resource Hooks の公式の例としても Slack への通知を送るサンプルが記載されています。
今回は自前で Go で実装を行った通知用のコンテナを実行します。
実行されるコンテナでは ArgoCD の Application CRD を利用して ArgoCD のリソースの状態を取得しています。現在 sync された(もしくは sync に失敗した)リソースの revision を取得することや、今までの sync の履歴なども取得することができます。そのためリソースの状態に応じたかなり自由度の高い動作をさせることが可能になります。
ArgoCD - Application Controller
今回は revision から GitHubAPI を通して Author を取得し、SlackAPI を通して Author に対するメンションを行うという流れで通知を行いました
つまりポイント
この記事の内容で 1 週間近く進捗が無でした
Kustomize を利用しているプロジェクトで ArgoCD Resource Hooks を用いて複数リソースで同一 Job を使用したいときに詰まるポイント
終わりに
今回 1.5 ヶ月/週 3.5 日と言う期間で学校と並列してかなり自由に勤務させていただきとても助かりました 🙏
モダンな CI/CD 環境の整っている中で多くのことを学べました。短い間でしたがお世話になりました!!
以下で部署の方の記事が出ているので気になる人はチェックしてみてください 👀