Upgrade to Pro — share decks privately, control downloads, hide ads and more …

サーバーレスAPIのパフォーマンステストとアプリの未来

草薙昭彦
September 21, 2024

 サーバーレスAPIのパフォーマンステストとアプリの未来

サーバーレス・アーキテクチャの特性を振り返り、APIをサーバーレスで実装する場合に、どのような点を考慮してAPIのパフォーマンスを考えれば良いかを議論します。そしてPostmanが備えるAPIパフォーマンステスト機能がどのような場面で役に立つかを紹介します。さらに、豊富なAPIが利用可能になった未来の世界で、アプリ開発がどのようになるのかをビジュアルツールPostman Flowsのデモを中心にご覧いただきます。ServerlessDays Tokyo 2024での発表資料です。

草薙昭彦

September 21, 2024
Tweet

More Decks by 草薙昭彦

Other Decks in Technology

Transcript

  1. All rights reserved by Postman Inc サーバーレス API の パフォーマンステストと

    アプリの未来 草薙 昭彦 テクノロジーエバンジェリスト #serverlessjp #serverlesstokyo
  2. Function-as-a-Service FaaS @postman_japan • イベントに応じて実行される個別のコード • イベントは、HTTP リクエスト、データベースの変更、またはスケジュールされた タスクなど •

    トリガーされると、クラウドプロバイダーはコンテナーをインスタンス化して関数を 実行 • このコンテナーは、このコードとそのメモリを、他のユーザーが同じ物理ハード ウェアで実行している他のサーバーレス関数から保護
  3. サーバーレスの利点 @postman_japan • コスト効率 : 消費したコンピューティング時間に対してのみ料金が発生 • 自動スケーリング : サーバーレス関数は、必要に応じて複数のインスタンスを生

    成することで自動的にスケーリングレイテンシが最小限に抑えられ、全体的な ユーザー体験が向上 • 運用管理: インフラの管理、メンテナンス、更新はクラウドプロバイダーによって 処理されるため、チームメンバーは他の重要な部分を管理するための時間を確 保できる • 迅速な導入と更新 : 管理するインフラがないため、導入はより迅速かつ容易に。 各エンドポイントは独自の機能またはメソッドであるため、コードのメンテナンス が最小限に抑えられ、簡素化
  4. サーバーレスの課題 @postman_japan • コールドスタート : アイドル時間の経過後に関数を初めて呼び出すと、レイテン シが急上昇する場合がある • リソース制限 :

    アプリケーションとサポートコードの実行時間、メモリ、サイズに制 限がある • デバッグの課題 : 従来のデバッグツールが適用できるとは限らない。デプロイ時 に最も一般的なデバッグツールはログデータ • 作業の重複 : 各エンドポイントが独自のコードブロックである場合、共有ライブラ リコードを簡単に追加できないインフラストラクチャでは、コードが重複することが ある
  5. サーバーレス API の構築は実現可能か @postman_japan • もちろん可能!サーバーレスのオンデマンドスケーリングは API に最適 • きめ細かいスケーリング

    : 各エンドポイントは需要に応じて個別にスケーリング できる • コスト削減 : アイドル状態のサーバーがないのでリソースが無駄にならない • より高速なイテレーション : 開発者は、API 全体に影響を与えることなく、エンド ポイントの変更を迅速に展開できる
  6. サーバーレス API 構築の課題 @postman_japan • 状態管理: サーバーレス関数はステートレスであるため、特定の操作の実装が より困難に • 複雑なアーキテクチャ

    : 大規模な API では多数の機能が必要になる場合があ り、API の構成がより複雑に • ツールと監視 : 従来のツールはサーバーレス環境に対応していない可能性があ り、新しいソリューションが必要になる • レイテンシの増加とカスタマイズの制限 : コールドスタートにより API のレイテ ンシが発生。アプリケーションを起動したままにする?クラウドプロバイダーの提 供内容によってはコストとビジネスニーズの両立が難しい場合も
  7. Postman とは? 3,100 万人以上のユーザーに使わ れている API コラボレーションプラッ トフォーム Postman は

    API を使う作業をより 効率よく行うのに役立ちます 公開 設計・モック 自動化テスト ドキュメント 監視 デバッグ @postman_japan
  8. なぜ Postman でパフォーマンステスト? @postman_japan Postman API コレクション レスポンスの確認 一度コレクションを 作ってしまえば、

    色々な用途に使える🚀 モック開発 API テスト ドキュメント生成 パフォーマンステスト Open API 仕様 curl コマンド Postman プロキシ インターセプター API ゲートウェイ API ゲートウェイ
  9. パフォーマンスはユーザー体験である ソフトウェアやウェブアプリケーションのパフォーマンスはユーザーエクスペリエンスに直結してい るとても重要な要素 Web performance is user experience. As you

    design and develop a new site, youʼll consider many components of its user experience: layout, hierarchy, intuitiveness, ease of use, and more. Your siteʼs experience determines how much your audience trusts your brand, returns to your site, and shares it with others. Designing for performance, by Lara Callender Hogan, Dec 2014 https://www.oreilly.com/library/view/designing-for-performance/9781491903704/ https://designingforperformance.com/index.html @postman_japan
  10. パフォーマンスに関する取り組みはできるだけ早く 他のテスト同様にライフサイクルにおいてできるだけ早い段階(シフトレフト) から 継続的 に実施することが重要。Test frequently, Fail early Define Design

    Develop Test Deploy Observe Distribute • パフォーマンス要件 • アーキテクチャ分析 • メトリクス設計・開発 • パフォーマンス監視 • ボトルネック検知・分析 • フィードバック check check check check check 後ろのフェーズになればなるほど改修コストが大きい check @postman_japan
  11. パフォーマンステストとは? パフォーマンステストは一般に、特定の作業負荷のもとで、システムが応答性と安定性の面でどのように 動作するかを判断するために実施されるテストである。また、スケーラビリティ、信頼性、リソース使用量な ど、システムの他の品質属性を調査、測定、検証、確認することもある Performance Testing Load Testing Stress Testing

    Breakpoint Testing Spike Testing Soak Endurance) Testing Configuration Testing Internet Testing 負荷テスト: 特定の負荷下でのシステム動作理解のた め実施。ボトルネック特定に役立つ 予想最大負荷を超えた状況下でシステムが機能する かをテスト。システムの上限理解のために実施 負荷を徐々に増加させてシステムの限界を特定 劇的な負荷の変化に対処できているかテスト 継続的な負荷に耐えられるかどうかをテスト 構成変更が性能や振る舞いに与える影響をテスト。例 : 負 荷分散方法、H/W組合せ、設定値変更 グローバルアプリに 各ターゲット大陸から膨大な負荷 をかけるテスト Wikipedia: https://en.wikipedia.org/wiki/Software_performance_testing @postman_japan
  12. Postman Flows とは? API 中心のアプリ(ワークフロー)を構築するためのビジュアルエディター • 複数の API の連携、データの加工、出力結果の可視化など一連のアクションの自動化 ◦

    サービス連携処理、自然言語処理、 DevOps 処理、など • 既存のコレクションにある API リクエスト設定や環境を活用可能 • フロー用の Webhook エンドポイントを公開して、外部からフローをトリガー可能 @postman_japan
  13. Postman Flows とフロー Flow • Postman Flows : ワークフロー構築のためのビジュアルエディター •

    フロー Flow Postman Flows で構築するワークフローのこと フロー フロー一覧 Postman Flows @postman_japan
  14. Postman Rail 構成(フローをデプロイ) @postman_japan ローカル PC Mabeee API サーバー Bluetooth

    127.0.0.1 Postman クラウド Postman Flows ngrok クラウド ngrok Raspberry Pi Webhook センサー
  15. まとめ • サーバレスは API • API の構築にはサーバレスアーキテクチャの特徴が生かせるが、 サーバレスの特性をよく理解しておく必要がある • API

    開発の中で常に挙動を確かめるのに Postman パフォーマンスモニターが 役に立つ • 開発者だけでなく誰もが API を使える 未来へ @postman_japan
  16. ダウンロードして無料でスタート! https://www.postman.com/downloads/ デスクトップアプリ • Windows • Mac • Linux Web

    アプリ • アカウント登録で同 じ機能をブラウザで も利用できる @postman_japan