さんぽしのBLOG

さんぽしのBLOG

非理系の大学生が頑張りに頑張り抜いてエリートエンジニアになるシンデレラストーリー(予定)です。

Dive into mixi GROUP 2020に参加してきた話

こんにちは さんぽしです

3/16 - 4/17 でmixiの長期就業型インターンDive into mixi GROUP 2020に参加してきました。

僕は今回Unlimというスポーツギフティングのサービスを開発している部署に配属されました。(ここでは僕の大好きなElixirが使用されています!珍しい!)

unlim.team

選考〜インターン参加まで

選考の流れは数回人事の方と面接、その後エンジニアの方とも面接して、最後に実際に配属(予定)のチームの方と最終面接という流れでした。 個人的にはコーディングテストがなくて助かりました。笑

僕の場合インターンの最終面接に通ったのが3月の頭でした。

そこで最終面接かつ面談のような形でUnlimのチームの方と実際にお話させていただいて、実際にインターンでどういったことに取り組むかと言うことをざっくりと聞きました。

そこでElixirでバックエンドの開発というよりはDockerやKubernetesなどを使った開発を任せることになると思うという趣旨のお話を頂きました。

その当時の僕は「Dockerって何?」「Kubernetesってもっと何???」と言う状態でした。

3/16からインターン開始ということでかなり時間のない中でしたが(2週間)、事前課題ということでざっくりDockerとKubernetesをminikube上で動かして見て欲しいと言われていたのでとりあえず動かしてみつつ、Qiitaの記事にまとめたりしました。(Qiitaちゃんぶりにプチバズったので嬉しかったです)

qiita.com

この記事を書き終わった時点で1週間ほど余っていたので、これまで逃げてきたAWSのお勉強に勤めました。Qiitaに出てくるようなAWSの記事を色々読んでAWS上のどのサービスでどのようなことができるのかというのを本当にざっくり勉強しました。

インターンでやらせてもらったこと

はじめにメンターの社員さんとインターンの最終的な目標となるタスクを設定しました。

僕の最終目標として定めたタスクは masterブランチにPRを投げたときに自動で環境が作成されるデプロイフローの作成 です。

現在Unlimチームでは

  • masterにマージされる前にstaging/unstableブランチに一旦マージしてみる。
  • staging/unstableにマージされるとCircleCIが回ってstaging/unstable環境のデプロイが実行される。
  • staging/unstable環境でOKそうならmasterにマージ

と言う流れで開発が行われています。

これをmasterにPR投げただけでCircleCIが回りデプロイされるような環境に変更しようと言うのが今回の僕の最終タスクでした。

はじめはCircleCIの回るタイミングを変えるだけじゃね?みたいなことを思っていましたが、デプロイは単純にkubectl applyを打っているだけではなく、AWS上のリソースなどもどのように作成/管理するかという部分などもあり、とても面白いタスクでした。

使用した技術としては、Docker, Kubernetes, Helm, CircleCI(,ECR, EKS)あたりです。

詳細はQiitaに別記事としてまとめたので興味のある方はぜひ読んでみてください!

qiita.com

インターンの途中でコロナが猛威を振るう

インターンの2週間目を終えたとき小池さんが「東京やばいっす、外出まじやめてね」という会見をしたこともあって、インターン生含めて(基本)リモートの勤務に変更されました。

mixi.co.jp

個人的に文章を書くのがすごく苦手で冗長にタラタラ書いてしまう癖があるので(ブログも読みにくいと思います…)、Slackなどのコミュニケーションだけになるという部分は不安もありましたが、1日に2回ほど入れてもらったオンラインでの1on1などで心配することはなかったです。

というか後でよく考えたらいつも開発する時は爆音イヤホンで周りの音をシャットアウトするのでそこまで頻繁に直接コミュニケーション取ってたわけでも無いなとも思ったり

また、リモート勤務の開始に伴って、契約社員やアルバイトを含む全ての社員にhoge万円の機材購入支援が行われました。

小池さんの会見があった2日後にもう機材購入支援の事がアナウンスされ、会社としてエンジニアの働きやすさ(=生産性につながる)を重視するという姿勢が見て取れてすごいなっと感じました。

僕も遠慮なくディスプレイを購入しました。京都の下宿にディスプレイがなく、そういう面でもとても嬉しかったです。

これからの開発にめちゃめちゃ役立てていきます…!!!💪

終わりに

Docker、Kubernetes何も知らない状態から本当に多くのことを学ぶことができました!

具体的には

  • Docker, Kubernetesとはなんぞや
  • CiecleCI、CI/CDとはなんぞや

と言った基本的な部分から

  • どのようにmanifest, リソースが管理されるか(Helm, ArgoCD)
  • アプリケーションがどのようにインフラ的に組み合わさって動作しているか

などまで本当に幅広く濃い内容を学ぶことができました。

最高のインターンでした!! 一ヶ月の間お世話になりました!!!

興味がある方は夏季とかもやってるので応募してみてください!!

mixi-recruit.snar.jp