builderscon 2018 に参加してきました
builderscon 2018 に参加してきました。
個人的に今年は Microservices と IoT の話が多かったんじゃないかなぁと思いました。僕は Microservices にハマっているので主に Envoy や Estio, Netflix のキャッシュ事情などの話を聞いていました。
聞いてて中でよかった話をまとめていこうと思います。
Envoy internals deep dive
これは Envoy の開発者である mattklein123 さんによる Envoy の開発裏話をしていました。話の内容は proxy だからこそ必要な技術というよりも広い分野で利用できそうな内容になっていました。
- Matt さんは Lyft のエンジニアでサービスは Microservices として運用している
- もともとは AWS を使った Monolith なサービスであったが、問題が起きた場合クライアントが原因か、アプリケーションかそれとも AWS 側で起きたのか検知するのが難しかった
- これを Microservices にすると改善されるかもしれないと Python で Microservices 化を行い運用した。
- Envoy は「エンボイ」じゃなくて「アンボイ」
- Envoy が管理する情報(プロセスやシグナル、クラスタなど)の更新は基本的に non-blocking で並行処理を行って更新している
- どうやって同期を行っているんだろうと思ってたらなんと RCU (Read Copy Update) という方法を用いている
- Envoy は Hot restart というアプリケーションの動作を中断させることなく再起動させる仕組みに対応している
- アプリケーションだけの Hot restart であれば各プロセス間で共有できるシェアドメモリに格納すればいいが、Microservices だと kubernetes を使うケースが多いため、サービスの再起動 == コンテナの再起動となる。
- 新しい Hot restart の発明
- 細かいことはブログに書いてあると言ってたので https://blog.envoyproxy.io/envoy-hot-restart-1d16b14555b5
- TLS (Thread Local Storage) を持つ
- メインスレッドとワーカースレッドの他にファイルへ書き込むためのスレッドがある
- ファイル書き込みは
NON_BLOCKING
を使って書き込む - TLS は RCU のような仕組み使って更新を行う?
- https://blog.envoyproxy.io/envoy-threading-model-a8d44b922310
試してみたいことが沢山あります。しかしどれも正確か分からない状態でメモしているので調べながら試してみようと思ってます。コンテナの Hot Restart は面白そう。
JavaCardの世界
主に Microservices の話を聞いていましたが、それ以外の話はここと「遠いようで身近なサウンドエンジニアリング」しか聞いていないです。この2つは本当に聞きに行ってよかったと思ってますが、僕が大学時代 IoT を専門にやっていたこともあり、今回は JavaCard が技術的に興味があったのでかなりメモしました。
- クレジットカードや SIM カードの金色の部分の上で動いているのが JavaCard
- JavaCard のスペックの一つとしてなにげに CPU 32 bit だった -> LT の時に聞いたスーファミのスペックより高い(16bit)
- なぜか version 2.1 から始まっている
- カードの実装方法次第で GC されるか決まるw
- 電源が切れていても「無限のクロックサイクル」とみなすので JVM はフリーズ扱いとなる。
- インスタンス変数は EEPROM に書き込まれるが 10 万行書き込んじゃうと文鎮
- Hello, World https://gist.github.com/moznion/3bfbc5121afceaebcc77964b4b94517a
- JavaCard の applet はあの applet ではなくてアプリケーションのこと
非常に話が面白くて、JavaCard を書き込むために必要な素材は買えるのかいろいろ聞こうと思いましたが、おまけに聞きたかったこと全てが揃っていたので神と思いました。
全体的な感想
懇親会チケットを買うタイミングを逃したので参加できませんでしたが、色んな方々とお話することができて自分の知っている世界を少し広げることができたかなと思いました。
今回の投票システムはゲストには投票ができなかったのがちょっと残念でした。(Envoy の Matt さんに投票したかった...)
このようなコミュニティの壁を取っ払った祭りは非常に楽しいのでぜひ来年も開催してほしい気持ちがあります。
運営の皆さんお疲れ様でした。ありがとうございました!
追記
フィードバックボタンの方から簡単にめっちゃ良かったというふうに投稿ができるので是非ポチポチしましょう!(僕はやりました!!)
— Daisuke Maki (anovaさん) (@lestrrat) September 9, 2018