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.

1c9dd7e567cc59a411976552c18fdf85?s=128

Hecham Ghazal

January 18, 2013
Tweet

Transcript

  1. Django & Distributed Systems Hecham Ghazal Jan. 17, 2013 @hechamghazal

    hechamghazal@gmail.com Friday, 18 January, 13
  2. In the beginning . . . Friday, 18 January, 13

  3. Friday, 18 January, 13

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

  5. Friday, 18 January, 13

  6. ... Friday, 18 January, 13

  7. ... Friday, 18 January, 13

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

  9. measure traction Friday, 18 January, 13

  10. success beyond expectation Friday, 18 January, 13

  11. executive Friday, 18 January, 13

  12. Friday, 18 January, 13

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

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

  15. economy government Friday, 18 January, 13

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

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

    13
  18. GREAT Friday, 18 January, 13

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

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

  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
  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
  23. • Built on top of ZeroMQ • Cross-platform ZeroRPC •

    New • Released too late for us PROS CONS Friday, 18 January, 13
  24. If we can build our own . . . Friday,

    18 January, 13
  25. CHUNNEL Friday, 18 January, 13

  26. Objectives Friday, 18 January, 13

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

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

  29. Name spacing Friday, 18 January, 13

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

  31. Dynamic Friday, 18 January, 13

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

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

  34. TypeError Friday, 18 January, 13

  35. Friday, 18 January, 13

  36. Scalability Friday, 18 January, 13

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

    13
  38. Performance Friday, 18 January, 13

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

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

  41. Open Source SOON Friday, 18 January, 13

  42. Questions Friday, 18 January, 13