Docker and OTP: Friends or Foes?

E06aa8f63d2a1753a2b352bc1cabbde2?s=47 Daniel Azuma
September 07, 2018

Docker and OTP: Friends or Foes?

Presentation by Daniel Azuma at ElixirConf 2018. Discusses ideas for making OTP applications work together with container-based deployments. More information at http://daniel-azuma.com/elixirconf2018

E06aa8f63d2a1753a2b352bc1cabbde2?s=128

Daniel Azuma

September 07, 2018
Tweet

Transcript

  1. 3.
  2. 9.

    Web client Tanx Phoenix app Game Server Game Updater Game

    Supervisor Javascript HTTP/ websocket
  3. 10.

    Web client Tanx Phoenix app Game Server Game Updater Game

    Supervisor HTTP/ websocket Javascript
  4. 11.

    Web client Tanx Phoenix app Channel Game Server Game Updater

    Game Supervisor HTTP/ websocket Javascript
  5. 12.

    Web client Tanx Phoenix app Channel Game Server Game Updater

    Game Supervisor HTTP/ websocket Load Balancer Javascript
  6. 13.

    Web client Tanx Phoenix app Channel Game Server Game Updater

    Game Supervisor HTTP/ websocket messages Load Balancer Javascript
  7. 14.

    Web client Tanx Phoenix app Channel Game Server Game Updater

    Game Supervisor HTTP/ websocket messages Load Balancer Javascript
  8. 15.

    Web client Tanx Phoenix app Channel Game Server Game Updater

    Game Supervisor HTTP/ websocket messages Load Balancer Javascript
  9. 16.

    Web client Tanx Phoenix app Channel Game Server Game Updater

    Game Supervisor HTTP/ websocket messages Load Balancer Javascript
  10. 18.
  11. 19.

    Load Balancer Web client Tanx Phoenix app Channel Game Server

    Game Updater Game Supervisor HTTP/ websocket messages Docker Container Javascript
  12. 20.

    Load Balancer Web client Tanx Phoenix app Channel Game Server

    Game Updater Game Supervisor HTTP/ websocket messages Docker Container Updated Container Javascript
  13. 21.

    Load Balancer Web client Tanx Phoenix app Channel Game Server

    Game Updater Game Supervisor HTTP/ websocket messages Docker Container Updated Container Javascript
  14. 22.

    Load Balancer Web client Tanx Phoenix app Channel Game Server

    Game Updater Game Supervisor HTTP/ websocket messages Docker Container Updated Container Javascript
  15. 23.

    Load Balancer Web client Tanx Phoenix app Channel Game Server

    Game Updater Game Supervisor Javascript HTTP/ websocket messages Docker Container Updated Container
  16. 25.
  17. 26.
  18. 27.
  19. 29.
  20. 30.

    ?

  21. 31.
  22. 32.
  23. 35.
  24. 37.
  25. 38.
  26. 40.
  27. 41.

    Load Balancer Web client Tanx Phoenix app Channel Game Server

    Game Updater Game Supervisor Javascript HTTP/ websocket messages Node 2 Node 1
  28. 44.
  29. 46.

    Load Balancer Web client Tanx Phoenix app Channel Game Server

    Game Updater Game Supervisor Javascript HTTP/ websocket messages Node 2 Node 1
  30. 47.
  31. 48.

    Load Balancer Web client Tanx Phoenix app Channel Game Server

    Game Updater Game Supervisor Javascript HTTP/ websocket messages Node 2 Node 1
  32. 49.

    Load Balancer Web client Tanx Phoenix app Channel Game Server

    Game Updater Game Supervisor Javascript HTTP/ websocket messages Node 2 Node 1 ❗
  33. 50.

    Load Balancer Web client Tanx Phoenix app Game Server Game

    Updater Game Supervisor Javascript HTTP/ websocket Node 2 Node 1
  34. 51.

    Load Balancer Web client Tanx Phoenix app Game Server Game

    Updater Game Supervisor Javascript HTTP/ websocket Node 2 Node 1
  35. 52.

    Load Balancer Web client Tanx Phoenix app Channel Game Server

    Game Updater Game Supervisor Javascript HTTP/ websocket messages Node 2 Node 1
  36. 54.

    Load Balancer Web client Tanx Phoenix app Channel Game Server

    Game Updater Game Supervisor Javascript HTTP/ websocket messages Node 2 Node 1
  37. 55.

    Load Balancer Web client Tanx Phoenix app Channel Game Server

    Game Updater Game Supervisor Javascript HTTP/ websocket messages Node 2 Node 1
  38. 60.

    Node 2 Game Server Game Updater Game Supervisor Node 1

    Horde Supervisor Horde Supervisor Tanx Phoenix app
  39. 61.

    Node 2 Game Server Game Updater Game Supervisor Node 1

    Horde Supervisor Horde Supervisor Tanx Phoenix app
  40. 62.

    Node 2 Game Server Game Updater Game Supervisor Node 1

    Horde Supervisor Horde Supervisor Game Server Game Updater Game Supervisor Tanx Phoenix app
  41. 66.

    Node 2 Game Server Game Updater Game Supervisor Node 1

    Horde Supervisor Horde Supervisor Tanx Phoenix app
  42. 67.

    Node 2 Game Server Game Updater Game Supervisor Node 1

    Horde Supervisor Horde Supervisor Handoff CRDT Handoff CRDT Tanx Phoenix app
  43. 68.

    Node 2 Game Server Game Updater Game Supervisor Node 1

    Horde Supervisor Horde Supervisor Handoff CRDT Handoff CRDT Tanx Phoenix app
  44. 69.

    Node 2 Game Server Game Updater Game Supervisor Node 1

    Horde Supervisor Horde Supervisor Handoff CRDT Handoff CRDT Tanx Phoenix app SIGTERM
  45. 70.

    Node 2 Game Server Game Updater Game Supervisor Node 1

    Horde Supervisor Horde Supervisor Handoff CRDT Handoff CRDT Tanx Phoenix app SIGTERM
  46. 71.

    Node 1 Horde Supervisor Handoff CRDT Handoff CRDT Node 2

    Game Server Game Updater Game Supervisor Horde Supervisor Tanx Phoenix app
  47. 72.

    Node 1 Horde Supervisor Handoff CRDT Handoff CRDT Node 2

    Game Server Game Updater Game Supervisor Horde Supervisor Game Server Game Updater Game Supervisor Tanx Phoenix app
  48. 73.

    Node 1 Horde Supervisor Handoff CRDT Handoff CRDT Node 2

    Game Server Game Updater Game Supervisor Horde Supervisor Game Server Game Updater Game Supervisor Tanx Phoenix app
  49. 76.

    Node 2 Game Server Game Updater Game Supervisor Channel Node

    1 Horde Supervisor Horde Supervisor Handoff CRDT Handoff CRDT
  50. 77.

    Node 2 Game Server Game Updater Game Supervisor Channel Node

    1 Horde Supervisor Horde Supervisor Handoff CRDT Horde Registry Handoff CRDT Horde Registry
  51. 78.

    Node 2 Game Server Game Updater Game Supervisor Channel Node

    1 Horde Supervisor Horde Supervisor Handoff CRDT Horde Registry Handoff CRDT Horde Registry register
  52. 79.

    Node 2 Game Server Game Updater Game Supervisor Channel Node

    1 Horde Supervisor Horde Supervisor Handoff CRDT Horde Registry Handoff CRDT Horde Registry m essages
  53. 80.

    Node 1 Horde Supervisor Handoff CRDT Handoff CRDT Node 2

    Game Server Game Updater Game Supervisor Horde Supervisor Game Server Game Updater Game Supervisor Tanx Phoenix app Channel Horde Registry Horde Registry reregister
  54. 81.

    Connect Erlang cluster — Move/restart processes — Hand off process

    state — Maintain communication — LibCluster Horde Supervisor CRDT Horde Registry
  55. 88.
  56. 91.
  57. 92.
  58. 93.
  59. 94.
  60. 97.