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
12
WHAT ON EARTH ARE EMBEDDINGS?
omaymas
0
82
A GLIMPSE OF THE DATA SCIENCE AND MACHINE LEARNING WORLD IN PRACTICE
omaymas
0
58
Machine Learning System Dynamics: Beyond Model Development
omaymas
0
69
MACHINE LEARNING INTERPRETABILITY: WHY AND HOW!
omaymas
1
92
MACHINE LEARNING INTERPRETABILITY: WHY AND HOW!
omaymas
0
360
Interpreting Machine Learning Models: Why and How!
omaymas
0
880
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
OpenShift Virtualizationのネットワーク構成を真剣に考えてみた/OpenShift Virtualization's Network Configuration
tnk4on
0
130
複雑性の高いオブジェクト編集に向き合う: プラガブルなReactフォーム設計
righttouch
PRO
0
110
宇宙ベンチャーにおける最近の情シス取り組みについて
axelmizu
0
110
レンジャーシステムズ | 会社紹介(採用ピッチ)
rssytems
0
150
社内イベント管理システムを1週間でAKSからACAに移行した話し
shingo_kawahara
0
180
生成AIのガバナンスの全体像と現実解
fnifni
1
180
.NET 9 のパフォーマンス改善
nenonaninu
0
580
[Ruby] Develop a Morse Code Learning Gem & Beep from Strings
oguressive
1
150
Snowflake女子会#3 Snowpipeの良さを5分で語るよ
lana2548
0
220
新機能VPCリソースエンドポイント機能検証から得られた考察
duelist2020jp
0
210
マルチプロダクト開発の現場でAWS Security Hubを1年以上運用して得た教訓
muziyoshiz
2
2.1k
KnowledgeBaseDocuments APIでベクトルインデックス管理を自動化する
iidaxs
1
260
Featured
See All Featured
Designing Experiences People Love
moore
138
23k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
32
2.7k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
5
440
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
0
96
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
111
49k
Code Reviewing Like a Champion
maltzj
520
39k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
The World Runs on Bad Software
bkeepers
PRO
65
11k
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