狠狠撸

狠狠撸Share a Scribd company logo
Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved.
2018年2月5日
山内晨吾
APIのリトライ処理
Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved.
自己紹介
2
8pockets (山内晨吾)
ヤフオク!アプリ開発部
業務で触る言語は
Swift、Go、C++、PHP
Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved.
目次
?ヤフオク!の設計
?耐久性向上について
?デモ
3
Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved.
ヤフオク!の設計
Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved.
ヤフオク! の開発
5
大規模なシステムリニューアル真っ最中
今まで使ってきたレガシー環境を脱却して、
新たな言語やPFに移行している。
新たなシステム設計思想やパターンを適用してコン
テナに載せ替えている。
Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved.
ヤフオク! の設計思想
6
Frontend
Service
DataAccess
Database
スマホ、PC、パートナー向けツール
出品、落札、検索、レコメンド
出品PF、ユーザーPF、課金PF
DB、ストレージ
マイクロサービス化にあたって、開発のしやすさや拡張のしやすさ
を考えて
レイヤーを分けてサービスの設計をしている。
Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved.
ヤフオク! の設計思想
7
きまり
?必ず各レイヤーを通してデータを引くこと
?自分と同じレイヤーのAPIは叩いてはいけない
独立した単機能になるように努力する。
?コンポーネントの役割を明確にして
疎結合にすること。
課題点
?レイヤー化することによるレイテンシの増加がおこり
システムが不安定になるのではないか???
Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved.
耐久性向上
Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved.
耐久性向上
クライアントからサーバーにリクエストする際、
サーバーが落ちている場合、
クライアントで最適なリトライ処理を行いたい。
9
Circuit Breaker / Exponential Backoff
を用いて実現。
Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved.
Circuit Breaker
ある処理のエラー頻度が閾値を超えたら、
実際にサーバーへリクエストせずに即座にエ
ラーを返すパターン
10
Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved.
Circuit Breaker
11
規定の回数失敗したら起動
Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved.
Circuit Breaker
なにがいいのか
タイムアウト待ちを省略してエラーを返却できるので
システム全体の負荷が下がる。
発動時にはアラートで通知することが大事。
システムが復帰した時には、リトライ処理を行うことでリクエストが
再開される
12
Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved.
13
Exponential Backoff (指数関数的後退)
リトライの待機時間を失敗回数が増えるに連れて、
指数関数的に増やすアルゴリズム
さらに衝突の連続を防ぐために遅延をランダム化。(Jitter)
リトライにより後に成功する可能性が高いリクエストを
救える。
Exponential Backoff
Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved.
Exponential Backoff
14
アルゴリズム例
?サーバーへのリクエストが失敗
?0.5秒待って、リクエストを再試行
?1.0秒待って、リクエストを再試行
?2.0秒待って、リクエストを再試行
?4.0秒待って、リクエストを再試行
?設定した最大待機時間まで増加を繰り返す
Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved.
Exponential Backoff
15
なにがいいのか
長期障害発生時にシステムへの不必要な負担を軽減
大規模分散システム内では常に部分障害が発生しているた
め、運用コストを削減するためのパターン
Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved.
実演
Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved.
取り組みの効果
17
APIリクエスト先は1つではなく、別部署や、全社PFだったり
色々。
リクエスト先の異常も自分たちで出来る限りコントロールできる。
事故の早期発見に繋がり、原因も分かりやすくなった。
アラートが減り、不要な通知が減ったため、対応するタスクが
より明確になった。
Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved.
おわり

More Related Content

What's hot (20)

レガシーコードとの付き合い方とテストでの话
レガシーコードとの付き合い方とテストでの话レガシーコードとの付き合い方とテストでの话
レガシーコードとの付き合い方とテストでの话
H Iseri
?
クラウドでも非机能要求グレードは必要だよね
クラウドでも非机能要求グレードは必要だよねクラウドでも非机能要求グレードは必要だよね
クラウドでも非机能要求グレードは必要だよね
YoshioSawada
?
RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話
Takuto Wada
?
础奥厂のログ管理ベストプラクティス
础奥厂のログ管理ベストプラクティス础奥厂のログ管理ベストプラクティス
础奥厂のログ管理ベストプラクティス
Akihiro Kuwano
?
AWS Black Belt Online Seminar 2017 Docker on AWS
AWS Black Belt Online Seminar 2017 Docker on AWSAWS Black Belt Online Seminar 2017 Docker on AWS
AWS Black Belt Online Seminar 2017 Docker on AWS
Amazon Web Services Japan
?
振り返り(アジャイルレトロスペクティブズ)
振り返り(アジャイルレトロスペクティブズ)振り返り(アジャイルレトロスペクティブズ)
振り返り(アジャイルレトロスペクティブズ)
Keisuke Tameyasu
?
OAuth 2.0のResource Serverの作り方
OAuth 2.0のResource Serverの作り方OAuth 2.0のResource Serverの作り方
OAuth 2.0のResource Serverの作り方
Hitachi, Ltd. OSS Solution Center.
?
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
Amazon Web Services Japan
?
Redmineとgitの 連携利用事例
Redmineとgitの 連携利用事例Redmineとgitの 連携利用事例
Redmineとgitの 連携利用事例
Tomohisa Kusukawa
?
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
?
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
?
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
Shinji Takao
?
Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。
Kenjiro Kubota
?
イエラエセキュリティMeet up 20210820
イエラエセキュリティMeet up 20210820イエラエセキュリティMeet up 20210820
イエラエセキュリティMeet up 20210820
GMOサイバーセキュリティ byイエラエ株式会社
?
组织にテストを书く文化を根付かせる戦略と戦术
组织にテストを书く文化を根付かせる戦略と戦术组织にテストを书く文化を根付かせる戦略と戦术
组织にテストを书く文化を根付かせる戦略と戦术
Takuto Wada
?
尝补谤补惫别濒を用いたケ?ームサーハ?ーのチューニンク?
尝补谤补惫别濒を用いたケ?ームサーハ?ーのチューニンク?尝补谤补惫别濒を用いたケ?ームサーハ?ーのチューニンク?
尝补谤补惫别濒を用いたケ?ームサーハ?ーのチューニンク?
NOW PRODUCTION
?
20190806 AWS Black Belt Online Seminar AWS Glue
20190806 AWS Black Belt Online Seminar AWS Glue20190806 AWS Black Belt Online Seminar AWS Glue
20190806 AWS Black Belt Online Seminar AWS Glue
Amazon Web Services Japan
?
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Y Watanabe
?
奥别产础蝉蝉别尘产濒测の奥别产以外のことぜんぶ话す
奥别产础蝉蝉别尘产濒测の奥别产以外のことぜんぶ话す奥别产础蝉蝉别尘产濒测の奥别产以外のことぜんぶ话す
奥别产础蝉蝉别尘产濒测の奥别产以外のことぜんぶ话す
Takaya Saeki
?
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはがんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
Jun-ichi Sakamoto
?
レガシーコードとの付き合い方とテストでの话
レガシーコードとの付き合い方とテストでの话レガシーコードとの付き合い方とテストでの话
レガシーコードとの付き合い方とテストでの话
H Iseri
?
クラウドでも非机能要求グレードは必要だよね
クラウドでも非机能要求グレードは必要だよねクラウドでも非机能要求グレードは必要だよね
クラウドでも非机能要求グレードは必要だよね
YoshioSawada
?
RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話
Takuto Wada
?
础奥厂のログ管理ベストプラクティス
础奥厂のログ管理ベストプラクティス础奥厂のログ管理ベストプラクティス
础奥厂のログ管理ベストプラクティス
Akihiro Kuwano
?
AWS Black Belt Online Seminar 2017 Docker on AWS
AWS Black Belt Online Seminar 2017 Docker on AWSAWS Black Belt Online Seminar 2017 Docker on AWS
AWS Black Belt Online Seminar 2017 Docker on AWS
Amazon Web Services Japan
?
振り返り(アジャイルレトロスペクティブズ)
振り返り(アジャイルレトロスペクティブズ)振り返り(アジャイルレトロスペクティブズ)
振り返り(アジャイルレトロスペクティブズ)
Keisuke Tameyasu
?
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
Amazon Web Services Japan
?
Redmineとgitの 連携利用事例
Redmineとgitの 連携利用事例Redmineとgitの 連携利用事例
Redmineとgitの 連携利用事例
Tomohisa Kusukawa
?
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
?
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
?
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
Shinji Takao
?
Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。
Kenjiro Kubota
?
组织にテストを书く文化を根付かせる戦略と戦术
组织にテストを书く文化を根付かせる戦略と戦术组织にテストを书く文化を根付かせる戦略と戦术
组织にテストを书く文化を根付かせる戦略と戦术
Takuto Wada
?
尝补谤补惫别濒を用いたケ?ームサーハ?ーのチューニンク?
尝补谤补惫别濒を用いたケ?ームサーハ?ーのチューニンク?尝补谤补惫别濒を用いたケ?ームサーハ?ーのチューニンク?
尝补谤补惫别濒を用いたケ?ームサーハ?ーのチューニンク?
NOW PRODUCTION
?
20190806 AWS Black Belt Online Seminar AWS Glue
20190806 AWS Black Belt Online Seminar AWS Glue20190806 AWS Black Belt Online Seminar AWS Glue
20190806 AWS Black Belt Online Seminar AWS Glue
Amazon Web Services Japan
?
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Y Watanabe
?
奥别产础蝉蝉别尘产濒测の奥别产以外のことぜんぶ话す
奥别产础蝉蝉别尘产濒测の奥别产以外のことぜんぶ话す奥别产础蝉蝉别尘产濒测の奥别产以外のことぜんぶ话す
奥别产础蝉蝉别尘产濒测の奥别产以外のことぜんぶ话す
Takaya Saeki
?
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはがんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
Jun-ichi Sakamoto
?

Similar to Bonfire API #1 APIのリトライ処理 (20)

驰补丑辞辞!ブラウザーにおける市场环境の分析と戦略化
驰补丑辞辞!ブラウザーにおける市场环境の分析と戦略化驰补丑辞辞!ブラウザーにおける市场环境の分析と戦略化
驰补丑辞辞!ブラウザーにおける市场环境の分析と戦略化
驰补丑辞辞!デベロッパーネットワーク
?
アプリエンジニアでもできる闭域网构筑のススメ!
アプリエンジニアでもできる闭域网构筑のススメ!アプリエンジニアでもできる闭域网构筑のススメ!
アプリエンジニアでもできる闭域网构筑のススメ!
Tosihiyuki Hirai
?
kukai: 省エネ世界2位のディープラーニング?スパコン
kukai: 省エネ世界2位のディープラーニング?スパコンkukai: 省エネ世界2位のディープラーニング?スパコン
kukai: 省エネ世界2位のディープラーニング?スパコン
驰补丑辞辞!デベロッパーネットワーク
?
ヤフオク!の快适なカスタマー体験を支えるモバイルアプリのライブアップデート技术
ヤフオク!の快适なカスタマー体験を支えるモバイルアプリのライブアップデート技术ヤフオク!の快适なカスタマー体験を支えるモバイルアプリのライブアップデート技术
ヤフオク!の快适なカスタマー体験を支えるモバイルアプリのライブアップデート技术
驰补丑辞辞!デベロッパーネットワーク
?
行列ができる贰颁サイトの悩み~ショッピングや决済の技术的问题と処方笺
行列ができる贰颁サイトの悩み~ショッピングや决済の技术的问题と処方笺行列ができる贰颁サイトの悩み~ショッピングや决済の技术的问题と処方笺
行列ができる贰颁サイトの悩み~ショッピングや决済の技术的问题と処方笺
驰补丑辞辞!デベロッパーネットワーク
?
大規模インフラで考える インフラチームの未来
大規模インフラで考える インフラチームの未来大規模インフラで考える インフラチームの未来
大規模インフラで考える インフラチームの未来
Masayuki Ueda
?
丑颈蹿颈惫别で実现するエンタープライズ贬罢惭尝5システム开発
丑颈蹿颈惫别で実现するエンタープライズ贬罢惭尝5システム开発丑颈蹿颈惫别で実现するエンタープライズ贬罢惭尝5システム开発
丑颈蹿颈惫别で実现するエンタープライズ贬罢惭尝5システム开発
Osamu Shimoda
?
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
驰补丑辞辞!デベロッパーネットワーク
?
Go + Pulsar WebSocket APIの利用事例 #pulsarjp
Go + Pulsar WebSocket APIの利用事例 #pulsarjpGo + Pulsar WebSocket APIの利用事例 #pulsarjp
Go + Pulsar WebSocket APIの利用事例 #pulsarjp
驰补丑辞辞!デベロッパーネットワーク
?
全社デザインシステムとサービスの付き合い方
 全社デザインシステムとサービスの付き合い方 全社デザインシステムとサービスの付き合い方
全社デザインシステムとサービスの付き合い方
驰补丑辞辞!デベロッパーネットワーク
?
Storm の新機能について @HSCR #hadoopreading
Storm の新機能について @HSCR #hadoopreadingStorm の新機能について @HSCR #hadoopreading
Storm の新機能について @HSCR #hadoopreading
驰补丑辞辞!デベロッパーネットワーク
?
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
驰补丑辞辞!デベロッパーネットワーク
?
驰补丑辞辞!プロモーション広告のビックデータ基盘を支える技术と今后の展望
驰补丑辞辞!プロモーション広告のビックデータ基盘を支える技术と今后の展望驰补丑辞辞!プロモーション広告のビックデータ基盘を支える技术と今后の展望
驰补丑辞辞!プロモーション広告のビックデータ基盘を支える技术と今后の展望
驰补丑辞辞!デベロッパーネットワーク
?
[GrapeCity Web TECH FORUM 2018]レガシーからの移行 - 株式会社日本プロテック
[GrapeCity Web TECH FORUM 2018]レガシーからの移行 - 株式会社日本プロテック[GrapeCity Web TECH FORUM 2018]レガシーからの移行 - 株式会社日本プロテック
[GrapeCity Web TECH FORUM 2018]レガシーからの移行 - 株式会社日本プロテック
Developer Solutions事業部 メシウス株式会社 (旧グレープシティ株式会社)
?
最若手メンバーこそチャンス!チーム改善に取り组んでわかったこと
最若手メンバーこそチャンス!チーム改善に取り组んでわかったこと最若手メンバーこそチャンス!チーム改善に取り组んでわかったこと
最若手メンバーこそチャンス!チーム改善に取り组んでわかったこと
Masayuki Ueda
?
アプリエンジニアでもできる闭域网构筑のススメ!
アプリエンジニアでもできる闭域网构筑のススメ!アプリエンジニアでもできる闭域网构筑のススメ!
アプリエンジニアでもできる闭域网构筑のススメ!
Tosihiyuki Hirai
?
ヤフオク!の快适なカスタマー体験を支えるモバイルアプリのライブアップデート技术
ヤフオク!の快适なカスタマー体験を支えるモバイルアプリのライブアップデート技术ヤフオク!の快适なカスタマー体験を支えるモバイルアプリのライブアップデート技术
ヤフオク!の快适なカスタマー体験を支えるモバイルアプリのライブアップデート技术
驰补丑辞辞!デベロッパーネットワーク
?
行列ができる贰颁サイトの悩み~ショッピングや决済の技术的问题と処方笺
行列ができる贰颁サイトの悩み~ショッピングや决済の技术的问题と処方笺行列ができる贰颁サイトの悩み~ショッピングや决済の技术的问题と処方笺
行列ができる贰颁サイトの悩み~ショッピングや决済の技术的问题と処方笺
驰补丑辞辞!デベロッパーネットワーク
?
大規模インフラで考える インフラチームの未来
大規模インフラで考える インフラチームの未来大規模インフラで考える インフラチームの未来
大規模インフラで考える インフラチームの未来
Masayuki Ueda
?
丑颈蹿颈惫别で実现するエンタープライズ贬罢惭尝5システム开発
丑颈蹿颈惫别で実现するエンタープライズ贬罢惭尝5システム开発丑颈蹿颈惫别で実现するエンタープライズ贬罢惭尝5システム开発
丑颈蹿颈惫别で実现するエンタープライズ贬罢惭尝5システム开発
Osamu Shimoda
?
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
驰补丑辞辞!デベロッパーネットワーク
?
驰补丑辞辞!プロモーション広告のビックデータ基盘を支える技术と今后の展望
驰补丑辞辞!プロモーション広告のビックデータ基盘を支える技术と今后の展望驰补丑辞辞!プロモーション広告のビックデータ基盘を支える技术と今后の展望
驰补丑辞辞!プロモーション広告のビックデータ基盘を支える技术と今后の展望
驰补丑辞辞!デベロッパーネットワーク
?
最若手メンバーこそチャンス!チーム改善に取り组んでわかったこと
最若手メンバーこそチャンス!チーム改善に取り组んでわかったこと最若手メンバーこそチャンス!チーム改善に取り组んでわかったこと
最若手メンバーこそチャンス!チーム改善に取り组んでわかったこと
Masayuki Ueda
?

More from 驰补丑辞辞!デベロッパーネットワーク (20)

ゼロから始める転移学习
ゼロから始める転移学习ゼロから始める転移学习
ゼロから始める転移学习
驰补丑辞辞!デベロッパーネットワーク
?
継続的なモデルモニタリングを実現するKubernetes Operator
継続的なモデルモニタリングを実現するKubernetes Operator継続的なモデルモニタリングを実現するKubernetes Operator
継続的なモデルモニタリングを実現するKubernetes Operator
驰补丑辞辞!デベロッパーネットワーク
?
ヤフーでは开発迅速性と品质のバランスをどう取ってるか
ヤフーでは开発迅速性と品质のバランスをどう取ってるかヤフーでは开発迅速性と品质のバランスをどう取ってるか
ヤフーでは开発迅速性と品质のバランスをどう取ってるか
驰补丑辞辞!デベロッパーネットワーク
?
オンプレML基盤on Kubernetes?パネルディスカッション
オンプレML基盤on Kubernetes?パネルディスカッションオンプレML基盤on Kubernetes?パネルディスカッション
オンプレML基盤on Kubernetes?パネルディスカッション
驰补丑辞辞!デベロッパーネットワーク
?
LakeTahoe
LakeTahoeLakeTahoe
LakeTahoe
驰补丑辞辞!デベロッパーネットワーク
?
オンプレML基盤on Kubernetes ?Yahoo! JAPAN AIPF?
オンプレML基盤on Kubernetes ?Yahoo! JAPAN AIPF?オンプレML基盤on Kubernetes ?Yahoo! JAPAN AIPF?
オンプレML基盤on Kubernetes ?Yahoo! JAPAN AIPF?
驰补丑辞辞!デベロッパーネットワーク
?
Persistent-memory-native Database High-availability Feature
Persistent-memory-native Database High-availability FeaturePersistent-memory-native Database High-availability Feature
Persistent-memory-native Database High-availability Feature
驰补丑辞辞!デベロッパーネットワーク
?
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
驰补丑辞辞!デベロッパーネットワーク
?
eコマースと実店舗の相互利益を目指したデザイン #yjtc
eコマースと実店舗の相互利益を目指したデザイン #yjtceコマースと実店舗の相互利益を目指したデザイン #yjtc
eコマースと実店舗の相互利益を目指したデザイン #yjtc
驰补丑辞辞!デベロッパーネットワーク
?
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtcヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
驰补丑辞辞!デベロッパーネットワーク
?
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtcYahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
驰补丑辞辞!デベロッパーネットワーク
?
ビッグデータから人々のムードを捉える #yjtc
ビッグデータから人々のムードを捉える #yjtcビッグデータから人々のムードを捉える #yjtc
ビッグデータから人々のムードを捉える #yjtc
驰补丑辞辞!デベロッパーネットワーク
?
サイエンス領域におけるMLOpsの取り組み #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtcサイエンス領域におけるMLOpsの取り組み #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtc
驰补丑辞辞!デベロッパーネットワーク
?
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtcヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
驰补丑辞辞!デベロッパーネットワーク
?
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtcYahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
驰补丑辞辞!デベロッパーネットワーク
?
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
驰补丑辞辞!デベロッパーネットワーク
?
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtcPC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
驰补丑辞辞!デベロッパーネットワーク
?
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtcモブデザインによる多職種チームのコミュニケーション改善 #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
驰补丑辞辞!デベロッパーネットワーク
?
「新しいおうち探し」のためのAIアシスト検索 #yjtc
「新しいおうち探し」のためのAIアシスト検索 #yjtc「新しいおうち探し」のためのAIアシスト検索 #yjtc
「新しいおうち探し」のためのAIアシスト検索 #yjtc
驰补丑辞辞!デベロッパーネットワーク
?
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtcユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
驰补丑辞辞!デベロッパーネットワーク
?
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
驰补丑辞辞!デベロッパーネットワーク
?
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtcヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
驰补丑辞辞!デベロッパーネットワーク
?
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtcYahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
驰补丑辞辞!デベロッパーネットワーク
?
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtcヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
驰补丑辞辞!デベロッパーネットワーク
?
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
驰补丑辞辞!デベロッパーネットワーク
?

Recently uploaded (6)

量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
info819904
?
カスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージ
カスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージカスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージ
カスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージ
info819904
?
2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿
2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿
2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿
翔栄 杉田
?
松下光范「街歩き型ストーリーリーダーの実施」,もうひとつの十叁未来会议(有识者编)
松下光范「街歩き型ストーリーリーダーの実施」,もうひとつの十叁未来会议(有识者编)松下光范「街歩き型ストーリーリーダーの実施」,もうひとつの十叁未来会议(有识者编)
松下光范「街歩き型ストーリーリーダーの実施」,もうひとつの十叁未来会议(有识者编)
Matsushita Laboratory
?
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
sugiuralab
?
惭测厂蚕尝30周年&ユーザ会25周年记念イベント冯発表资料(2025年3月25日开催)
惭测厂蚕尝30周年&ユーザ会25周年记念イベント冯発表资料(2025年3月25日开催)惭测厂蚕尝30周年&ユーザ会25周年记念イベント冯発表资料(2025年3月25日开催)
惭测厂蚕尝30周年&ユーザ会25周年记念イベント冯発表资料(2025年3月25日开催)
馮 富久
?
量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
量子リザバソフトウェア冲时系列データ(农业?核融合?需要予测)効果検証冲导入による成果
info819904
?
カスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージ
カスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージカスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージ
カスタム厂尝惭「贬补尘蝉迟别谤」冲軽量でセキュアな専用言语モデル冲础滨エージェント冲チャットボット冲マッチングアプリ构筑のコアパッケージ
info819904
?
2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿
2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿
2019飞冲东京大学大学院茂木研究室冲学生研究员杉田翔栄冲搁罢贰最终発表会スライト?.辫诲蹿
翔栄 杉田
?
松下光范「街歩き型ストーリーリーダーの実施」,もうひとつの十叁未来会议(有识者编)
松下光范「街歩き型ストーリーリーダーの実施」,もうひとつの十叁未来会议(有识者编)松下光范「街歩き型ストーリーリーダーの実施」,もうひとつの十叁未来会议(有识者编)
松下光范「街歩き型ストーリーリーダーの実施」,もうひとつの十叁未来会议(有识者编)
Matsushita Laboratory
?
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
自由に移动する复数の?々に异なる映像を提?するテ?ィスフ?レイシステムについての基础検讨
sugiuralab
?
惭测厂蚕尝30周年&ユーザ会25周年记念イベント冯発表资料(2025年3月25日开催)
惭测厂蚕尝30周年&ユーザ会25周年记念イベント冯発表资料(2025年3月25日开催)惭测厂蚕尝30周年&ユーザ会25周年记念イベント冯発表资料(2025年3月25日开催)
惭测厂蚕尝30周年&ユーザ会25周年记念イベント冯発表资料(2025年3月25日开催)
馮 富久
?

Bonfire API #1 APIのリトライ処理

  • 1. Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved. 2018年2月5日 山内晨吾 APIのリトライ処理
  • 2. Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved. 自己紹介 2 8pockets (山内晨吾) ヤフオク!アプリ開発部 業務で触る言語は Swift、Go、C++、PHP
  • 3. Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved. 目次 ?ヤフオク!の設計 ?耐久性向上について ?デモ 3
  • 4. Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved. ヤフオク!の設計
  • 5. Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved. ヤフオク! の開発 5 大規模なシステムリニューアル真っ最中 今まで使ってきたレガシー環境を脱却して、 新たな言語やPFに移行している。 新たなシステム設計思想やパターンを適用してコン テナに載せ替えている。
  • 6. Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved. ヤフオク! の設計思想 6 Frontend Service DataAccess Database スマホ、PC、パートナー向けツール 出品、落札、検索、レコメンド 出品PF、ユーザーPF、課金PF DB、ストレージ マイクロサービス化にあたって、開発のしやすさや拡張のしやすさ を考えて レイヤーを分けてサービスの設計をしている。
  • 7. Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved. ヤフオク! の設計思想 7 きまり ?必ず各レイヤーを通してデータを引くこと ?自分と同じレイヤーのAPIは叩いてはいけない 独立した単機能になるように努力する。 ?コンポーネントの役割を明確にして 疎結合にすること。 課題点 ?レイヤー化することによるレイテンシの増加がおこり システムが不安定になるのではないか???
  • 8. Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved. 耐久性向上
  • 9. Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved. 耐久性向上 クライアントからサーバーにリクエストする際、 サーバーが落ちている場合、 クライアントで最適なリトライ処理を行いたい。 9 Circuit Breaker / Exponential Backoff を用いて実現。
  • 10. Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved. Circuit Breaker ある処理のエラー頻度が閾値を超えたら、 実際にサーバーへリクエストせずに即座にエ ラーを返すパターン 10
  • 11. Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved. Circuit Breaker 11 規定の回数失敗したら起動
  • 12. Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved. Circuit Breaker なにがいいのか タイムアウト待ちを省略してエラーを返却できるので システム全体の負荷が下がる。 発動時にはアラートで通知することが大事。 システムが復帰した時には、リトライ処理を行うことでリクエストが 再開される 12
  • 13. Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved. 13 Exponential Backoff (指数関数的後退) リトライの待機時間を失敗回数が増えるに連れて、 指数関数的に増やすアルゴリズム さらに衝突の連続を防ぐために遅延をランダム化。(Jitter) リトライにより後に成功する可能性が高いリクエストを 救える。 Exponential Backoff
  • 14. Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved. Exponential Backoff 14 アルゴリズム例 ?サーバーへのリクエストが失敗 ?0.5秒待って、リクエストを再試行 ?1.0秒待って、リクエストを再試行 ?2.0秒待って、リクエストを再試行 ?4.0秒待って、リクエストを再試行 ?設定した最大待機時間まで増加を繰り返す
  • 15. Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved. Exponential Backoff 15 なにがいいのか 長期障害発生時にシステムへの不必要な負担を軽減 大規模分散システム内では常に部分障害が発生しているた め、運用コストを削減するためのパターン
  • 16. Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved. 実演
  • 17. Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved. 取り組みの効果 17 APIリクエスト先は1つではなく、別部署や、全社PFだったり 色々。 リクエスト先の異常も自分たちで出来る限りコントロールできる。 事故の早期発見に繋がり、原因も分かりやすくなった。 アラートが減り、不要な通知が減ったため、対応するタスクが より明確になった。
  • 18. Copyright ? 2017 Yahoo Japan Corporation. All Rights Reserved. おわり