PyCon JP 2025 Logo
広島国際会議場
JPEN

Yuki Furukawa

Streamlit は社内ツールだけじゃない!PoCの速さで実現する"商用品質"の分析SaaSアーキテクチャ

ダリア2日本語
05:05 - 05:3530min
DAY 2
09/27
SAT

データアナリティクス機能を "Python" で “外のお客様” に届けたい開発者へ。 本発表では、社内ツールで終わりがちな Streamlit アプリを“商用品質”に引き上げ、わずか2週間で EC 事業者向け SaaS としてリリースした実体験を共有します。 EC事業者の売上向上を支援する中で「どの商品が返品を生むか」「メール施策は機能しているか」といったデータ活用ニーズが高まりました。PoCは瞬時に作れるStreamlitですが、本番SaaSにはセキュリティ・性能・品質保証という壁が立ちはだかります。

私たちは「PoCの速さ」と「SaaSの品質」を両立させるため、以下のPythonエコシステムのピースを戦略的に組み合わせました。

  • 堅牢性:Streamlitの独自例外をDecoratorで捕捉し、ユーザーフレンドリーな通知と情報漏洩を防止
  • 分析基盤:S3/Kinesis Firehose/Athena/awswranglerによるETL不要のサーバーレス構成
  • パフォーマンス:効率的なSession StateキャッシュでAthenaコスト削減、レスポンスを高速化
  • UX:Altairによる宣言的で美しいインタラクティブグラフ
  • 認証:WebSocketのCookie問題をJWT検証Decoratorで解決
  • 品質保証:mypy/pyrightによる型安全担保/Streamlit Testing APIを用いたヘッドレステストをCIに統合

リリース初日から顧客10社が利用開始し、インシデントゼロで安定稼働しています。 「あつまれ Python のピース」に沿い、多様なピースを束ねてビジネス価値を最大化する方法を紹介します。 参加者は「迅速さ」と「高品質」を両立させる具体的なレシピを持ち帰れます。


トーク詳細 / Description

  • イントロダクション

    • 自己紹介
    • 顧客の強いデータ活用ニーズと「2 週間リリース」の背景
    • Streamlit の爆速 PoC を 商用品質 に高めるミッション
  • 堅牢性 & セキュリティ

    • 例外握りつぶし問題:Decorator で捕捉し安全なエラー表示
    • WebSocket × Cookie の罠:JWT 検証 Decorator で毎リクエスト再チェック
  • 分析基盤 & パフォーマンス

    • S3 → Firehose → Athena → awswrangler
    • SessionState キャッシュによる Athena コスト削減
    • Altair による宣言的・美しいインタラクティブグラフ
  • 品質保証 & CI/CD

    • 型安全ファースト:mypy/pyright と Result 型でバグ未然防止
    • Streamlit Testing API を用いたヘッドレステストを自動化(pytest-xdist 併用)
    • Jsonnet + GitHub Actions → ECS Fargate:環境差分のないワンコマンドデプロイ
  • ビジネスインパクト & 学び

    • 公開初日で顧客 10 社 が即利用、データドリブン施策が加速
    • PoC の速さ × SaaS の品質 を両立する設計Tips
  • まとめ & Q&A

    • 発表内容のサマリー(持ち帰ってほしいこと)
    • 質疑応答

Yuki Furukawa

プロフィール