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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Aya (Igarashi) Ozawa
September 11, 2018
Technology
910
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ISUCONでEnvoyを使えるか?
Cloud Native Meetup #4
https://cloudnative.connpass.com/event/97281/
Aya (Igarashi) Ozawa
September 11, 2018
More Decks by Aya (Igarashi) Ozawa
See All by Aya (Igarashi) Ozawa
Building a Multi-Tenant AI Platform with the CNCF Ecosystem
ladicle
0
34
The Shared Service Blueprint: A Guide to Multi-Tenancy, Illustrated With KEDA - Aya Igarashi, Preferred Networks, Inc.
ladicle
0
76
KubeCon + CloudNativeCon NA ‘25 Recap, Extensibility: Gateway API / NRI
ladicle
0
260
Wait! Can Your Pod Survive a Restart?
ladicle
0
280
KubeCon: To Infinity and Beyond: Seamless autoscaling with in-place resource resize for Kubernetes Pods
ladicle
0
460
FinOps! Optimizing Kubernetes Costs with Karpenter
ladicle
0
460
Kubernetes: API Priority and Fairness
ladicle
1
1.3k
FinOps! karpenterによるk8sコスト削減
ladicle
2
970
明日から使える(?)逆引きKubernetes
ladicle
2
1.5k
Other Decks in Technology
See All in Technology
多摩川(.dev)ランニング入門 / Tamagawa.dev#3
fujiwara3
3
340
JAWS-UG初心者支部#88わいわい初心塾(夏休みの宿題やったかGit編)
otsuki
0
120
設計の世代交代を乗り越える、14年続くAndroidアプリの開発戦略
sansantech
PRO
1
120
現場に行くだけでは足りない——プロダクトエンジニアが業務の流れを捉える観点と、その鍛え方
takumiengineering
0
270
APIセキュリティを組織で実現するには~注力する点と設計・実装に入れたい対策~
riiimparm
3
930
Kiro Crewしか勝たん!?
miu_crescent
PRO
0
180
【試作】IoT x AIエージェント
happysamurai294
0
100
【視聴者参加型!】AWSセキュリティアンチパターンクイズ
syoshie
0
380
AIエージェントを雇う前に決める5つのこと
knishioka
1
150
いま、生成AIにKaggleをどこまで 任せられるか — ROGIIコンペでの進め方とTips
k951286
3
1.4k
Nav2、Nav3 ... はたまた自作?〜 作って理解する Nav3 の設計意図 〜 / Nav2, Nav3 ... or Build Your Own? — Understanding Nav3's design intent by building it from scratch
yanzm
0
210
作り直せるコードは迅速に 作り直せないDBは慎重に - AI時代のプロダクトエンジニアが「判断の不可逆性」で開発速度を変える話
kinosuke01
0
230
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
Fireside Chat
paigeccino
42
4k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.2k
How to Ace a Technical Interview
jacobian
281
24k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
510
Test your architecture with Archunit
thirion
2
2.4k
Docker and Python
trallard
47
4.2k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Why Our Code Smells
bkeepers
PRO
340
58k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
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!