【Cloud Native Days Kansai 2019】参加記録

# CNDK2019に行ってきました
2019年の11月末に大阪で行われた、Cloud Native Days Kansaiに参加してきました。

[Tokyoの際](https://qiita.com/tzkoba/items/de2aab0316008801b657)とは異なり、今回は登壇なしです（前夜祭のLTで少しだけお話しました）。そのためか、結構リラックスしたフラットな気持ちで各セッションを聞くことが出来ました。
登壇すると、**自分のセッションが終わるまではやっぱり落ち着かないし、終わったら終わったで結構燃え尽きる**のですよね。CNDTの時はこの燃え尽き症状が大きくて、なんというか疲弊していた記憶があります。

# 印象に残ったセッション
ということで各セッションを集中して聞くことが出来ました。今回のCNDKでは2並列でセッションが行われていたのですが、どのセッションも魅力的で毎回どちらを聞くか悩みました。
そんな中でも個人的に興味深かったセッションを3つ紹介したいと思います。

### メルペイのマイクロサービスとCloud Native
まず1つ目はメルペイの高木さん(@tjun)がお話になったKeynoteセッションです。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">こんにちは！<br>このあと発表する資料です、よろしくおねがいします <a href="https://twitter.com/hashtag/CNDK2019?src=hash&amp;ref_src=twsrc%5Etfw">#CNDK2019</a> <a href="https://t.co/ZskzYtYJ2B">https://t.co/ZskzYtYJ2B</a></p>&mdash; tjun (@tjun) <a href="https://twitter.com/tjun/status/1199856741761961984?ref_src=twsrc%5Etfw">November 28, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

高木さんは謙虚に自分たちの活動がCloud Nativeか分からないということを仰っていたのですが、国内でもトップクラスの取り組みをされていて、メルペイがCloud Nativeじゃないなら何処がそう呼べるのだろう、と思える素晴らしい内容でした。

そして、私はサービスの中でデータベースばかり注目してしまうという悪癖があるのですが、メルペイさんは決済サービスにおいて**Google Cloud Spanner**を使っているという特徴があります。そのことは[決済トランザクションの話](https://tech.mercari.com/entry/2019/06/07/155849)や[残高管理の話](https://tech.mercari.com/entry/2019/06/13/171305)をブログで読んでいたのですが、これまで余り腹落ちしていませんでした。
しかし、今回は東京ー新大阪の移動中に折り良く分散データベースに関する記事を読んでおり、メルペイさんの取り組みがどれほど凄いことなのか、やっと分かってきました。

（分散データベースについて呟いてたのがこれ）
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">ymmtさんに紹介頂いた、CockroachDB対YugaByte DBの記事がめちゃんこ面白い。名古屋から新大阪までの間、すごい楽しめた。Insertに強いHashパーティショニング(YugaByte)、複数行selectに強いRange(Cockroach)ってことなんだけど考察深い。<a href="https://t.co/KTOoOWDrRW">https://t.co/KTOoOWDrRW</a></p>&mdash; こば（右） (@tzkb) <a href="https://twitter.com/tzkb/status/1199538052932063232?ref_src=twsrc%5Etfw">November 27, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


Writeヘビーな決済ワークロードを受け止めるには、例えば、

- Oracle Exadataのような、超強力なマルチマスターなRDBで書込みブロックを散らす工夫をする。
- RedisとMySQLのように書込みをインメモリKVSで受け、定期的にRDBへ書き出す。

などの工夫が必要だと思います。
前者は予算的な面で誰もが取れる手法ではありませんし、後者もWriteキャッシュとなる部分と永続化部分の整合性は常に担保されなければならず、簡単に設計できるものではないでしょう。

そうした部分をAsk the speakerのブースで高木さんと色々お話しすることが出来ました。
そして、Spannerの代替として、**CockroachDB**（ロゴがアレなので嫌いだとか）や**YugaByte DB**、**TiDB**などを調査されていたことも知り、分散DBについて貴重な意見交換を行うことが出来たのはCNDKの（個人的に）最大の収穫かもしれません。

**<font color="red">なお、分散DBの話は高木さんのセッションの本質ではありません。</font>**ですので、上記に示したスライドをお読みになることをお勧めします。

（※さらに反省点として、日常会話で使うことのないTiDB等の単語を使って話が出来る喜びに舞い上がった結果、早口なオタクみたいになっていたと感じており、高木さんにはご迷惑をおかけしました。 ）

### 創るものから活用するものへ -価値を生み出すOperatorの力-
2つ目はレッドハット斎藤さんのKubernetes Operatorに関するセッションです。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">発表資料を公開しました。 <a href="https://twitter.com/hashtag/CNDK2019?src=hash&amp;ref_src=twsrc%5Etfw">#CNDK2019</a><br>「創るものから活用するものへ -価値を生み出すOperatorの力-」<a href="https://t.co/MZ9ICKXbfE">https://t.co/MZ9ICKXbfE</a><br>全CNDK参加者の半分(Room A)に「Operator 知ってる！」「Kubernetes Loverだぜ！」って言ってもらえるようにプレゼンさせてもらいました。K8s やっていきまっしょい😎</p>&mdash; Kazu @capsmalt (Red Hat K.K.) (@capsmalt) <a href="https://twitter.com/capsmalt/status/1199959077968703488?ref_src=twsrc%5Etfw">November 28, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


私も東京で少なからずMeetupに参加しているので、Operatorに関するセッションはいくつか聞いてきました。
その中でも今回の斎藤さんのセッションは、要素技術の幅広さで難しいと感じがちなOperatorを丁寧に解きほぐしており（あくまで私個人の感想です）、**関西のKubernetesファンを増やす非常に良いものだ**と感じました。

斎藤さんは前夜祭の聴衆の反応を真剣に観察されておられたようで、その後スライドを大幅に練り直したと聞き、頭が下がりました。
私もスライド作りの際には聴衆を設定してレベル感を合わせるように努力していますが、あくまでそれは頭の中の話です。**実際に見て感じたものを取り込む勇気と努力に感服しました。**

内容としては、（私も普段話している）ストレージやデータベースの構築・管理をOperatorで自動化するというところまで至っており、前段の話方次第で印象がここまで変わるんだなと非常に勉強になりました。

### Production Ready Kubernetesに必要な15のこと
最後は@go_vargoさんのこちらのセッションです。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">CNDK2019で話す「Production Ready Kubernetesに必要な15のこと」のスライドをアップロードしています<br><br>セッションでは、Kubernetes上で気をつけたいことを15のテーマに分けて話します<br>自社事例も一例として入れていますが、あくまでプレーンなKubernetesの話です<a href="https://t.co/0yHpZe0OH5">https://t.co/0yHpZe0OH5</a><a href="https://twitter.com/hashtag/CNDK2019?src=hash&amp;ref_src=twsrc%5Etfw">#CNDK2019</a></p>&mdash; バルゴ (@go_vargo) <a href="https://twitter.com/go_vargo/status/1199935527056576512?ref_src=twsrc%5Etfw">November 28, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

これは私が解説するのが野暮なぐらいの、Cloud Native Daysにふさわしい素晴らしい内容でした。
Kubernetes完全ガイド等でも紹介されている機能やその他を、運用に際してどのように使っていくべきかが丁寧に解説されています。40分で本当に15個いけるのか？と思いましたが、非常に上手く濃淡を付けながら、分かりやすく説明されていました。

ProductionにKubernetesを投入するにあたり、多くの人がリファレンスとして使うことになる資料になると思います。

# まとめ
如何だったでしょうか。

読み返すと趣味全開でCNDK2019の雰囲気を誤って伝えていないかは心配ですが、まあこれが私のCloud Native Daysということでご了承頂きたいと思います。

実際、CNDK中にも以下のように揶揄されており、たしかにいつもそれしか言ってないな感はあります。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">どんな話題もDBに繋げれるこばさん！</p>&mdash; ロフトくん@11/27 CNDK2019 前夜祭LT (@loftkun) <a href="https://twitter.com/loftkun/status/1199974119116115968?ref_src=twsrc%5Etfw">November 28, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


こちらのまとめを見て、CNDKが気になった方は他の方の参加ブログも見てみることを強く推奨します。
ありがとうございました。