雑記帳

怪文書書庫

サイバーエージェントのおうちkubernetesインターンに参加した

巷では話題のおうちkubernetesインターンに参加してきました。おうちkubernetesについて詳しく知りたい方はこちらのブログを読んでみてください。

developers.cyberagent.co.jp

参加した動機

クラウドネイティブ技術に以前から興味があったのと、kubernetesを使ってみたいという気持ちで応募しました。参加特典でIntel NUCも貰えるという事でアツかった。

サイバーエージェントインターンは昨年度アドテクコンペに参加して以来です。この時もkubernetes(GKE)を使っていたのですが、最近業務でkubernetesを使っているとはいえ、ほぼ一年ぶりのkubernetesということになります。

www.cyberagent.co.jp

普段アプリケーション寄りの事をやることが多いのであまりインフラに触れるという事はないのですが、アプリケーションの運用に関しての知識は増やしたかったのでちょうどいい機会だと思いました。

f:id:shikugawa:20190921010847j:plain
人数分用意されているIntel NUC

内容

2日間で行うインターンで、1日目の午前中で軽い座学を行った後、各自でテーマを設定してやっていくって感じでした。このインターンの面白い所は実際にIntel NUCが配布されて、その中で仮想的なマルチノードクラスタを作ってその中で色々と作業を行っていくという形だった事です。今回はクラスタの構成ツールとしてkindを使っていました。

kind.sigs.k8s.io

やったこと

最近EnvoyにハマっていたのでEnvoyを使ってなにかしたいと思ってました。EnvoyはクラウドネイティブなHTTP Proxyで、Circuit BreakerやService DiscoveryみたいなService Meshの構築に必要な機能を一通り備えています。HTTP/2にも対応しているので、gRPCのロードバランシングなんかも出来ます。モダンなC++で書かれているのも個人的に好感度高くて最高です。C++はいいぞ。

www.envoyproxy.io

EnvoyにはHTTP Filterという機能があって、L7なIngress/Egressを掴んでヘッダを書き換えたりする機能があります。このフィルタはLua Scriptingでプログラマブルな通信の制御を行うことが可能なのでかなり色々な事ができそうです。これをうまく使ってA/Bテストのような仕組みに必要なネットワーク周りの処理をEnvoyに切り出せないかどうかを確かめるということをやりました。kubernetesインターンなので、必要なアプリやミドルウェアは全てkubernetesで再現できるようにしております。

github.com

詳しい内容に関しては後日Qiitaかなんかに上げます。

感想

新しめの技術を実際に手を動かして触ってみるという事を最近あまりやっていなかったのですが、このインターンでその楽しさを思い出しました。コードを書き始めた高校生の頃に戻ったかのような心持ちです。2日間しかないので作業時間はあまりないのですが、メンターさんのサポートがあるというのが心理的安全性につながっており、詰まったら積極的に質問できるという環境があったのが非常にありがたかったと思いました。おかげ様で最優秀逸般の誤家庭賞(!?)を頂くこともできました。

f:id:shikugawa:20190921011511j:plain
アベマ君ぬいぐるみとTシャツをもらった

ちなみに真ん中の青いぬいぐるみはGo言語のマスコットキャラクターのGopher君です。このインターンの参加者だった知り合いに購入をお願いしていたのですが、それが期間中に届いたみたいなので会場で引き取りました。このキモかわいさがいい味出してます。

参加特典のIntel NUCはもう一台買ってきて物理kubernetesクラスタを組んで使ってみたいと思います。

2日間ありがとうございました!!!!!!!