お前はまだ本当のDjango ASGIを知らない。
10-15, 13:00–13:30 (Asia/Tokyo), pyconjp_4
Language: Japanese

Django は3.0よりASGIをサポートしました。WSGIの後継として登場したASGIですが、実際にこうすれば使える、async/awaitで書きます。といった情報は多く見かけるようになりました。しかし、結局運用的に何が美味しいのか、パフォーマンス的に何が美味しいのか、そもそも実際に美味しいのかといった観点の情報はまだあまり世の中に多くありません。

今回はDjangoが正式にASGI対応を始める前のDjango 2.x時代からDjango Channelsを利用したASGIウェブアプリケーションを運用してきたLAPRASでの経験を踏まえ、Django標準のASGI対応をお伝えしていきます。


Djnago は3.0よりASGIをサポートしました。WSGIの後継として登場したASGIですが、実際にこうすれば使える、async/awaitで書きます。といった情報は多く見かけるようになりました。しかし、結局運用的に何が美味しいのか、パフォーマンス的に何が美味しいのか、そもそも実際に美味しいのかといった観点の情報はまだあまり世の中に多くありません。

このセッションではDjangoのASGI対応について、ASGI自体の知識やDjangoの運用について等の実運用的な観点を中心に生きた情報をまとめていきます。体系だったASGIへの理解よりはTips的な内容が多くなります。

予定稿

  • 自己紹介(1分)
  • 本セッションの概要説明 (1分)
  • モチベーション (1分)
  • DjangoのASGI対応(7分)
    • WSGI/ASGIの違い
    • ASGIのモチベーション
    • async/await/asyncio
  • Django ChannelsとASGIの関係(7分)
    • Django Channelsとは
    • Websocket対応
    • そもそもASGIならWebsocketができるのか?
  • パフォーマンスメリット(7分)
    • 書き換えはどれくらい大変か
      − ASGIを動かすためには
      • asgi.pyの追加
      • 対応サーバの移行(daphne/hypercorn/uvicorn)
    • 既存のViewのasync化はパフォーマンスに寄与するのか
  • まとめ(2分)

このトークで話さないこと

  • Django自体の基本的な知識
  • dockerの基本的な知識
  • Websocketのチュートリアル的な内容

大学卒業後、データベースエンジニアとして7年間活動。趣味で書いていたPythonのコードやStart Python Club等のイベント活動等がscouty(現 LAPRAS SCOUT)のサービスにヒット。scouty(現 LAPRAS SCOUT)経由のスカウトを受け2017年にscouty(現 LAPRAS)の9人目としてjoin。基本的にはウサギの姿を借りて活動中。