サイバーエージェントのおうち Kubernetes インターンに参加して
はじめに
(追記(2020/10/11):参加結果を追加しました)
内容 | |
---|---|
いつ(期間) | 2020年9月 (約1週間) |
どこ (主催者) | オンライン (サイバーエージェント) |
だれ(参加者数) | 個人開発(参加者20人ぐらい) |
なに(作業内容) | ラズパイを使ったk8s開発 |
私が今回参加したのはサイバーエージェントが主催していた7days インフラ向け開発型インターン ONLINEというものです。
内容はラズパイを三台使って k8s クラスタを作成しその後参加者ごとに課題を決めて取り組むというものでした。
事前に構築に必要なものが郵送され仕様書となる Github のリポジトリを参考に進めるという流れです。
k8s クラスタを作る部分はkubeadm
を使った構築と一つ一つ自力で設定する構築の 2 種類がありました。私は後者の方を選択しました。こちらはhard wayといいこちらの GitHub を参考に作成したそうです。
インターン前
参加の経緯
私がこのインターンに参加しようと思ったきっかけは今年の 7 月に行われたサポーターズ主催の技育祭です。ここで本インターン主催メンバーの青山さんの公演を聞き k8s についてもっと知りたいと思うようになりました。
参加するまで docker を使って開発を行っていたので興味はあったのですが勉強する一歩が踏み出せていない状況でもありました。今回のインターンを通して k8s について知るとともに k8s を取り巻くcloud native技術に触れたいと思い参加を決めました。
参加前のスキル
参加するまでに私は web 開発の経験がありフロントからバックまで広く浅く知っているという状態でした。 インフラに関しても docker を使ってデプロイしたりログ取得の環境を整えたりというように公式のチュートリアルを少しいじれるぐらいのスキル感でした。
参加までのフロー
参加決定までの流れは、
- エントリーシートを記入
- 書類選考を抜けたのちに面接
です。他の web 企業は書類選考と同時にコーディングテストがあるのですがサイバーエージェントではそれがないので思いっきり k8s への熱意と参加の意欲をぶつけました。それが良かったのかもしれません笑
インターン前の準備
サイバーエージェントではインターンを始める数日前にオリエンテーションが開催されます。目的としては顔合わせと目標設定、その他諸連絡です。
個人的にはこの会が今後の開発に活きたと感じています。このインターンを軸に今後どうするのかをしっかり考えることで 1 週間という短い期間を有効活用することができました。具体的にはインターン後の自分を思い描き、実現するためにはインターン中何をするのかを決め、そのために開始前の期間で何をするべきなのかを設定しました。
これはこのインターンに関わらず様々なところで活きる考え方なので今後も意識して取り入れたいと思います。
インターン中
(詳細は別途書きます)
やったこと
インターンは実質五日間(土日除く)で行われました。初日は自己紹介をしたのちにメンターさんから本インターンの説明がありました。 その後四日間は2−3 人のチームに分けられて各々開発に専念するという感じで進みました。 1 日の流れは、
- 10 時ごろに朝会をしてその日の連絡事項を聞く
- 作業を進める(私のチームは zoom をずっと繋いで作業していました)
- 午後に LT 会がある日は参加する。サイバーエージェントのインフラエンジニアについて知る
- 19 時ごろにチームごとに進捗報告をして終了
という感じです。ただ五日間しかなかったのでその日の進捗報告が終わった後も作業を進めていました笑
最終発表について
そして最終日は一人 3 分のプレゼンがありました。約 1 週間何をしてきたのかを報告しました。
私はクラスタを作成したのちに pod 間の通信に興味を持ち、CNIを変えてみたりistio
を導入して理解を深めました。
他の参加者は
- ログ監視基盤の構築(
prometheus
やgrafana
、fluentd
やelasticsearch
など) ansible
で hardway の内容を自動構築- 自作のアプリをクラスタ上で動かす
などに取り組んでいました。どれも魅力的で私も挑戦してみたいと思いました!
他の参加者が取り組んだ例
インターンを終えて
感想
約 1 週間のインターンを通して k8s の仕組みを理解することができました。hard wayに取り組んだことで各コンポーネントの役割や設定方法を知ることができ、k8s が既存の技術の上にできていることを実感しました。また設定を地道にやったことでインフラの基礎的な理解が深まりました。特にCNIpluginを交換したことでネットワーク周りの知識がついたと思います。
また CPU アーキテクチャの違いを意識するようになりました。k8s クラスタを作る上でラズパイは手軽で設定も楽なのですが、DockerHub からイメージを持ってこようとした時ベースイメージがarm64対応でないと動きません。アーキテクチャの違いを考慮して作業することが多く正直大変でした...
最後に、メンターさんを通してサイバーエージェントについて詳しく知ることができました。
今回のインターンでは各チームにメンターさんが一人配属されました。些細なことからかなり込み入ったことまで相談に乗っていただき最終日は深夜二時まで付き合っていただきました。本当にありがとうございました🙇♂️
開発以外のこととしては、午後にLT会を開催していただきサイバーエージェントの裏側を垣間見ることができました。ゲーム、メディア、広告の三つの事業から社員さんが一人ずつ発表されて日頃の業務内容や扱っている技術、最近やっていることなどざっくばらんに聞くことができました。
このインターンを通して個人ではできないことを経験することができました。今後とも精進していきたいです。1週間という短い間でしたが大変お世話になりました。ありがとうございました。
結果、最優秀賞をとることができました。
アベマくん大切にします笑 ありがとうございます!