Yahoo! Japanのインターンに参加しました
こんばんは。@mohutarou_ACです
今年Yahooのサマーインターンに参加したので、忘備録もかねて活動をまとめたいと思います。
わーい!
-
インターン選考
エントリーシート→面接 といった選考がありました。
自分の過去に作ったスマホゲームやwebサービスについての話をしました。
競プロにはまっていたので、大規模なデータをサーバ側でどう扱うのか興味があるといったことを伝えました。
PaaSやCIについて聞かれましたが、知らなかったので正直にそう答えました。
正直落ちたと思いましたが、幸い参加させていただくこととなりました。
-
インターン内容
5日間のインターンで、僕のチームは4人でした。
ベンチャーでバイトしてたり、院で研究してたりとガチプロが多かったです。
僕は社内PaaSを扱う部署に配属されました。
ヤフオクとか知恵袋のイメージが強かったので、配属を聞いたとき正直びっくりしましたw
PaaS上にはたくさんのVMが動いています。そのVM上で動いているアプリケーションの中でCPU使用率が高いものを表示するWebサービスの開発に取り組みました。
一日目
他社のインターンとは違い、初日は丸々講習でした。以下の4つです。
- PaaSについて
- Concourse(CI)について
- スクラム開発について
- Go言語について(A Tour of Go)
講習は難しかったですが、高専の授業とは違い質問しやすい雰囲気だったので、色々聞くことでそれなりに理解できたのが良かったです。
特にCIのパイプラインを定義することで、自動テスト以外にも自動デプロイやバッチ処理等様々なことができると聞き、感心しました。
メモ帳までいただいたので、気合を入れてメモを取りました
10ページほどメモした気がします。えらい。
二日目
この日はスクラム開発に基づいた設計を行いました。
サーバの構成は決まっていたので、それをどう実装に落とし込むかを詰める作業をしました。
この時、各タスクに必要な時間を見積もると同時に、メンバー間で認識のずれがないかのすり合わせを行いました。
確か3~4時間の作業になった気がします。
今まで考えるより先に手を動かしてきたので(ダメ)、設計に数時間かけたのすらこれが初めてだった気がします。
1スプリント(今回は5日)で取り組むチケットをすべて作りました。
環境構築とgitのリポジトリを作って、この日は終わりだった気がします。
夕食にチーズダッカルビを食べました
三日目
作成したサービスは大まかに以下の構成になってます
- Batch
EXPORTERから各VMのアプリケーションのCPU使用率を取得
頻度は30分に1度
POSTされたCPU使用率情報を受け取り、RDBに保存する。
ブラウザからGETがあった際、CPU使用率を降順ソートして値を渡す
- フロントエンド
CPU使用率を、各VMごとに使用率が高いものから区切って表示する
四日目
二日目に決めたエピックは達成したので、webサービスの質を上げようとしました。
- 過去のある地点のCPU使用率情報を取得できるようにしました。
- フロントエンドを凝って、CPU使用率をグラフにしようと試みましたが、これは結局間に合いませんでした。
最低限は完成したとはいえ、満足のいくサービスを作れず悔しかったです。
お昼に東京のお寿司に連れてってもらいました。美味しい...
最終日
僕たちが作っていたサービスは、Prometheusという有名なOSSの監視ツールに似たサーバの構成だと教えていただきました。
OSSは自分からほど遠いガチプロの世界だと思い敬遠していましたが、少しだけそのハードルが下がった気がします。
スプリントの最後の振り返りがありました。
成果発表のためにスライドを作るのに時間がかかり、辛かったです。
成果発表会と懇親会がありました。
懇親会ではお寿司やそばやローストビーフが出ました。美味しかったです。
-
最後に
知恵袋とヤフーキッズとヤフー路線以外使ったことありませんでしたが、これからはほかのサービスも触ってみようと思いました。
大きな会社で、なんとなく堅いイメージを持っていましたが、エンジニアにとって働きやすい環境がそろっていると思いました。
まだまだ未熟な自分ですが、今回のインターンで得たチーム開発の経験と、講義内容は
とても自分の力に結び付きました。
最高のインターンをありがとうございました!
ステッカーをたくさんいただいたので、欲しい方はTwitterまでどうぞ!