rstudio::conf 2019
1
Shiny in Production Workshop
2
Introduction to Shiny in Production
2.1
Workshop Objectives
2.2
Workshop Infrastructure
3
Introduction to the Application
3.1
Activity: Explore the Application
4
Application Testing:
shinytest
4.1
Testing Options
4.2
Activity:
shinytest
5
Profiling: “The most important thing”
5.1
Activity: Profiling
6
Deployment
6.1
RStudio Connect
6.2
Activity: Inital Deployment
6.3
Application Settings
6.3.1
Access
6.3.2
Metadata
6.3.3
Logs
7
Connecting to Data in Production
7.1
The
config
package
7.2
Environment Variables
7.3
Activity: Databases
8
Load Testing
8.1
Optimization Loop Methodology
8.2
Activity: Load Testing
9
Plot Caching
9.1
When to use plot caching
9.1.1
Using
renderCachedPlot
9.2
Activity: Plot cache benchmarking
9.3
Extended Topics
10
Scaling
10.1
RStudio Connect Performance Settings
10.1.1
Content Scheduler
10.1.2
Scheduling Parameters
10.2
Activity: Runtime Settings
10.3
Activity: Admin Dashboard
10.4
Extended Topics
10.4.1
High Availability and Horizontal Scaling
10.4.2
R Markdown Documents with runtime::shiny
11
Alternatives to Shiny
11.1
Plumber
11.1.1
Intro to Plumber
11.2
Activity: Plumber
11.3
R Markdown
11.4
Activity: R Markdown
12
DevOps Philosophy & Tooling
12.1
Integrating Data Science and DevOps
12.1.1
How does data science fit in with the DevOps philosophy?
12.1.2
What do your dev, test and production environments look like?
12.1.3
Does code deployment feel like a high-risk operation?
12.1.4
Can deployments be decoupled from releases?
13
Production Case Studies
13.1
Case Study A: Dev/Test/Prod
13.2
Case Study B: CI, Git, Chef
13.3
Case Study C: Docker
14
Shiny Async
Published with bookdown
Supplement to Shiny in Production
Chapter 14
Shiny Async
References and Resouces:
Webinar - Scaling Shiny apps with asynchronous programming
Webinar Slides
Shiny Dev Center Article: Improving scalability with async programming