Chapter 1 Your Journey to Production with AWS

1.1 The Result

My goal is to teach Data Scientists how to develop, deploy, and maintain shiny applications on AWS. I do this in my course through an Application Library that contains a number of deployed shiny applications that Data Scientists create and Organization’s use to make business decisions.

Here is an example of the Application Library that is hosted on AWS that we build in the Shiny Developer with AWS course.

Application Library: Contains a Library of Shiny Apps hosted on AWS

Figure 1.1: Application Library: Contains a Library of Shiny Apps hosted on AWS

The Application Library is:

  1. For Business Use - How your organization interacts with the shiny applications that you build and deploy
  2. For Personal Use - Great for showcasing a portfolio of data science projects to potential employers or as a consulting portfolio

1.2 The Goal

The goal of this book is to detail the “Last Mile” - A set of tasks required to deploy Full Stack Shiny Applications into Production. Traditionally these tasks were performed by Developer Operations (DevOps). To meet accelerating demands of the business, these “Last Mile” tasks are ones that Data Scientists can do and must do to fast-track the organization’s ability to produce, deliver, and use data-driven applications with low-to-moderate usage.

Data Science Workflow: Deployment becomes the Bottleneck

Figure 1.2: Data Science Workflow: Deployment becomes the Bottleneck

1.3 The Plan

My job is to help you (the Data Scientists or Data Analyst) deploy shiny applications into an enterprise environment - one where your peers, coworkers, managers, and executives have access to some or all of the applications that you and your data science team builds.

To this end, I detail application hosting and maintainence strategies and technologies in this book to accomplish an enterprise-grade Software Deployment Workflow. These strategies are designed for both individual data scientists and data science/dev-ops teams that want to quickly deploy applications.

Software Development Workflow

Figure 1.3: Software Development Workflow

You will learn how to set up hosting for the Shiny Applications using:

  • Part 1 - AWS - A popular web services platform that includes EC2 Elastic Compute Servers
  • Part 2 - Docker & Docker Hub - A virtual environment technology designed to run software applications
  • Part 3 - Git & GitHub - A software version control technology designed for managing and maintaining the code repositories for software applications
  • Part 4 - Shiny Server - An open source web server for Shiny Applications
  • Part 5 - Networking & Security - You gain exposure to NGINX, webserver that enables HTTPS encryption, and Docker Compose, a multi-container orchestration technology
  • Part 6 - Custom Shiny Configurations - For deploying meta-apps (i.e. the Application Library that navigates your shiny business applications)

1.4 Replication Requirements

To fully replicate the materials in the book, you will need to take the Shiny Developer with AWS Course to develop:

  1. The Full Stack Stock Analyzer application with Shiny, Bootstrap, and MongoDB, and
  2. The Application Library containing full-text search and app tagging capabilities.

I do not teach shiny development in this book. Only application deployment.

1.4.1 Stock Analyzer

A full-stack web application that uses MongoDB for storing and managing user data (roles, passwords, and settings). The application enables users to store information on their favorites stocks using the tidyquant API. The application is built with Shiny and hosted on EC2. Make this app.

Stock Analyzer Application: Full Stack Architecture

Figure 1.4: Stock Analyzer Application: Full Stack Architecture

1.4.2 Application Library

A meta-application that is stored at the base URL to help users navigate to applications. The Application Library includes functionality for Full Text Search and selecting applications by Tags, making it easy to find the apps your users need. Make this app.

Application Library: Full Text Search Capabilities

Figure 1.5: Application Library: Full Text Search Capabilities

1.4.3 Building and Deploying Enterprise-Grade Apps

Take the Shiny Developer with AWS Course to learn how to:

  • Create the Stock Analyzer - A full stack data science application
  • Create the Application Library - A meta application for navigating multiple shiny applications
  • Develop Shiny Applications
  • Use Bootstrap for Front End Web Development
  • Integrate a MongoDB NoSQL Backend Database used for storing user information
  • Integrate Dynamic UI for Controlling User Interface
  • Implementing Authentication
  • Managing Application Users
  • Build a REST API for Connecting Your Applications and Databases
  • Use the MongoDB Atlas Cloud Service

1.5 Where this Book Picks Up

This book covers that last mile: Production. You will learn proven strategies for deploying enterprise shiny applications. This guide follows the “Part 4 - Production with AWS” portion of my Shiny Developer with AWS Course.

1.6 About the Author

My name is Matt Dancho. I’m a passionate educator that has helped thousands of students learn data science for business. I am the founder of Business Science, an educational company specializing in data science courses for business.

I’ve taught Fortune 500 organization’s how to develop and deploy shiny applications as part consulting engagements. Now I teach my strategies, tools, and techniques as part of Business Science University.

I’m an avid software developer and supporter of the R Community. I’m the developer of:

  • tidyquant - Financial Software
  • anomalize - Time Series Anomaly Detection
  • timetk and sweep - Time Series and Forecasting Tools
  • correlationfunnel - A package for speeding up EDA with a Correlation Funnel Plot

I look forward to helping you accelerate your career by applying data science to business.

Contact me if you are interested in taking Business Science courses or are interested in Business Team Plans.

Become a Expert Shiny Developer with AWS

Business Science

Have a question? Leave a comment.