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:

  1. 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?

  2. 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.

  3. 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?

  4. Chapter 2 Q3: What are some patterns you can use to make big data smaller?

  5. 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.

  6. Chapter 3 Q3: How can environment variables be used to keep secrets secure in your code?

  7. Chapter 4 Q1: What is the difference between monitoring and logging? What are the two halves of the monitoring and logging process?

  8. Chapter 4 Q3: At what level would you log each of the following events:

    1. Someone clicks on a particular tab in your Shiny app.

    2. Someone puts an invalid entry into a text entry box.

    3. An HTTP call your app makes to an external API fails.

    4. The numeric values that are going into your computational function.

  9. 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.

  10. Chapter 5 Q2: Why is Git so important to a good code promotion strategy? Can you have a code promotion strategy without Git

  11. Chapter 6 Q1: Draw a mental map of the relationship between the following: Dockerfile, Docker Image, Docker Registry, Docker Container.

  12. Chapter 6 Q2: When would you want to use each of the following flags for docker run? When wouldn’t you?