Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ISUCONでEnvoyを使えるか?
Search
Aya (Igarashi) Ozawa
September 11, 2018
Technology
1
810
ISUCONでEnvoyを使えるか?
Cloud Native Meetup #4
https://cloudnative.connpass.com/event/97281/
Aya (Igarashi) Ozawa
September 11, 2018
Tweet
Share
More Decks by Aya (Igarashi) Ozawa
See All by Aya (Igarashi) Ozawa
KubeCon: To Infinity and Beyond: Seamless autoscaling with in-place resource resize for Kubernetes Pods
ladicle
0
230
FinOps! Optimizing Kubernetes Costs with Karpenter
ladicle
0
230
Kubernetes: API Priority and Fairness
ladicle
1
890
FinOps! karpenterによるk8sコスト削減
ladicle
2
730
明日から使える(?)逆引きKubernetes
ladicle
2
1.4k
Recap: KubeCon+CloudNativeCon 2021 NA / Kubernetes Meetup Tokyo #47
ladicle
0
300
KubeCon+CloudNativeCon Europe 2020 Overview
ladicle
0
220
Think Design About Pretty kubectl Plugins
ladicle
0
420
Kubernetesを拡張して日々のオペレーションを自動化する
ladicle
18
7.7k
Other Decks in Technology
See All in Technology
React Server Componentは 何を解決し何を解決しないのか / What do React Server Components solve, and what do they not solve?
kaminashi
6
1.2k
チームの性質によって変わる ADR との向き合い方と、生成 AI 時代のこれから / How to deal with ADR depends on the characteristics of the team
mh4gf
4
330
DevinはクラウドエンジニアAIになれるのか!? 実践的なガードレール設計/devin-can-become-a-cloud-engineer-ai-practical-guardrail-design
tomoki10
3
1.3k
日本MySQLユーザ会ができるまで / making MyNA
tmtms
1
360
非エンジニアにも伝えるメールセキュリティ / Email security for non-engineers
ykanoh
13
3.9k
Symfony in 2025: Scaling to 0
fabpot
2
190
大規模プロジェクトにおける 品質管理の要点と実践 / 20250327 Suguru Ishii
shift_evolve
0
280
OCI見積もり入門セミナー
oracle4engineer
PRO
0
120
SSH公開鍵認証による接続 / Connecting with SSH Public Key Authentication
kaityo256
PRO
2
220
ひまプロプレゼンツ 「エンジニア格付けチェック 〜春の公開収録スペシャル〜」
kaaaichi
0
130
Engineering Managementのグローバルトレンド #emoasis / Engineering Management Global Trend
kyonmm
PRO
6
990
バクラクでのSystem Risk Records導入による変化と改善の取り組み/Changes and Improvement Initiatives Resulting from the Implementation of System Risk Records
taddy_919
0
220
Featured
See All Featured
Optimizing for Happiness
mojombo
377
70k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
31
4.7k
Product Roadmaps are Hard
iamctodd
PRO
52
11k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.9k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
2.9k
How STYLIGHT went responsive
nonsquared
99
5.4k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
102
18k
Building Applications with DynamoDB
mza
94
6.3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
28
1.6k
The Cost Of JavaScript in 2023
addyosmani
48
7.6k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
500
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7.1k
Transcript
ISUCONで Envoyを使えるか? Cloud Native Meetup #4 LT Aya Igarashi @Ladicle
@Ladicle Software Engineer - Z Lab Corp.
お題となるWebサービスを決められたレギュレーションの中で限界ま で高速化を図るチューニングバトル!!! 今週末は…
2016 はてなダイアリー風 似非マイクロサービス 2017 idobata風(chat app) サーバ3台構成 2018... ????? よりCloud
Nativeな構成に?
Envoy → Observability ISUCON → Measure + Tuning もしかして…
さっそくISUCON7の予選問題で試してみる(制限時間5h) https://github.com/Ladicle/isucon7-qualifier-envoy
ISUCON7予選問題 idobata風のチャットサービス • サーバ3台構成 (default: APPx2, DBx1) • 1core CPU
/1GB Memory • DBはMySQL • APPは複数の実装があるがGoを選択
構成を検討する Envoyをどこまで使うか? • 基本的にHTTPproxy/Tracing/Metricsだけ使う • Serverは3台固定で、動的制御が必要なものもない のでcontrole-planeは使わず, data-planeのEnvoy にstaticな設定ファイルのみ渡す •
tcp_proxyを使ってMySQLの前段にEnvoyを置いて もよいが、取得できるMetricsの恩恵に比べて構築 の手間が大きいため使わない
static_resources: listeners: - address: socket_address: address: 0.0.0.0 port_value: 80 filter_chains:
- filters: - name: envoy.http_connection_manager config: tracing: operation_name: ingress codec_type: auto stat_prefix: isubata_http route_config: name: isubata_route virtual_hosts: - name: isubata_all domains: - "*" routes: - match: prefix: "/" route: cluster: isubata1 decorator: operation: isubata1 http_filters: - name: envoy.router clusters: - name: isubata1 connect_timeout: 60s type: static lb_policy: round_robin hosts: - socket_address: address: 127.0.0.1 port_value: 5000 - name: jaeger connect_timeout: 1s type: static lb_policy: round_robin hosts: - socket_address: address: 10.0.1.100 port_value: 9411 tracing: http: name: envoy.zipkin config: collector_cluster: jaeger collector_endpoint: "/api/v1/spans" admin: access_log_path: "/tmp/admin-access.log" address: socket_address: address: 0.0.0.0 port_value: 9901 Envoyの設定ファイル
NGINXをEnvoyに置き換え 時間制限内に終わら せるためにDockerで サックとデプロイ
3681 初回ベンチマーク結果 まだEnvoyによる影響はなかった 3684
Targetの表示 起動忘れてベンチ回 すミスが防げる Grafana Dashboard 複数台構成でも楽に状 況把握. ISUCON用途だ とNodeExporterで十 分だった
JaegerでTraceLogを見る Longest Spanでソートすると分かりやすい Errorが表示されているのは Service Nameが設定されて いないから envoy/issues/3792 Native Jaeger
Tracingしよ うとしたらセグフォした envoy/issues/4140 横軸: 時刻 縦軸: Spanの期間
まとめ ISUCONでEnvoyを使えるか? ↪
WE ARE HIRING!
For your time & we’ll see you soon ladicle Thank
you!