48. Envoy vs Linkerd at Cookpad
• no VM vs JVM
‣ less resource usage
‣ hot restart
• 豊富な設定、xDS API による更新
• h2, gRPC support が not experimental
• Istio での採用状況: community の厚さ
49. C++?
• 実は modern C++ は言うほど読みにくくない、syntax
的にむしろ読みやすい方
• 実は modern C++ は言うほど書きにくくない、覚えるこ
とはわりとあるが step by step でパッチを書ける
• 各種ツールが優秀: clang-tidy, AddressSanitizer,
ThreadSanitizer...
• あくまでアプリケーションを読み書きする上では。ライ
ブラリはわからない
• Envoy コミュニティのレビュー層が厚い
52. • hot reload/hot restart のサポート
• nghttp2 for h2, single process multi-
threaded, libevent for aysnc IO
• 豊富な stats: per AZ, per listener, per
upstream cluster, per canary...
• リトライ・タイムアウト・サーキットブレーカー
• 分散トレーシング: request ID の発行・ログの送
信
56. xDS API
• data-plane API とも呼ばれている
• Envoy 内の情報を更新するための API spec
‣ LDS: Listener Discovery Service
‣ CDS: Cluster Discovery Service
‣ EDS: Endpoint Discovery Service
‣ RDS: Route Discovery Service
‣ その他…