Slide 1

Slide 1 text

「それいけ!アンパンマン vs APIリクエスト:技術的勝利への道」 Shuma

Slide 2

Slide 2 text

自己紹介 名前:Shuma
 現職:ベンチャー企業でインフラエンジニア
 
 経歴:飲食店店長→バイト→インフラエンジニア
 技術:クラウド(AWS、GoogleCloud ) PHP,Python 好きなパン:あんぱん

Slide 3

Slide 3 text

このLTの対象者 ● APIを初めて学ぶ人 ● APIの基本概念を楽しく復習したい人 ● アンパンマンが好きな人

Slide 4

Slide 4 text

APIとは? ● Application Programming Interface(アプリケーション・プログラミング・インター フェース)の略 ● ソフトウェアコンポーネント間の通信を可能にする ● Webサービスでよく使用される

Slide 5

Slide 5 text

アンパンマンとは? 漫画家:やなせたかしが作った日本の人気アニメキャラクター  特徴:顔がアンパン、正義の味方 主な能力: ● 顔を新しいアンパンに交換可能 ● 空を飛ぶ ● アンパンチという必殺技 ● 困っている人を助ける 仲間たち:ジャムおじさん(生みの親)、バタコさん、メロンパンナ等 対抗者:バイキンマン

Slide 6

Slide 6 text

アンパンマンが技術的に勝利するために 普通に考えてもアンパンマンが APIリクエストに勝つことは難しい。。 ですが、アンパンマンの強みを考えた時に ・顔が新しいアンパンに交換可能 ・正義の心と勇気 ・仲間たちのサポート 彼にはこれらの強みがあるので今回はこれらの強みを 技術的に強化していこうと思います。

Slide 7

Slide 7 text

クイズ① アンパンマンの最高飛行速度は次のうちどれでしょうか? 1.秒速 1.5km (マッハ4.4) 2.秒速 7.9km (マッハ23) 3.秒速 15.0km (マッハ43.9)

Slide 8

Slide 8 text

技術的勝利への道①(アンパンチ = 高速化 (キャッシュ)) ・アンパンマン:「僕のアンパンチは一撃必殺だよ!」 ・API:「私のレスポンスも一瞬で返せるんです!」 このコードでは、最新の投稿を Redisにキャッシュしています。キャッシュがある場合は即座に返し、なければデータベースから取得してキャッシュします。

Slide 9

Slide 9 text

技術的勝利への道②(顔の交換 = スケーラビリティ (オートスケーリング)) ・ジャムおじさん:「アンパンマン、新しい顔だよ!」 ・API:「負荷に応じて、私も新しいサーバーを立ち上げます!」 この設定では、CPU使用率が50%を超えると自動的にポッドを増やし、最大10個まで拡 張します。

Slide 10

Slide 10 text

クイズ② 名作アニメ「アンパンマン」に登場する「バタコ」さんは、新しい顔をどのくらいの速度でアンパンマンに投げ ているでしょうか?アンパンマンとの距離は15m、投げる角度は45°です。 1. 時速 87km 2. 時速 540km 3. 時速 5400km

Slide 11

Slide 11 text

技術的勝利への道③バタコさんの投げ = ロードバランシング ● バタコさん:「アンパンマン、ちゃんと届けるわよ!」 ● API:「リクエストも適切なサーバーに振り分けます!」

Slide 12

Slide 12 text

技術的勝利への道④ジャムおじさんの回復力 = レジリエンス (エラーハンドリング) ● ジャムおじさん:「大丈夫、すぐに新しい顔を作るよ!」 ● API:「エラーが起きても、自動で回復します!」 具体例 :Pythonでのリトライ機能実装 この関数は、失敗した場合に最大 3回まで再試行します。待機時間は指数関数的に増加します。

Slide 13

Slide 13 text

まとめ

Slide 14

Slide 14 text

まとめ アンパンマン:「みんなで力を合わせれば、どんな困難も乗り越えられるよ!」 API:「そうですね!各機能が協調して働くことで、強靭で効率的なシステムになりま す!」 バイキンマン:「うぎゃー!こんなに強いAPIじゃ、僕の出る幕がないよ〜!」

Slide 15

Slide 15 text

参考文献 参考資料 アンパンマン公式サイト : [アンパンマンポータルサイト (anpanman.jp)] バタコさんの投球速度 :[名作アニメ「アンパンマン」強肩!「バタコ」さん徹底解説!魅力溢れる「バタコ」さんの 秘密│雑学探求心 (sakihopapa.com)] Super源さんの雑学辞典:[アンパンマンの飛行速度は、秒速 7.9km? | Super源さんの雑学事典 (zatsugaku-jiten.net)]
 実践:はじめてのWebAPI設計:[ 実践:はじめてのWebAPI設計 #Python - Qiita] API開発とは?何ができるの?分かりやすく解説 :[API開発とは?何ができるの?分かりやすく解説 | WEBシステム開発・アプリ開 発なら株式会社イーポート (e-port.co.jp)]

Slide 16

Slide 16 text

おわり ・このスライドを作成するまで ジャムおじさんとバタコさんが妖精だと知りませんでした・・・