This page looks best with JavaScript enabled

RECRUIT Job for Student 2020 ~Engineer/Data Specialist~に参加してきた

 ·  ☕ 3 min read  ·  ✍️ さんぽし

こんにちは

10/5 - 11/13 で RECRUIT Job for Student 2020 ~Engineer/Data Specialist~ に参加していました。

RECRUIT Job for Student 2020 ~Engineer/Data Specialist~

今回、僕はスタディサプリENGLISHのSREチームに配属されました。

スタディサプリENGLISH

桐谷美玲さんがCMに出演しているサービスですね!

待遇とか

基本オンラインでの勤務で、僕は週3.5日出社という形でした。割と頻繁に学校の用事などで抜けたりと、かなり自由に勤務をさせてもらいました🙏

↑のページに詳しく載っていますが、

  • 時給2000円
  • 交通費/宿泊費
  • 技術書補助(上限1万円)
  • 食事代

が出ました。
めちゃんめちゃん豪華です

オンラインなので交通費/宿泊費?と思われるかもしれませんが、希望する人は色々制限付きですが数日出社日を設けることができ、その際の費用と言った感じです。

スタディサプリENGLISHは新しめのオフィスですごくきれいでした。

また、記載がありませんが、技術書補助と一緒に在宅勤務補助ももらう事ができました

という事で積読補助はこの二冊を

在宅補助はMagic TrackPadを買ってもらいました🙏

またまた、食事代に関しては、ランチ代が毎勤務分もらえたので、近所のUberEATSを色々食べまくっていました。

やった事

Jenkins/ArgoCDのデプロイ通知の改善を行いました。

現状はArgoCDのsyncの完了の通知を出しておらず、ArgoCDのダッシュボードを見に行かないと完了しているかわからない、syncの失敗にもすぐに気がつけない、と言った問題がありました。

ArgoCD Resource Hooksと言うPreSync(syncの実行前)やPostSync(sync完了)、SyncFail(sync失敗)などのsyncに関するイベントを検知してJobを実行することができる機能を用いて、Slack通知を実現しました。
Resource Hooksの公式の例としてもSlackへの通知を送るサンプルが記載されています。

ArgoCD - Resource Hooks

今回は自前で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環境の整っている中で多くのことを学べました。短い間でしたがお世話になりました!!

以下で部署の方の記事が出ているので気になる人はチェックしてみてください👀

Share on

さんぽし
WRITTEN BY
さんぽし
Web Developer /w Elixir, Go