Design, development, and implementation of code integration processes, release pipelines, and deployment strategies.
Dr. Majid Babaei Email address: majid.babaei@mcgill.ca, Personal website:www.majidbabaei.com,
I will be using a series of textbooks to teach this course:
Weeks | Dates | Topics | Slides | Textbook Sections |
---|---|---|---|---|
1 | Sept. 1 |
Course started in the 1st of Septmber, 2022 Course info: Introduction, DevOps Culture and Practices. - When the term is introduced and how does it work! - Test-Driven Desing - Collecting feedback from users - Three axes of the DevOps movement - How do Continues Integration (CI) and Continuous delivery (CD) work? - Implementing CI and CD |
|
|
2 | Sept. 6, 8. |
Lab1 [due Sept. 20th at 9:00AM]->Extended to Sept. 27th |
| Chapters: 1, 2 |
3 | Sept. 13, 15 |
Git advanced concepts
- What is Branching?
- Branching in Git vs Branching in subversion
- Create, show and switch to a branch
- git log with two branches
- Comparing branches
- Stashing
- Merging
- Fast-Forward Mergers
- 3-way Mergers
- Why using no-fast-forward option
- Hot to view the merged branches?
- Merge conflicts
- Aborting a merge
- Undoing a faulty merge
- Removing a commit
- Reseting HEAD pointer
- Revert a merge
- Squash Merging
|
| Chapters: 1, 2 |
4 | Sept. 20, 22 |
Lab2 [due Oct. 4th at 9:00AM] Quiz 1 |
| Chapters: 1, 2, and 3 Chapter: 1 |
5 | Sept. 20, 22 |
Gerrit Code Review
- What is Gerrit?
- Build stability
- Gerrit Concepts
- Push for Code Review (3 cases)
- Review and vote
|
| Chapters: 1, 2, and 3 Chapter: 1 |
6 | Oct. 04, 06 |
Lab3 [due Oct. 25th at 9:00AM] |
| Chapters: 1, 2, and 3 |
--- | Oct. 11, 13 | |||
7 | Oct. 14 |
Quiz 2 | ||
8 | Oct. 18, 20 |
Static Code Analysis
- What is it? Why do we need that? and how does it work?
- Manual Review
- Automated tools for performing static code analysis
- Examples (Buffer Overruns, Uninitialized variables, Memory Leaks, etc.)
- Features of advanced static analysis tools
|
| Chapter: 1 |
9 | Oct. 25, 27 |
Course Project [due TBA at 9:00AM] |
| Parts: 1, 2, 3, and 4 |
10 | Nov. 1, 3 |
Software Testing
- Why we should put testing first?
- Cost-of-Change curve
- agile software development methods
- System Tests in Agile Methods
- Coverage criteria
- Advantages of using coverage criteria
|
| Chapters: 1, 2, and 3 |
11 | Nov. 08, 10 |
Quiz 3 |
| Chapters: 1, 2, and 3 |
12 | Nov. 15, 17 |
Continuous Integration / Continuous Delivery
- An example of CI
- Agile runs on CI
- How to use a CI tool
- Creating a self-triggered build
- Automate the packaging
- Automating the deployments
- Automating the testing
- Automating the code analysis
- Automating the deployments
| lecture slides | textbook section
Chapters: 4, 5, and 6 |
Labs general directions:TBA
Lab Instructions and Files:
Students will work on their final project in the same teams that they have worked on labs assignment. The task of each group is to use the concepts and tools that they have learned through the course to design, develop, test, and deploy a software project and provide a demo of their project. The following points need to be addressed in the final presentation of your project.
Note: You are free to choose any programming languages that you are more familiar with.
You can earn the Bonus point in two ways:
Dear Students, The learning journey never ends! First of all, I would like to express my gratitude and appreciation to everyone who has taken responsibility and participated in the activities of this course. I have received a long list of very interesting projects that shows your ability to utilize DevOps tools and techniques for managing code and collaborating with your teammate effectively. It is great! I am very proud of you! It was a difficult task for me to come up with a short list of interesting, educational, and fun projects among all submissions. But here are my favorite ones you can check out their videos, and contact them even start a long-term collaboration on more serious projects based on what you have learned in this course (BTW, next time I should ask students to pick a name for their projects):