mercari.go #17 を開催しました #mercarigo

はじめに

こんにちは、mercari.go スタッフの @otter です。

10月21日にメルカリ主催のGo勉強会 mercari.go #17 をオンライン配信にて開催しました。 この記事では、当日の各発表を簡単に紹介します。動画もアップロードされてますので、こちらもぜひご覧ください。

新卒エンジニアとGoの付き合い方

1つめのセッションは @Makoto Naruse (naruse) による「新卒エンジニアとGoの付き合い方」です。

発表資料: 新卒エンジニアとGoとの付き合い方

前半はインターンから新卒研修までの期間にどう Go を学んでいったか、後半はチーム配属後にどう実務での課題と向き合ってきたかを、具体的に Go の context cancel や並行処理の仕組みを説明しながら紹介しました。

Notification Team ならではの、大量配信向けの channel と context の扱いの話はとても分かりやすかったです。

How to make Kubernetes Controller Development Happier

2つめのセッションは @伊藤 雄貴 (yuki.ito) による「How to make Kubernetes Controller Development Happier」です。

発表資料: How to Make Kubernetes Controller Development Happier: mercari.go #17

はじめに Kubernetes Controller の基本の仕組みを Built-in Deployment Controller で、Pull Request Replication Controller や Istio、spanner-auto-scaler を例に Custom Kubernetes Controller や CRD (Custom Resource Definition) の説明をし、後半は実際に Controller をどうやって作成するかコード生成、テスト、デバッギング方法のテクニックを紹介しました。

中でも CRD を複雑な YAML ではなく Protocol Buffers として定義する発想は新鮮でした。

Kubernetes Github Operator の紹介

3つめのセッションは @Ryota Yamada による「Kubernetes Github Operator の紹介」です。

発表資料1: Pull Request Replication Controller 発表資料2: KET / Kind e2e Test framework

2つめのセッションで説明があった Custom Kubernetes Controller のひとつである Kubernetes Github Operator の紹介と Controller のロジック部分の UnitTest の作成方法、そして自ら作成した Kubernetes Controller の E2Eテスト用フレームワーク KET の紹介がありました。

Kubernetes Controller のE2Eテストを作ることを想像すると、自前で一からセットアップするのが大変そうなイメージがありますが、このフレームワークでは、Skaffold でビルド&デプロイするパイプラインが用意されていて、デバッガーとして Delve もインストールされているので、だいぶ楽にテストを行えそうです。

おわりに

今回は Custom Kubernetes Controller と言った Kubernetes を使っていない人には少し身近でない話題がありましたが、2つのセッションでまず基本の説明から入っていったので、身近でなかった人にも最後まで楽しめる内容になっていたのではないでしょうか。

また、個人的にはメルカリ内で広く使われている PubSub Client ライブリの一部が紹介されたときに、元メルカリ社員の作者が Twitter で反応してくれたので、いつも見守っていただけてありがたいなと思いました!

ライブで視聴いただいた方も録画を観ていただけた方も本当にありがとうございました!

それでは次回の開催もお楽しみに!