Assignment 5
Due: Monday, June 16 at 11 AM ET to be submitted via Crowdmark
Note: Your submitted solution must be unique and written in your own words; if you collaborate with other students, external resources, and/or use AI tools, this must be clearly acknowledged in your submission.
This assignment covers material from Chapters 1-6 of DevOps for Data Science. Please complete the following exercises from the textbook:
Chapter 1 Q1: Why does difficulty increase as the level of required reproducibility increase for a data science project. In your day-to-day work, what’s the hardest reproducibility challenge?
Chapter 1 Q2: There’s a table of the layers of the data science environment above. It names six items across three layers. Draw a mental map of the relationships between these six items. Pay particular attention to why the higher layers depend on the lower ones.
Chapter 2 Q1: What are the layers of a three-layer application architecture? What libraries could you use to implement a three-layer architecture in R or Python?
Chapter 2 Q3: What are some patterns you can use to make big data smaller?
Chapter 3 Q1: Draw two mental maps for connecting to a database, one using a database driver in a Python or R package vs. an ODBC or JDBC driver. You should (at a minimum) include the nodes database package, DBI (R only), driver, system driver, ODBC, JDBC, and database.
Chapter 3 Q3: How can environment variables be used to keep secrets secure in your code?
Chapter 4 Q1: What is the difference between monitoring and logging? What are the two halves of the monitoring and logging process?
Chapter 4 Q3: At what level would you log each of the following events:
Someone clicks on a particular tab in your Shiny app.
Someone puts an invalid entry into a text entry box.
An HTTP call your app makes to an external API fails.
The numeric values that are going into your computational function.
Chapter 5 Q1: Write down a mental map of the relationship between the three environments for data science. Include the following terms: Git Promote, CI/CD, automation, deployment, dev, test, prod.
Chapter 5 Q2: Why is Git so important to a good code promotion strategy? Can you have a code promotion strategy without Git
Chapter 6 Q1: Draw a mental map of the relationship between the following: Dockerfile, Docker Image, Docker Registry, Docker Container.
Chapter 6 Q2: When would you want to use each of the following flags for
docker run? When wouldn’t you?