Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
「それいけ!アンパンマン vs APIリクエスト:技術的勝利への道」
Search
Shuma
October 13, 2024
Programming
340
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
「それいけ!アンパンマン vs APIリクエスト:技術的勝利への道」
10月12日IT勉強会で発表した内容です。
Shuma
October 13, 2024
More Decks by Shuma
See All by Shuma
信頼性の目標を誰も求めてない
shubox
0
570
DB移行、油断した瞬間に 肝が冷えた話
shubox
0
80
AIの権限設定に悩んでいる話
shubox
0
81
インフラ深掘りLT
shubox
0
80
飲食店長から_SREになった話
shubox
0
83
Ansible で Vector を導入し Slack 通知とログレベル色分けまでした話
shubox
0
75
阿部寛のホームページをSRE観点で改善出来るか考えてみた。
shubox
1
190
一日の終わりに、晩酌しながら眺めたいシステムログの世界
shubox
1
150
プロダクトがクローズした話
shubox
0
240
Other Decks in Programming
See All in Programming
AI-Powered Domain-Driven Design
ziobrando
0
380
우리의 Nitro Modules는 당신의 Turbo Modules보다 아름답다
l2hyunwoo
0
250
Enforcing Your Architecture with Unit Tests in the AI Era (Swift Connection X)
steliosf
PRO
1
120
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
280
AWS CDKを理解するために公式の定義を深掘って解説してみる / Understanding AWS CDK by Digging into Its Official Definition
akihisaikeda
2
190
SFCで実現する病院・医療システムの動的組み立て式UI
koukimiura
1
170
flutter_test のその先へ — Flutter アプリの LLM 機能に「評価」という品質保証を
kosukesaigusa
0
180
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
3
1.7k
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
400
Kotlinize Is Not Just Converting to Kotlin
chigichan24
1
220
AI時代のTerminal環境を UNIX哲学で設計・運用する
yasunori0418
1
340
AIがコードを書いてくれる時代、我々は何を確かめるのか
yosuke_furukawa
PRO
13
5.6k
Featured
See All Featured
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
740
Code Reviewing Like a Champion
maltzj
529
40k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Unsuck your backbone
ammeep
672
58k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
320
A better future with KSS
kneath
240
18k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.4k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
920
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
580
New Earth Scene 8
popppiees
4
2.8k
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)]
おわり ・このスライドを作成するまで ジャムおじさんとバタコさんが妖精だと知りませんでした・・・