Introduction
Setting up your local environment
Continuous integration
Docker
Continuous Delivery
Cloud Computing
Continuous deployment
Chapter 3
Practice
Assignment
Back to core program
Week 13 Overview
<aside>
🚧
This page is currently under construction. Please check back later.
</aside>
This week you will learn how we produce software industrially tailored for dozen, hundreds, thousands of developers to work on complex products. This will bring you the power to bring your code to actual users while allowing you to work with others with confidence.
So far you focused on how to create a program (for example a webserver), think of it as learning how to craft a table end to end on your own. Now, imagine you are working at IKEA, you would not create each table one by one, you can reuse parts from other tables, you have industrial lines of production, packaging, and even delivery. Over time in the software industry we develop the same level of industrial development
During this week we will explore Continuous Integration, Delivery and Deployment. This automation workflow allows us to work together with confidence while reducing errors and bugs through automation.
We will also look into what to do once we trust a new piece of code, more precisely how to make it available to the world.
Learning goals
- Understand what is a CI/CD and be able to add a simple check to one
- Understand what packaging is
- Being able to run, operate and create a docker container
- Being able to deploy a server to the internet though a PaaS
- Have a first understanding of what a Cloud and a Cloud Provider is
🔧 Left to do (for @paul jarleton)
- [ ] Introduction
- [ ] Explain briefly what to expect (from creating a new service to having it deployed)
- [ ] Add a section on what people needs to already know to be sure they will be able to follow this week
- [ ] Add a “history” section on how we ended up here
- [ ] Fix the excalidraw visualisation (export in PNG and add link?
- [ ] Local environment
- [ ] Create the call out and proper section
- [ ] refactor the app itself (with a collapse working code for those who wish to move forward) to be a single app
- [ ] Continuous integration
- [ ] Add proper explanation
- [ ] Create step by step sections
- [ ] Find and link to a video in addition to text
- [ ] Docker
- [ ] Move the explanation of what is docker here
- [ ] Make them spin up a database ?
- [ ] Make them run a CLI tool from docker ?
- [ ] Add a small section about docker and containers (mention podman)
- [ ] Continuous Delivery
- [ ] Refactor explanation (plus maybe find a nice video?)
- [ ] Show Dockerfile and how to build them locally
- [ ] Explain docker registries (such as dockerhub)
- [ ] Cloud computing
- [ ] Everything to do (video + explanation + learning materials)
- [ ] Continuous Deployment
- [ ] Explain briefly from cloud section that there is product that let you deploy a docker container directly
- [ ] screenshot Render deployment and setup using GitHub SSO
- [ ] Have them visit their deployment and look at the montioring page
- [ ] Practice (to go one step further)
- [ ] Add tests to your project with them being part of the CI/CD GitHub Action
- [ ] Build the docker as part of the CI/CD
- [ ] Enable manual deployment from PR on Render
- [ ] Explore one of AWS, Azure or GCP and spin up one machine

*https://hackyourfuture.net/*
Found a mistake or have a suggestion? Let us know in the feedback form.