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
250
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
68
WHAT ON EARTH ARE EMBEDDINGS?
omaymas
0
110
A GLIMPSE OF THE DATA SCIENCE AND MACHINE LEARNING WORLD IN PRACTICE
omaymas
0
110
Machine Learning System Dynamics: Beyond Model Development
omaymas
0
130
MACHINE LEARNING INTERPRETABILITY: WHY AND HOW!
omaymas
1
130
MACHINE LEARNING INTERPRETABILITY: WHY AND HOW!
omaymas
0
410
Interpreting Machine Learning Models: Why and How!
omaymas
0
930
Data Manipulation with dplyr (First Steps)
omaymas
2
2.3k
The Data Lorax: Planting The Seeds of Fairness in Data Products
omaymas
0
200
Other Decks in Technology
See All in Technology
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.6k
(技術的には)社内システムもOKなブラウザエージェントを作ってみた!
har1101
0
240
Oracle AI Database移行・アップグレード勉強会 - RAT活用編
oracle4engineer
PRO
0
110
量子クラウドサービスの裏側 〜Deep Dive into OQTOPUS〜
oqtopus
0
150
20260204_Midosuji_Tech
takuyay0ne
1
160
1,000 にも届く AWS Organizations 組織のポリシー運用をちゃんとしたい、という話
kazzpapa3
0
180
AIが実装する時代、人間は仕様と検証を設計する
gotalab555
1
430
SchooでVue.js/Nuxtを技術選定している理由
yamanoku
3
210
生成AIと余白 〜開発スピードが向上した今、何に向き合う?〜
kakehashi
PRO
0
160
Greatest Disaster Hits in Web Performance
guaca
0
290
登壇駆動学習のすすめ — CfPのネタの見つけ方と書くときに意識していること
bicstone
3
130
データの整合性を保ちたいだけなんだ
shoheimitani
8
3.2k
Featured
See All Featured
Evolving SEO for Evolving Search Engines
ryanjones
0
130
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
77
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
The Language of Interfaces
destraynor
162
26k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
0
2.4k
Navigating Weather and Climate Data
rabernat
0
110
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
330
SEO for Brand Visibility & Recognition
aleyda
0
4.2k
WENDY [Excerpt]
tessaabrams
9
36k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
BBQ
matthewcrist
89
10k
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