CloudNativeDays Tokyo 2019登壇までの軌跡

## 背景
色々リクエストを受けたので自分が[CloudNativeDays Tokyo 2019](https://cloudnativedays.jp/cndt2019/)で「Kubernetes Logging入門」で登壇するまでの流れを順を追って書いて行きます。

## 発表資料
当日発表した「Kubernetes Logging入門」の資料は以下になります。
https://twitter.com/yosshi_/status/1153584813401501696

## イベント当日までの流れ

### 2018年12月 Lokiとの出会い
今回、発表の主軸に置こうと決めた「Grafana Loki」ですが「[KubeCon 2018 NA](https://events.linuxfoundation.jp/events/kubecon-cloudnativecon-north-america-2018/)」の「[Grafana Loki: Like Prometheus, but for Logs](https://sched.co/MPbj)」の発表で見つけました。

当時はオンプレミスでKubernetesを使うにあたり、ログに関して以下の課題感を持っていました。(今でも同じ課題感を持っていますが・・)

- オンプレミスでKubernetesのログを扱うプロダクトElasticsearchくらいしかない
- 既に運用経験があったり、BIツールとして使うならまだしも、ただログを集めるだけに新規にElasticsearchを使うには運用コストが高い
- もっと機能が限定的でもいいので導入が簡単なプロダクトが欲しい

この状態の中で、Lokiを知った時の自分の感想は以下です。

- やっとk8sのログも扱えるじゃなくて、k8sのログを扱う前提のプロダクトが登場してきた
- 既にk8sのメトリクスでデファクトであるPrometheusと同じような操作感でログを扱えるというコンセプトなので、運用に関する習熟コストが他のプロダクトに比べて低くなることに期待したい
- メトリクス以上にログの方がスケーラビリティが問題になると思っていましたが、[Cortex](https://github.com/cortexproject/cortex)を踏襲した水平スケールの仕組みがプロダクトのデザインとして組み込まれているので運用後の負荷の問題にも対処できるかも
- PrometheusやGrafanaに貢献しているGrafana Labsが開発を推進しているので安心感がある

当時はまだ、α版なのでとても使えるような状態ではなかったのですし、注目もされてなかったのですが、面白そうなプロダクトだったのでどこかでまとめて発表できたらなと思っていました。

### 2019年2月 CFP応募
セッションの方がこんな感じで公募があるので応募して、選考の結果「採択」されると発表する流れになります。
https://twitter.com/cloudnativedays/status/1091311353090822149

#### CFPを出した動機
自分も同じ舞台に立ってみたいなと思ったので出してみました。

#### 発表テーマのコンセプト
とりあえず、Lokiを主軸にして何か話そうと思って考えていました。

#### 市場のニーズ調査
MeetUpとかで色々な人と話してみると、LokiというかそもそもKubernetesのログがよく分からないという人の方が多いなと。Kubernetesを使って商用のプロダクトを運用しててもログ周りは正直あまりみたいな人も珍しくないように感じる。

自分で色々調べてみてもメトリクスに関しては色々情報が集まるけど、ログ周りでまとまったドキュメントがないので・・・じゃあ、自分で作るか・・

#### 最終的なテーマ
Lokiを理解するにあたって必要なKubernetesのログ周りに関する知識が市場で足りていないので、
ログの基本的な内容について最初に体系的に説明して、最後に少しLokiに触れるくらいの感じにしようと思ってCFPを出しました。
最終的に自分が出したCFPの内容は以下になります。採択されてから文面に変更がないとそのままの内容でイベントサイトのスケジュールに転記されます。

|<img width="588" alt="CloudNative_Days_Tokyo_2019_-__CNDT2019.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309176/269e6a12-8a65-2525-73ab-0bdf81bdd0f8.png">|
|:------------------:|

### 2019年5月 KubeCon 2019 EU

「[KubeCon 2018 NA](https://events.linuxfoundation.org/events/kubecon-cloudnativecon-europe-2019/)」の[Keynote](https://sched.co/MRzA)で取り上げられて、割と話題になったので追い風を感じてモチベーションが上がる

### 2019年5〜7月 資料作り

#### 資料作成のためのInput

- 参考サイト
	- [Kubernetesの公式サイト](https://kubernetes.io/docs/concepts/cluster-administration/logging/)
	- KubeConのObserbilityのカテゴリの過去の発表
		- [2018 NA](https://kccna18.sched.com/overview/type/Observability?iframe=yes&w=100%&sidebar=yes&bg=no)
		- [2019 EU](https://kccnceu19.sched.com/overview/type/Observability?iframe=yes&w=100%&sidebar=yes&bg=no)
	- [Grafana LokiのGithub](https://github.com/grafana/loki)
	- [Grafana LabsのBlog](https://grafana.com/blog/)
	- [Weave worksのBlog](https://www.weave.works/blog/)
- 参考書籍
	- [Kubernetes完全ガイド](https://www.amazon.co.jp/dp/B07HFS7TDT/ref=cm_sw_r_tw_dp_U_x_IAyuDb2VE173Z )
	- [Kubernetes実践ガイド](https://www.amazon.co.jp/dp/4295006637/ref=cm_sw_r_tw_dp_U_x_vByuDb7M32233 )
	- [Kubernetes実践入門](https://www.amazon.co.jp/dp/B07P8S2KQ4/ref=cm_sw_r_tw_dp_U_x_0ByuDbV883NE)
	- [Mnaging Kubernetes](https://go.heptio.com/rs/383-ENX-437/images/Managing_Kubernetes.pdf) <--無料で読めます!!
	- [実践Helm](https://www.amazon.co.jp/dp/B07TQT6SVY/ref=cm_sw_r_tw_dp_U_x_tCyuDbJHZGDB9 )

#### 発表資料の構成の検討

- 構成を考える前の下準備
	- 自分のタイムスケジュールを確認
		- 最終日の最後の時間であることを確認
		- 話聴く人は既にお疲れですね。そもそも話聴く前にもう帰っちゃう人もいるだろうなぁ・・とか色々聴き手の状況を妄想してみる	
	- 他の人の発表テーマを確認
		- 発表テーマの傾向と発表の技術レベル感を確認
		- CyberAgentの長谷川さんが[AuditLog](https://speakerdeck.com/makocchi/cndt2019-kubernetes-audit-log-c4d4c5f6-6058-40f9-a5fc-abbb36073a19)について発表するのを確認。
		- KubernetesのLogを体系的に説明するとAuditログも外せないのですが、あんまりやる気もないので長谷川さんを信じて任せることが確定(発表内容が被らない方が聴き手も嬉しいですよね)
		- 事前に長谷川さんに「よろしくお願いします」と言って、それ以外のログについて頑張る

- 前提
	- いつも聴き手が発表の影響を受けて自分の行動を何か変えようと思たら、いい発表かなと思うので今回もそんな感じでゴールを設定	

- 発表のゴールイメージ
	- Kubernetesのログの仕組みが大体わかる
	- Lokiに興味を持ってちょっと触ってみたくなる	
- やったこと
	- 散逸してる情報を頑張って、体系的にまとめてストーリーを作ってみる
	- 自分がCFPで記載した聴講者のイメージになりきって確認してみて、「これ分かんないよね」って思ったところを修正したり、構成をまた並べ直したりする
	- 構成のアイデアは移動中の電車と、お風呂入ったりとかに思いつくのでその都度書き出して検討してみる
	- 資料のInputや実際の資料作りよりも、この作業の方が大変で全体の精神的負担の8割はこの作業

## イベント当日

### 発表までの間

#### 下見
- 自分が発表する会場の雰囲気が気になるので、他の人の発表風景を視察
- 330人入る会場だと・・やはり広い。普段は100名くらいの発表が多いので広く感じます
- 音声ははっきり聞こえるけど、画面はやはり最後尾だとちょっと遠く感じるのでスッキリしてるスライドじゃないと辛そう
- 普段のMeetUpと比較して、会場の反応が薄いので聴き手の状況が掴みづらい・・・
- ずっとメモしてる人がたくさんいる・・かなり細かい用語までメモしてる人が多いので今日初めてkubernetesって単語を聞きましたって人も多そうだなと

#### 下見を踏まえての修正
- 聴講者のイメージの確認
    - プロダクトの導入を検討してて実施例を知りたい人は他のところに行く
    - 自分でKubernetesをめっちゃ触ってる人はライブコーディングに行く
    - 最後のセッションなので、そもそもログに興味ない人は疲れてるから帰ってしまわれそう・・
    - 実際に少し触ったことがあってログがよく分からない人だけが聴きに来そうだから・・何も考えずに全力出せば良さそう
- スライドの修正
    - やり過ぎかなと自分でも思ったけど、脳死してコピペすればhelmでLokiがインストール手順も追加することを決意

### 発表中

#### 発表中に大事にしてること

- 心構え
	- 聴き手にどれだけ伝わるかを大切にする。自分が100用意してきていても、今の聴きの手の状態を見て30を伝えきるのがベストだと判断したら、その場で70をきちんと捨てること
	- 全体のバランスがいい時間配分で発表する。最初の方だけ詳しくて後の方だけ駆け足で話すとかにはならない

- 心構えの具体的な実現方法
	- 発表中に聴き手の顔を逐一確認して理解度を予測する。前方の席に座ってくれている人だと意欲的でよく相槌を打ってくれる人が多くて嬉しいけど、その人向けに話すと全体に対して話すペースが速くなりがちなので、後方に座っている人たちの顔と反応をよく観察する。
	- 事前にこのスライドまでで10分話すとかチェックポイントを決めておいてそれを守る。それより遅くなりそうなら粒度の細かいところはその場で落とす。早くなり過ぎてもバランスが悪いのでその場合はもう少し丁寧に話すか、細かいところを捕捉する。

### 実際の発表

#### 本当に発表直前でスタンバイしてる時
- 緊張する。第一声をきちんと大きな声で話せば抜けるくらいの緊張感だけど、やはり初めての有償イベントの登壇は責任が重いな。
- 半分の150人くらいがいることを想定していたら、ほぼ満席で驚く。やっぱり、みんなログで困ってるのかぁと感慨深い気持ちになる
- 会場が暗くて後方の人の顔が見えなくて困る。ステージが見やすいように会場全体が暗いので、登壇者側からだと前3列目くらいまでしか顔が見えない・・・目隠しして発表しないといけない気分

#### 発表開始から10分間
- コンテナのログの全体概要
- 観客の顔もよく見えないし、普段のMeetUpより反応が薄いので怯えながら、いつもより丁寧に話す
- 冒頭のスライドは相当作り込んだし、分かりやすいはずだと信じて強い気持ちを持って言い切る
- ペースは想定通りで、スライド枚数で19/79くらいなのでいい感じ

#### 開始10〜20分間
- "kubectl logs"とロギングのアーキテクチャの話
- 自分が空気に慣れてきたし、観客の空気も暖まってきたのか、会場の空気が掴めるようになってくる
- 結構きちんと伝わってる感じがするのと、ちょくちょく驚いてくれてる感じがする・・内心「( *¯ ꒳¯*)ﾄﾞﾔｧ」こんな感じで楽しくなってくる
- ペースは想定通りで、スライド枚数で38/79

#### 開始20〜30分間
- ここからLokiの話
- 「KubeCon」の話をしたら反応が微妙・・・初心者の人に海外カンファレンスの話は気持ち・・敷居が高いですよね。
- Lokiに関しては設計のコンセプトと画面のオシャレ感が伝わるくらいでいいかなと方針を変えて流し気味に話す
- ペースが少し早くて、スライド枚数で62/79くらいなのでもう少し丁寧でもよかったかな

#### 開始30〜40分間
- Control Planeのログの話
- スライドを丁寧に作り込んでおいたのでそんなに分からない雰囲気も感じもなくてよかった
- 発表終了時点で36分。持ち時間が40分なのと最後のセッションなのを考えると、ちょっと早いくらいでペースはそんなに悪くなかったかなと

#### 発表終了後
- やり遂げた達成感で一安心
- 観客の皆様は終了後に速やかに帰宅されたました・・こちらが少し寂しくなるくらい本当に早かったです。
- 一応"ask the speaker"のブース(登壇者に質問できる場所)には行ったんですが、会場は撤収作業中だし、観客の皆様は速やかに帰宅されたので特に何もなかったです。


### 発表の翌日
- 発表資料の誤字の修正と当日に口頭で捕捉した内容を吹き出し形式で追記して再アップロード
- 細かいとこも気になったりして、結局上記の作業を10回くらい繰り返し
- 最後の登壇資料のURLを運営に報告して自分のSpeakerとしての全作業が完了しました。


## 登壇しての感想
- 楽しかったですよ。後日色々反応もあってよかったかなと。
- 疲れました。運営スタッフと他にもう一個発表があって色々忙しかったので、次はもう少し効率よくなりたいです。

## 最後に
- 当日来ていて頂いた方には登録して頂いたメールアドレスにアンケートが来ているので回答頂けると嬉しいです。
- 登壇者のみんなは聴き手の反応に飢えてるのでみんな喜びます。
- 「Kubernetes Logging入門」がよかったなぁって思ってくれた方はアンケートにそう書いてもらえると私嬉しいです(笑)