Evolving R with Docker
and the Cloud

Mark Edmondson (@HoloMarkeD)

Feb 28th, 2020 - CelebRation 2020 Copenhagen

code.markedmondson.me

Credentials

My R Timeline

GA Effect

ga-effect

My CRAN packages

  • searchConsoleR
  • googleAnalyticsR
  • googleAuthR -> gargle
  • googleComputeEngineR (cloudyr)
  • googleCloudStorageR (cloudyr)
  • bigQueryR (cloudyr)
  • googleLanguageR (rOpenSci)
  • googleCloudRunner (New!)

googleAuthRverse

Slack: #googleAuthRverse

Agenda today

  • Abstracting R applications into the Cloud using Docker (10min)
  • Demo on what that abstraction offers (10 min)
  • My evolving mindset for using R/Docker/Cloud (10 min)
  • Any questions? (10 min)

R in the Cloud using Docker

What is..?

Docker - a container system for building and sharing applications

Cloud - computing delivered via the internet, not locally

What does serverless offer?

Serverless - cloud services that often use containers to host applications without configuring servers

  • Focus on code, not dev-ops
  • Scale from 0 to billions
  • Reliability and security
  • Abstraction

Climbing up the R pyramid

Climbing up the Cloud pyramid

The keystone

  • R - abstraction of R environments
  • Cloud - run any code on cloud systems

Docker + R = R in Production

  • Flexible No need to ask IT to install R places, use docker run; across cloud platforms; ascendent tech

  • Version controlled No worries new package releases will break code

  • Scalable Run multiple Docker containers at once, fits into event-driven, stateless serverless future

Docker levels the playing ground between languages in the cloud

Useful R Docker images

  • rocker/r-ver
  • rocker/rstudio
  • rocker/tidyverse
  • rocker/shiny
  • rocker/ml-gpu

Thanks to Rocker Team