This is the Continuous Deployment (CD) Lab for CIS 411: Systems Analysis and Design for Messiah University
The purpose of this lab is to get hands on experience working with Docker, CircleCI, and a Cloud Service Provider like Heroku to create a CI/CD pipeline. Though the lab is generally paint by numbers, the hands on experience with the tools is meant to prepare students to improvise on this relatively simple implementation as teams approach CIS 471/472.
- GitHub account
- Git is installed on your development machine.
- Text editor or other integrated development environment (IDE) for modifying code.
- You will install Docker (and need an account on Docker Hub) as part of this lab.
- You will install Heroku CLI (and setup a student account with credits) as part of this lab. (Other Cloud Platforms are allowed)
This lab will build upon your prior experience using CircleCI in lab 1 for the first two steps. Step 3 will packaging the GraphQL application into a Docker container. Step 4 will focus on setting up the Heroku (or other Cloud Platform) deployment location, and Step 5 will guide you through setting up the CI/CD pipeline in CircleCI. After the lab, you will need to respond to 4 questions about why container technology is useful in modern architectures.
Here are the Detailed instructions for executing this lab using:
You are expected to compile your findings into a lab report following this template.
You are welcome to complete this lab using any Cloud Provider (AWS, Google Cloud, Azure, etc.). If you choose this path - then I encourage you to consider the extra credit opportunity below.
You are expected to create a lab report as a markdown file under the labreports
directory using the LAB_[GITHUB Handle].md naming convention in your forked repository. After you have reviewed your work, then you should submit a Pull Request
to this repository with your lab report and any accompanying images/files (e.g., required diagrams). Add the Pull Request
URL into the course room LMS (Canvas) for grading.
- +50 points - Complete the Lab Instructions for Google Cloud Platform Draft Instructions
- +100 points - Be the first (measured by successful PR) to add Lab Instructions for another Cloud Platform.
The following elements have been incorporated into your assignment rubric.
- Working CI/CD Pipeline: There is a screenshot from CircleCI that shows both successful workflow steps.
- Working App: In addition to any screenshots, anyone can go to the deployed app URL and add an account.
- Question Responses: There are four questions at the end of the lab about container technology. They are assessed for accuracy and completeness. Distinguished (Full Marks) scores are reserved for responses that cite their sources.
- Communication: The markdown file is written according to professional standards by choosing the appropriate markdown elements, links and embedded content.
Lab Specific Help.
- Detailed instructions for Heroku
- Lab template
- HELP: Installing Docker on a Windows Home edition laptop
Understanding Markdown Syntax
CircleCI Resources
Docker Resources
Heroku Resources
Digital Ocean Resources
AWS Resources
This content is provided under the MIT
license.
Special thanks to Joel Worrall, aka tangollama, for co-developing this course and writing this lab.
Tanner Stern compiled a tutorial on how to install Docker on Windows Home Edition (here) and added the associated windows bat files.
Ray Truex contributed instructions for Digital Ocean.
Jeff Sinsel contributed instructions for AWS.