data-planes
• Linkerd: Feb,2016 from Buoyant
• Envoy: Sep, 2016 from Lyft
• Conduit proxy: Dec, 2017 from
Buoyant
47.
data-planes
• Linkerd: Scala,Netty/Finagle
• Envoy: C++14, using nghttp2
• Conduit proxy: Rust, early stage
• クックパッドは Envoy proxy を選択
48.
Envoy vs Linkerdat Cookpad
• no VM vs JVM
‣ less resource usage
‣ hot restart
• 豊富な設定、xDS API による更新
• h2, gRPC support が not experimental
• Istio での採用状況: community の厚さ
49.
C++?
• 実は modernC++ は言うほど読みにくくない、syntax
的にむしろ読みやすい方
• 実は modern C++ は言うほど書きにくくない、覚えるこ
とはわりとあるが step by step でパッチを書ける
• 各種ツールが優秀: clang-tidy, AddressSanitizer,
ThreadSanitizer...
• あくまでアプリケーションを読み書きする上では。ライ
ブラリはわからない
• Envoy コミュニティのレビュー層が厚い
• hot reload/hotrestart のサポート
• nghttp2 for h2, single process multi-
threaded, libevent for aysnc IO
• 豊富な stats: per AZ, per listener, per
upstream cluster, per canary...
• リトライ・タイムアウト・サーキットブレーカー
• 分散トレーシング: request ID の発行・ログの送
信