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

[Keynote] Prod is not a four-letter word

[Keynote] Prod is not a four-letter word

Keynote at satRday Johannesburg 2020.

Colin Fay

March 07, 2020
Tweet

More Decks by Colin Fay

Other Decks in Technology

Transcript

  1. 1
    1
    PROD IS NOT A
    FOUR-LETTER WORD
    How to confidently send R to produc2on.
    COLIN FAY

    View full-size slide

  2. 2
    2
    Colin FAY
    Data Scien*st & R-Hacker at ThinkR, a
    french company focused on Data Science
    & R Engineering.
    Hyperac*ve open source developer.
    > whoami
    h"p://rtask.thinkr.fr
    h"p://twi"er.com/_colinfay
    h"p://github.com/colinfay

    View full-size slide

  3. 3
    1
    2
    3
    R & DATA SCIENCE
    ENGINEERING
    TRAINING
    CONSUL
    TING

    View full-size slide

  4. 4
    1
    PROD IS NOT A
    FOUR-LETTER WORD
    How to confidently send R to production.

    View full-size slide

  5. 5
    What are we
    going to talk
    about today?

    View full-size slide

  6. 6
    01. What does production even mean?
    02. About R in production
    03. Let’s talk about tools
    04. R in production, the challenges
    SCHEDULE

    View full-size slide

  7. 7
    Q & A
    Have you ever heard?
    "That's good that we have
    this prototype in R, now
    let's rewrite this with a
    production language"

    View full-size slide

  8. 8
    Q & A
    We’ve come to a point
    that we’ve heard this so
    much that we convinced
    ourselves that this is true.

    View full-size slide

  9. 9
    All programming languages are
    basically just bundles of trade-
    offs, and so no single language
    is going to be globally superior
    to another. There really are no
    production languages – only
    production engineers.
    Gordon Shotwell
    https://blog.shotwell.ca/posts/why_i_use_r/

    View full-size slide

  10. 10
    10
    THEY
    USE R
    IN PROD
    https://github.com/ThinkR-open/companies-using-r

    View full-size slide

  11. 11
    1
    DON’T TELL ME
    R IS NOT PRODUCTION READY

    View full-size slide

  12. 12
    01
    DID YOU SAY ‘PRODUCTION’?
    12

    View full-size slide

  13. 13
    Gordon Shotwell
    https://twitter.com/jdetle

    View full-size slide

  14. 14
    14
    Production is anything that is run
    repeatedly (or continuously) and is
    relied upon.
    Mark Sellors
    Software environments that are used
    and relied on by real users with real
    consequences if things go wrong
    Joe Cheng

    View full-size slide

  15. 15
    Gordon Shotwell
    https://twitter.com/ProbNotABot

    View full-size slide

  16. 16
    THE PRODUCT
    USER(S)
    THE PRODUCT
    ENGINEER(S)
    USERS

    View full-size slide

  17. 17
    IS USED
    IN PROD

    View full-size slide

  18. 18
    https://twitter.com/eprosenthal

    View full-size slide

  19. 19
    IS RELIED UPON
    IS USED
    IN PROD

    View full-size slide

  20. 20
    https://twitter.com/dierken

    View full-size slide

  21. 21
    21
    USERS
    TRUST
    THE
    SOFT
    TO BE AVAILABLE
    TO MAKE DECISION
    # TO DO THEIR DAILY JOB

    View full-size slide

  22. 22
    22
    DEV
    TRUST
    THE
    SOFT
    $ TO KEEP RUNNING
    TO BE BUG FREE
    TO BE CUSTOMISABLE
    TO BE SAFE TO UPDATE

    View full-size slide

  23. 23
    IS RELIED UPON
    HAS REAL LIFE
    IMPACT
    IS USED
    IN PROD

    View full-size slide

  24. 24
    https://twitter.com/seanjtaylor

    View full-size slide

  25. 25
    25
    WHAT
    CAN
    GO
    WRONG
    ❌ SOFTWARE IS UNAVAILABLE
    UPDATE BREAKS THE CODE-BASE
    UPDATE BREAKS ANOTHER
    SERVICE
    RESULTS ARE NOT RELIABLE

    View full-size slide

  26. 26
    26
    REAL
    LIFE
    IMPACT
    ℹ DATA LOSS
    MONEY LOSS
    ⏳ TIME LOSS
    BAD DECISIONS

    View full-size slide

  27. 27
    1
    > PRODUCTION_TOOLS == RELIABLE_TOOLS
    [1] TRUE

    View full-size slide

  28. 28
    02
    ABOUT R AND
    PRODUCTION
    28

    View full-size slide

  29. 29
    Q & A

    How many ways are there
    to build a package in R?

    View full-size slide

  30. 30
    30
    BUILDING
    RELIABLE
    TOOLS
    RELY ON FRAMEWORKS
    ☸ DON’T REINVENT THE WHEEL
    3 TUTORIALS ARE EVERYWHERE
    COMMENT, TEST, AND MONITOR

    View full-size slide

  31. 31
    1
    CONVENTIONS ARE AWESOME
    (And so is the R community)

    View full-size slide

  32. 32
    03
    LET’S TALK ABOUT
    TOOLS
    32

    View full-size slide

  33. 33
    R PACKAGES
    MAIN GOAL IS TO BE
    SHARED AND REUSED
    YEARS OF TOOLKITS
    ☄ JUST A LIBRARY() AWAY

    View full-size slide

  34. 34
    34
    DEVELOP
    AUTOMATE
    DOCUMENT
    : TEST

    View full-size slide

  35. 35
    h"ps://www.golemverse.org/
    SHINY APPS WITH {GOLEM}
    FRAMEWORK
    AUTOMATION
    COLLECTIVE
    INTELLIGENCE

    View full-size slide

  36. 36
    https://cran.r-project.org/package=golem

    View full-size slide

  37. 37
    37
    DEPLOY
    RSTUDIO
    DOCKER / KUBE
    AWS

    View full-size slide

  38. 38
    04
    R IN PRODUCTION
    THE CHALLENGES
    38

    View full-size slide

  39. 39
    NOT THE
    LANGUAGE
    NOT THE
    TOOLS
    CHALLENGES

    View full-size slide

  40. 40
    CUL
    TURAL
    ORGANISATIONAL
    CHALLENGES

    View full-size slide

  41. 41
    https://twitter.com/seanjtaylor

    View full-size slide

  42. 42
    Q & A
    Who has ever experienced?
    "Woaw, your PoC is
    awesome, let’s put that on
    the production server and
    give access to 100 users!"

    View full-size slide

  43. 43
    The good thing about
    R is that one can start
    using it and get results in
    a couple of hours.
    The bad thing about R
    is that one can start using
    it and get results in a
    couple of hours.
    R DEV

    View full-size slide

  44. 44
    R developers don’t learn
    R as software engineers.
    R developers don’t know
    what’s needed for
    productions.
    IT might not be receptive.
    R DEV

    View full-size slide

  45. 45
    45
    ADOPT
    A
    PROD
    MINDSET
    NO MORE “THAT WORKS ON MY
    MACHINE”
    EVERYTHING IS A PACKAGE
    : TEST AND DOCUMENT
    ⚖ DON’T START WITH TECHNICAL
    DEBT

    View full-size slide

  46. 46
    46
    IT ARE YOUR FRIENDS
    INFRASTRUCTURE IS CRUCIAL
    ✍ RELIABLE CODE MATTERS
    ADOPT
    A
    PROD
    MINDSET

    View full-size slide

  47. 47
    1
    YOU CAN BE A GOOD
    SOFTWARE ENGINEER

    View full-size slide

  48. 48
    1
    R WORKS
    IN PRODUCTION

    View full-size slide

  49. 49
    49
    Questions?
    [email protected]
    HTTPS://TWITTER.COM/_COLINFAY
    HTTPS://TWITTER.COM/THINKR_FR
    HTTPS://RTASK.THINKR.FR
    HTTPS://COLINFAY.ME
    THANK YOU!

    View full-size slide