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
700
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
To Infinity and Beyond: Seamless autoscaling with in-place resource resize for Kubernetes Pods
ladicle
0
78
FinOps! Optimizing Kubernetes Costs with Karpenter
ladicle
0
68
Kubernetes: API Priority and Fairness
ladicle
1
570
FinOps! karpenterによるk8sコスト削減
ladicle
2
600
明日から使える(?)逆引きKubernetes
ladicle
2
1.2k
Recap: KubeCon+CloudNativeCon 2021 NA / Kubernetes Meetup Tokyo #47
ladicle
0
270
KubeCon+CloudNativeCon Europe 2020 Overview
ladicle
0
190
Think Design About Pretty kubectl Plugins
ladicle
0
340
Kubernetesを拡張して日々のオペレーションを自動化する
ladicle
18
7.5k
Other Decks in Technology
See All in Technology
新常識! Javascript×AWS Lambdaがアツい!!
watany
3
260
pixivを支える技術 / 技育CAMPアカデミア
harukasan
PRO
3
190
Copilot for Security を使った MDE / Sentinel のログ調査
sophiakunii
2
230
透過 Cloud Function + Firebase 與 Gemini Pro Vision 打造一個旅遊小幫手 LINE ChatBot
line_developers_tw
PRO
0
300
機械学習クラスタ コンテナネットワーキング BoF
pfn
PRO
1
150
フロントエンドの Monorepo をやめてリポジトリ分割したワケ / Why did we stop using Monorepo on the frontend and split the repository?
kaminashi
6
3.1k
まずはパネル「Table」を使い倒してみよう@GrafanaMeetupJapan#2
rinchoku
1
300
現場の失敗から学ぶ!プロダクトバックログアイテムの改善/Learn_from_On-Site_Failures!_Improving_Product_Backlog_Items
m_iyama
3
920
RDS for Db2 はじめの一歩・作り方編 #2/ 20240628 First RDS for Db2 creation
kyokonishito
0
220
Cloud Nativeを支える要素技術・プロダクト・プラクティスの歩み / infrastudy-returns-01-amsy810
masayaaoyama
3
400
Productivity-Conference-GitHub-20240629
yuhattor
2
2.3k
ビズリーチが目指す「開発生産性」ダッシュボード 〜 データ収集の壁と乗り越え方 〜 / dev-productivity-con2024
visional_engineering_and_design
14
7.4k
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
63
5.1k
Large-scale JavaScript Application Architecture
addyosmani
506
110k
Fireside Chat
paigeccino
24
2.8k
The Cult of Friendly URLs
andyhume
74
5.8k
For a Future-Friendly Web
brad_frost
173
9.1k
Designing for humans not robots
tammielis
247
25k
How to train your dragon (web standard)
notwaldorf
78
5.4k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
42
4.7k
Faster Mobile Websites
deanohume
301
30k
The Invisible Side of Design
smashingmag
294
50k
A Philosophy of Restraint
colly
199
16k
Web Components: a chance to create the future
zenorocha
307
41k
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!