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

Django & Distributed Systems

Django & Distributed Systems

Introduction to Wave CHUNNEL, a Django RPC framework that makes it easy to build distributed SOA applications with Django.

Hecham Ghazal

January 18, 2013
Tweet

Transcript

  1. Django & Distributed Systems
    Hecham Ghazal
    Jan. 17, 2013
    @hechamghazal
    [email protected]
    Friday, 18 January, 13

    View Slide

  2. In the beginning . . .
    Friday, 18 January, 13

    View Slide

  3. Friday, 18 January, 13

    View Slide

  4. start adding “features”
    Friday, 18 January, 13

    View Slide

  5. Friday, 18 January, 13

    View Slide

  6. ...
    Friday, 18 January, 13

    View Slide

  7. ...
    Friday, 18 January, 13

    View Slide

  8. launch project ‘economy’
    Friday, 18 January, 13

    View Slide

  9. measure traction
    Friday, 18 January, 13

    View Slide

  10. success beyond expectation
    Friday, 18 January, 13

    View Slide

  11. executive
    Friday, 18 January, 13

    View Slide

  12. Friday, 18 January, 13

    View Slide

  13. launch “government” and
    measure again
    Friday, 18 January, 13

    View Slide

  14. Success, but . . .
    Friday, 18 January, 13

    View Slide

  15. economy government
    Friday, 18 January, 13

    View Slide

  16. is not where we want to be
    Friday, 18 January, 13

    View Slide

  17. economy government education
    citizen
    . . .
    Friday, 18 January, 13

    View Slide

  18. GREAT
    Friday, 18 January, 13

    View Slide

  19. how do you do inter-project
    RPC in Django?
    Friday, 18 January, 13

    View Slide

  20. REST
    Thrift
    Protobuf
    ZeroRPC
    Friday, 18 January, 13

    View Slide

  21. • Widely understood
    • Easily scalable
    • Runs over HTTP
    REST
    • Take time
    • Time to build client lib.
    • Not clean for model
    methods
    PROS CONS
    Friday, 18 January, 13

    View Slide

  22. • built by Facebook/
    Google
    • Cross-platform
    Thrift / Protobuf
    • Need to know and
    update contract before
    hand
    • Not enough docs
    • Learning curve
    PROS CONS
    Friday, 18 January, 13

    View Slide

  23. • Built on top of
    ZeroMQ
    • Cross-platform
    ZeroRPC
    • New
    • Released too late for us
    PROS CONS
    Friday, 18 January, 13

    View Slide

  24. If we can build our own . . .
    Friday, 18 January, 13

    View Slide

  25. CHUNNEL
    Friday, 18 January, 13

    View Slide

  26. Objectives
    Friday, 18 January, 13

    View Slide

  27. Simple Server
    economy/moeny/rpc.py
    Friday, 18 January, 13

    View Slide

  28. Simple Client
    settings.py
    Friday, 18 January, 13

    View Slide

  29. Name spacing
    Friday, 18 January, 13

    View Slide

  30. Expose Django Model
    Server:
    Client:
    Friday, 18 January, 13

    View Slide

  31. Dynamic
    Friday, 18 January, 13

    View Slide

  32. Multiple Serialization Backends
    Multiple Server Backends
    Friday, 18 January, 13

    View Slide

  33. Built-in documentation
    generator
    Friday, 18 January, 13

    View Slide

  34. TypeError
    Friday, 18 January, 13

    View Slide

  35. Friday, 18 January, 13

    View Slide

  36. Scalability
    Friday, 18 January, 13

    View Slide

  37. built-in round-robin support
    horizontally scalable via HAProxy
    Friday, 18 January, 13

    View Slide

  38. Performance
    Friday, 18 January, 13

    View Slide

  39. 400+ requests/sec on a single
    2GB box
    Friday, 18 January, 13

    View Slide

  40. Widely adopted at Wave
    Friday, 18 January, 13

    View Slide

  41. Open Source
    SOON
    Friday, 18 January, 13

    View Slide

  42. Questions
    Friday, 18 January, 13

    View Slide