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
「それいけ!アンパンマン vs APIリクエスト:技術的勝利への道」
Search
Shuma
October 13, 2024
Programming
0
52
「それいけ!アンパンマン vs APIリクエスト:技術的勝利への道」
10月12日IT勉強会で発表した内容です。
Shuma
October 13, 2024
Tweet
Share
More Decks by Shuma
See All by Shuma
日本のうどん文化とチェーン店比較
shubox
0
98
カウンター越しの知識 ~HackBarで得た知見~
shubox
0
84
水戸黄門で学ぶカリー=ハワード同型対応
shubox
1
170
Nagiosについて語ってみる話
shubox
0
77
○○についてググってみた。
shubox
0
12
VPN vs Zerotrust
shubox
0
18
誰にでも伝わる文書ってどんなものか考えた。
shubox
0
15
監視ツールをリプレースした時の話
shubox
0
42
もしも、戦国時代にインフラエンジニアが存在したら
shubox
0
44
Other Decks in Programming
See All in Programming
破壊せよ!データ破壊駆動で考えるドメインモデリング / data-destroy-driven
minodriven
17
4.3k
見せてあげますよ、「本物のLaravel批判」ってやつを。
77web
6
7.2k
ヤプリ新卒SREの オンボーディング
masaki12
0
110
Sidekiqで実現する 長時間非同期処理の中断と再開 / Pausing and Resuming Long-Running Asynchronous Jobs with Sidekiq
hypermkt
6
3.1k
[PyCon Korea 2024 Keynote] 커뮤니티와 파이썬, 그리고 우리
beomi
0
120
Streams APIとTCPフロー制御 / Web Streams API and TCP flow control
tasshi
2
340
2024/11/8 関西Kaggler会 2024 #3 / Kaggle Kernel で Gemma 2 × vLLM を動かす。
kohecchi
4
650
ペアーズにおけるAmazon Bedrockを⽤いた障害対応⽀援 ⽣成AIツールの導⼊事例 @ 20241115配信AWSウェビナー登壇
fukubaka0825
2
350
プロジェクト新規参入者のリードタイム短縮の観点から見る、品質の高いコードとアーキテクチャを保つメリット
d_endo
1
1.1k
AI時代におけるSRE、 あるいはエンジニアの生存戦略
pyama86
4
1k
Identifying User Idenity
moro
6
9.6k
Pinia Colada が実現するスマートな非同期処理
naokihaba
4
210
Featured
See All Featured
A Philosophy of Restraint
colly
203
16k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
The Language of Interfaces
destraynor
154
24k
What's new in Ruby 2.0
geeforr
343
31k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
65k
Faster Mobile Websites
deanohume
305
30k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
109
49k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
42
9.2k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
231
17k
Facilitating Awesome Meetings
lara
50
6.1k
A better future with KSS
kneath
238
17k
Transcript
「それいけ!アンパンマン vs APIリクエスト:技術的勝利への道」 Shuma
自己紹介 名前:Shuma 現職:ベンチャー企業でインフラエンジニア 経歴:飲食店店長→バイト→インフラエンジニア 技術:クラウド(AWS、GoogleCloud ) PHP,Python 好きなパン:あんぱん
このLTの対象者 • APIを初めて学ぶ人 • APIの基本概念を楽しく復習したい人 • アンパンマンが好きな人
APIとは? • Application Programming Interface(アプリケーション・プログラミング・インター フェース)の略 • ソフトウェアコンポーネント間の通信を可能にする • Webサービスでよく使用される
アンパンマンとは? 漫画家:やなせたかしが作った日本の人気アニメキャラクター 特徴:顔がアンパン、正義の味方 主な能力: • 顔を新しいアンパンに交換可能 • 空を飛ぶ • アンパンチという必殺技
• 困っている人を助ける 仲間たち:ジャムおじさん(生みの親)、バタコさん、メロンパンナ等 対抗者:バイキンマン
アンパンマンが技術的に勝利するために 普通に考えてもアンパンマンが APIリクエストに勝つことは難しい。。 ですが、アンパンマンの強みを考えた時に ・顔が新しいアンパンに交換可能 ・正義の心と勇気 ・仲間たちのサポート 彼にはこれらの強みがあるので今回はこれらの強みを 技術的に強化していこうと思います。
クイズ① アンパンマンの最高飛行速度は次のうちどれでしょうか? 1.秒速 1.5km (マッハ4.4) 2.秒速 7.9km (マッハ23) 3.秒速 15.0km
(マッハ43.9)
技術的勝利への道①(アンパンチ = 高速化 (キャッシュ)) ・アンパンマン:「僕のアンパンチは一撃必殺だよ!」 ・API:「私のレスポンスも一瞬で返せるんです!」 このコードでは、最新の投稿を Redisにキャッシュしています。キャッシュがある場合は即座に返し、なければデータベースから取得してキャッシュします。
技術的勝利への道②(顔の交換 = スケーラビリティ (オートスケーリング)) ・ジャムおじさん:「アンパンマン、新しい顔だよ!」 ・API:「負荷に応じて、私も新しいサーバーを立ち上げます!」 この設定では、CPU使用率が50%を超えると自動的にポッドを増やし、最大10個まで拡 張します。
クイズ② 名作アニメ「アンパンマン」に登場する「バタコ」さんは、新しい顔をどのくらいの速度でアンパンマンに投げ ているでしょうか?アンパンマンとの距離は15m、投げる角度は45°です。 1. 時速 87km 2. 時速 540km 3.
時速 5400km
技術的勝利への道③バタコさんの投げ = ロードバランシング • バタコさん:「アンパンマン、ちゃんと届けるわよ!」 • API:「リクエストも適切なサーバーに振り分けます!」
技術的勝利への道④ジャムおじさんの回復力 = レジリエンス (エラーハンドリング) • ジャムおじさん:「大丈夫、すぐに新しい顔を作るよ!」 • API:「エラーが起きても、自動で回復します!」 具体例 :Pythonでのリトライ機能実装
この関数は、失敗した場合に最大 3回まで再試行します。待機時間は指数関数的に増加します。
まとめ
まとめ アンパンマン:「みんなで力を合わせれば、どんな困難も乗り越えられるよ!」 API:「そうですね!各機能が協調して働くことで、強靭で効率的なシステムになりま す!」 バイキンマン:「うぎゃー!こんなに強いAPIじゃ、僕の出る幕がないよ〜!」
参考文献 参考資料 アンパンマン公式サイト : [アンパンマンポータルサイト (anpanman.jp)] バタコさんの投球速度 :[名作アニメ「アンパンマン」強肩!「バタコ」さん徹底解説!魅力溢れる「バタコ」さんの 秘密│雑学探求心 (sakihopapa.com)]
Super源さんの雑学辞典:[アンパンマンの飛行速度は、秒速 7.9km? | Super源さんの雑学事典 (zatsugaku-jiten.net)] 実践:はじめてのWebAPI設計:[ 実践:はじめてのWebAPI設計 #Python - Qiita] API開発とは?何ができるの?分かりやすく解説 :[API開発とは?何ができるの?分かりやすく解説 | WEBシステム開発・アプリ開 発なら株式会社イーポート (e-port.co.jp)]
おわり ・このスライドを作成するまで ジャムおじさんとバタコさんが妖精だと知りませんでした・・・