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

Simplifying systems with Elixir

Saša Jurić
September 13, 2018

Simplifying systems with Elixir

LambdUp, Prague, 2018

Saša Jurić

September 13, 2018
Tweet

More Decks by Saša Jurić

Other Decks in Programming

Transcript

  1. Simplifying systems
    with Elixir
    @sasajuric
    aircloak.com

    View Slide

  2. Elixir
    functional
    concurrent

    View Slide

  3. process
    ...
    foo(...)
    bar(...)
    ...

    View Slide

  4. functional Elixir
    modules and functions
    immutable data
    first-class functions

    View Slide

  5. ...
    spawn(fn -> ... end)
    ...

    View Slide

  6. process A
    ...
    foo(...)
    bar(...)
    ...
    process B
    ...
    baz(...)
    qux(...)
    ...

    View Slide

  7. scheduler scheduler scheduler scheduler
    BEAM (Erlang VM)
    CPU CPU CPU CPU

    View Slide

  8. concurrent
    functional

    View Slide

  9. View Slide

  10. View Slide

  11. less moving parts
    simpler development
    simpler testing
    simpler deployment
    simpler maintenance
    improved collaboration

    View Slide

  12. theerlangelist.com

    View Slide

  13. git clone https://github.com/sasa1977/erlangelist.git
    mix deps.get && pushd assets && npm install && popd
    iex -S mix phx.server

    View Slide

  14. View Slide

  15. #1 serving requests

    View Slide

  16. http listener https listener

    View Slide

  17. http listener https listener
    handler 1 handler 2 handler n

    View Slide

  18. #2 usage stats

    View Slide

  19. stats collector
    handler
    handler handler
    disk writer

    View Slide

  20. cleanup

    View Slide

  21. scheduler cleanup job
    periodically starts

    View Slide

  22. #3 HTTPS

    View Slide

  23. our system CA server
    certificate request
    challenge info
    challenge

    View Slide

  24. certifier
    http server
    usage stats

    View Slide

  25. dev CA server

    View Slide

  26. View Slide

  27. Elixir in a nutshell
    start simple
    go far

    View Slide

  28. 40% off using code
    ctwlambdup at
    manning.com

    View Slide

  29. View Slide