Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Beyond Prototypes:A Journey to The Production L...
Search
OmaymaS
September 13, 2018
Technology
1
240
Beyond Prototypes:A Journey to The Production Land_EARL2018
Slides of a talk presented at EARL London 2018 (
https://earlconf.com
)
OmaymaS
September 13, 2018
Tweet
Share
More Decks by OmaymaS
See All by OmaymaS
Drawing the F***ing Owl: How to Really Build AI-Based Products!
omaymas
0
10
WHAT ON EARTH ARE EMBEDDINGS?
omaymas
0
82
A GLIMPSE OF THE DATA SCIENCE AND MACHINE LEARNING WORLD IN PRACTICE
omaymas
0
56
Machine Learning System Dynamics: Beyond Model Development
omaymas
0
62
MACHINE LEARNING INTERPRETABILITY: WHY AND HOW!
omaymas
1
89
MACHINE LEARNING INTERPRETABILITY: WHY AND HOW!
omaymas
0
360
Interpreting Machine Learning Models: Why and How!
omaymas
0
870
Data Manipulation with dplyr (First Steps)
omaymas
2
2.1k
The Data Lorax: Planting The Seeds of Fairness in Data Products
omaymas
0
170
Other Decks in Technology
See All in Technology
The Role of Developer Relations in AI Product Success.
giftojabu1
0
120
マルチプロダクトな開発組織で 「開発生産性」に向き合うために試みたこと / Improving Multi-Product Dev Productivity
sugamasao
1
300
フルカイテン株式会社 採用資料
fullkaiten
0
40k
いざ、BSC討伐の旅
nikinusu
2
780
dev 補講: プロダクトセキュリティ / Product security overview
wa6sn
1
2.3k
Terraform Stacks入門 #HashiTalks
msato
0
350
Lambda10周年!Lambdaは何をもたらしたか
smt7174
2
110
Lambdaと地方とコミュニティ
miu_crescent
2
370
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
940
iOS/Androidで同じUI体験をネ イティブで作成する際に気をつ けたい落とし穴
fumiyasac0921
1
110
B2B SaaSから見た最近のC#/.NETの進化
sansantech
PRO
0
680
これまでの計測・開発・デプロイ方法全部見せます! / Findy ISUCON 2024-11-14
tohutohu
3
360
Featured
See All Featured
Teambox: Starting and Learning
jrom
133
8.8k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
Being A Developer After 40
akosma
86
590k
Designing the Hi-DPI Web
ddemaree
280
34k
Ruby is Unlike a Banana
tanoku
97
11k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Visualization
eitanlees
145
15k
GitHub's CSS Performance
jonrohan
1030
460k
Happy Clients
brianwarren
98
6.7k
Transcript
Beyond Prototypes A Journey to The Production Land Omayma Said
OmaymaS
The Land of PROTOTYPES The Land of PRODUCTION
An excited Data Scientist!
Begin with the DATA PRODUCT in mind Bridging the prototypes
and production lands
Web API Begin with the DATA PRODUCT in mind Web
Application Reproducible Report Package Other
Think of the DATA PRODUCT as an answer to a
question Bridging the prototypes and production lands
Q: What is the matching score of application X in
job Y? A: Value returned from an endpoint (WEB API) Think of the DATA PRODUCT As an answer to a question
Q: How does the daily activity of the subscribed companies
look like ? A: Metrics shown and updated in a Dashboard Think of the DATA PRODUCT As an answer to a question
Q: How do different segments respond to our recommendations ?
A: Report/Presentation Think of the DATA PRODUCT As an answer to a question
Question +Data IN Answers/ Solutions OUT
Question +Data IN Answers/ Solutions OUT NOT always straightforward in
real life!
Real Life Challenges Reproducibility Portability Accessibility
Make the DATA PRODUCT accessible and user friendly Bridging the
prototypes and production lands
Rstudio Connect Rstudio/Shiny Server (open source) Docker Experimenting in the
land of production
Docker (Commands to build an image) (Executable package) (Running instance
of an image) Docker file Docker Image Docker Container
- Build this Dockerfile! - Install R - Install system
packages - Install shiny server - Install R packages - Expose port - Run Versus
- Run this docker image! - Install R - Install
system packages - Install shiny server - Install R packages - Expose port - Run Versus
FROM rocker/r-base MAINTAINER Jeff Allen <
[email protected]
> RUN apt-get update -qq
&& apt-get install -y \ git-core \ libssl-dev \ libcurl4-gnutls-dev RUN install2.r plumber EXPOSE 8000 ENTRYPOINT ["R", "-e", "pr <- plumber::plumb(commandArgs()[4]); pr$run(host='0.0.0.0', port=8000)"] CMD ["/usr/local/lib/R/site-library/plumber/examples/04-mean-sum/plumber.R"] How does a Dockerfile look like? https://hub.docker.com/r/trestletech/plumber
FROM rocker/r-base MAINTAINER Jeff Allen <
[email protected]
> RUN apt-get update -qq
&& apt-get install -y \ git-core \ libssl-dev \ libcurl4-gnutls-dev RUN install2.r plumber EXPOSE 8000 ENTRYPOINT ["R", "-e", "pr <- plumber::plumb(commandArgs()[4]); pr$run(host='0.0.0.0', port=8000)"] CMD ["/usr/local/lib/R/site-library/plumber/examples/04-mean-sum/plumber.R"] Install R How does a Dockerfile look like? https://hub.docker.com/r/trestletech/plumber
FROM rocker/r-base MAINTAINER Jeff Allen <
[email protected]
> RUN apt-get update -qq
&& apt-get install -y \ git-core \ libssl-dev \ libcurl4-gnutls-dev RUN install2.r plumber EXPOSE 8000 ENTRYPOINT ["R", "-e", "pr <- plumber::plumb(commandArgs()[4]); pr$run(host='0.0.0.0', port=8000)"] CMD ["/usr/local/lib/R/site-library/plumber/examples/04-mean-sum/plumber.R"] Install System Packages How does a Dockerfile look like? https://hub.docker.com/r/trestletech/plumber
FROM rocker/r-base MAINTAINER Jeff Allen <
[email protected]
> RUN apt-get update -qq
&& apt-get install -y \ git-core \ libssl-dev \ libcurl4-gnutls-dev RUN install2.r plumber EXPOSE 8000 ENTRYPOINT ["R", "-e", "pr <- plumber::plumb(commandArgs()[4]); pr$run(host='0.0.0.0', port=8000)"] CMD ["/usr/local/lib/R/site-library/plumber/examples/04-mean-sum/plumber.R"] Install plumber How does a Dockerfile look like? https://hub.docker.com/r/trestletech/plumber
FROM rocker/r-base MAINTAINER Jeff Allen <
[email protected]
> RUN apt-get update -qq
&& apt-get install -y \ git-core \ libssl-dev \ libcurl4-gnutls-dev RUN install2.r plumber EXPOSE 8000 ENTRYPOINT ["R", "-e", "pr <- plumber::plumb(commandArgs()[4]); pr$run(host='0.0.0.0', port=8000)"] CMD ["/usr/local/lib/R/site-library/plumber/examples/04-mean-sum/plumber.R"] Expose port How does a Dockerfile look like? https://hub.docker.com/r/trestletech/plumber
FROM rocker/r-base MAINTAINER Jeff Allen <
[email protected]
> RUN apt-get update -qq
&& apt-get install -y \ git-core \ libssl-dev \ libcurl4-gnutls-dev RUN install2.r plumber EXPOSE 8000 ENTRYPOINT ["R", "-e", "pr <- plumber::plumb(commandArgs()[4]); pr$run(host='0.0.0.0', port=8000)"] CMD ["/usr/local/lib/R/site-library/plumber/examples/04-mean-sum/plumber.R"] Run How does a Dockerfile look like? https://hub.docker.com/r/trestletech/plumber
Could someone help me write Dockerfiles?
2 1 Could someone help me write Dockerfiles? Use/Modify available
Dockerfiles Use helper packages
1 Use/Modify available Dockerfiles Could someone help me write Dockerfiles?
The Rocker Project github.com/rocker-org
The Rocker Project hub.docker.com/u/rocker
The Rocker Project docker pull <user/repo> docker run <image> hub.docker.com/u/rocker
2 Use helper packages Could someone help me write Dockerfiles?
Containerit containerit::dockerfile() Capture dependencies in session file workspace github.com/o2r-project/containerit
liftr github.com/road2stat/liftr liftr::lift(“foo.rmd”)
liftr --- title: "User Engagement Analysis" author: "Sara K." output:
rmarkdown::html_document liftr: maintainer: "Sara K." email: "
[email protected]
" cran: - dplyr --- github.com/road2stat/liftr
rize rize::shiny_dockerize() BUILD docker image CREATE Dockerfile github.com/cole-brokamp/rize app.R
The Land of PROTOTYPES The Land of PRODUCTION INTERCONNECTED
Begin with the DATA PRODUCT in mind Think of the
DATA PRODUCT As an answer to a question Make the DATA PRODUCT Accessible and user friendly https://speakerdeck.com/omaymas