Taught on: Thursday
| # | Date | Topics | Before Class | After Class | Learning Goals |
|---|---|---|---|---|---|
1 |
Jan. 29th |
Can use basic Can Can do network / process / server troubleshooting. Can identify problems with an inherited codebase. |
|||
2 |
Feb. 5th |
Knows which type of files not to push into version control and why. Will ensure that this is followed-through in the group repositories. Can and will create proper commit messages. Knows proper casing and naming conventions. Understands the OpenAPI specification, why it exists and knows different ways to work it. Can generate an OpenAPI specification from the group’s application. Can create a |
|||
3 |
Feb. 12th |
Understands the terminology surrounding Github Actions such as workflows, runners, jobs, steps, and actions. Can create a basic Github Action workflow that is triggered by a push and pull request. Understands basic cloud concepts. Can create a virtual machine in Azure and SSH into it. Can open ports and set the IP address to static. Understands the difference between public and private ssh keys. Can suggest various deployment strategies and knows the pros and cons of each. Understands the difference between pull-based and push-based deployment. |
|||
4 |
Feb. 19th |
Understands the importance of software quality and tools to measure it. Understands why technical debt occurs and why it’s important to avoid. Can argue for the importance of linting. Knows the difference between linting in a Git Hook vs. a CI/CD pipeline. Can argue for the pros and cons of each. Is familiar with different branching strategies. |
|||
5 |
Feb. 26 |
Understands different levels of build tools from OS to language-specific ones. Understands the difference between packaging and virtualization / containerization. Understands how Docker differs from its predecessors and modern alternatives. Can understand simple Dockerfiles for different languages. |
|||
6 |
March 5th |
Can argue for the benefit of Docker compose over only using Dockerfiles. Understands various basic docker-compose.yml files. Understands the need to setup a volume in order to achieve live reload in Docker and knowing that this requires a separate development build. Understands Continuous Delivery as we define it in this course and has a general idea of how it works. Can explain what agile is, why it was created. Understands the history of DevOps and different ways to understand it. |
|||
7 |
March 12th |
Guest Lecture by Jan from Eficode |
Knows the historical angle of DevOps and how it has evolved. Understands the problems that DevOps aims to solve in modern organizations. Understands the concept of psychological safety and why it matters. Understands how crucial it is for business competitiveness to bring down pipeline execution time. Can implement simultanously running pipelines to cut time whenever it is possible. Has read all the course literature and can talk about the content. |
||
8 |
March 19th |
Has a clear view of different definitions of DevOps and is able to conjure their personal definition. Understands the concepts of the principles of Flow, Feedback, and Continuous Learning and Experimentation. Can argue for the importance of carrying out a postmortem and knows how to approach conducting one. Can recall various ways to achieve continuous deployment. |
|||
9 |
March 26th |
Can explain the DevSecOps mentality of shifting left and different ways to ensure security in various steps of the DevOps 8. Can bring up different types of security testing. Can explain SAST vs. DAST. Knows how to security scan a Docker image. Knows how to set the least privileges for the user. Understands the IP tables problem of Docker and can suggest a solution. Understands the mentality of continuous testing. Can mention different types of testing and where they fit in the DevOps 8. Can explain shift-left vs. shift-right testing. Can bring up examples of tests in each category and the benefit that they provide. |
|||
10 |
April 9th |
Understand choosing a database setup based on the application’s needs. Knows when not to use an ORM. Can argue why MySQL is a problematic choice for a database and can list additional features that other databases offer. Can give examples to illustrate the difference between migrations and seeding and recall how we did it in Knex.js. Knows about the difference between web scraping and web crawling. Has an overall idea of different ways to implement it with different tools / libraries / frameworks. Follows good web scraping / web crawling practices such as legality and politeness. |
|||
11 |
April 16th |
Knows how search indexing differs from linear search. Can bring up different things to consider when constructing a ranking algorithm. Understands the difference between logging and monitoring. Can argue for the importance of both and give exact use cases for why one would do it. Can argue the importance of logging and monitoring in a DevOps setup and give examples in relation to the DevOps 8. Can implement logging in a programming language. Is familiar with a monitoring setup. Knows the difference between push and pull-based monitoring. Can argue why a monitoring setup should not run on the same server as the application. |
|||
12 |
April 23rd |
Understands the problems that Infrastructure as Code solves. Knows about how we define Infrastructure as Code and knows how they differ from Configuration Management. Can run basic commands in Terraform to provision infrastructure. |
|||
13 |
April. 30th |
Introduction Deploying Infrastructure / Configuration Managment Deployment Strategies Orchestration Kubernetes Kubernetes - Hands-on Resilience Maintenance Course Conclusion |
The simulation is taken down |
Knows different deployment strategies and how they work. Understands the concept of orchestration and can argue for the importance of it. Knows the very basic concepts of Kubernetes. Understands the importance of resilience in systems and the idea of applying chaos engineering to improve it. |
|
14 |
May 7th |
Wrap up the project. Write the report. |
No lecture. |
No lecture. |
|
15 |
May 14th |
National holiday on the day but you still have the other hours of the week subtracted for course work. Finish the report. |
No lecture. |
No lecture. |
|
16 |
May 21st |
Prepare the exam presentation. |
No lecture. |
No lecture. |