Home
Softono

DevOps Intro

Open source Go
68
Stars
117
Forks
99
Issues
1
Watchers
3 months
Last Commit

 About DevOps Intro

πŸš€ DevOps intro elective β€” 10 hands-on labs + 2 bonus building QuickNotes end-to-end: Git internals, CI/CD with GitHub Actions, OS & networking, Vagrant VMs, Docker, Ansible, golden-signal monitoring, Trivy + ZAP scanning, and free-tier cloud deployment.

Platforms

Web Self-hosted Cloud Docker

Languages

Go

Links

Need Help Installing DevOps Intro?

We provide expert installation service for this software. Our team will install, configure, and secure DevOps Intro on your server. plans start at just $30.

DevOps Intro

View on GitHub

DevOps Intro β€” Modern DevOps Practices Through One Project

Course Project Duration Grading

A 10-week practical introduction to DevOps at Innopolis University. You will package, ship, observe, harden, and deploy one Go service β€” QuickNotes β€” across every lab. The discipline you learn here is the spine of modern production engineering.

πŸ’¬ "If it hurts, do it more often." β€” Jez Humble


Course Roadmap

10 weekly labs + 2 optional bonus labs:

Week Lab Module Key Topics & Technologies
1 Lab 1 DevOps Foundations & Git DevOps history, fork β†’ branch β†’ PR, signed commits (SSH 2.34+), PR templates
2 Lab 2 Version Control Deep Dive Object model, reflog recovery, reset modes, signed tags, rebase, bisect
3 Lab 3 CI/CD GitHub Actions (matrix, cache, OIDC); Bonus: GitLab CI mirror
4 Lab 4 OS & Networking OSI, DNS, HTTP, TLS, ss/dig/tcpdump/journalctl debugging
5 Lab 5 Virtualization Vagrant + VirtualBox, snapshots, cloud-init
6 Lab 6 Containers Multi-stage Dockerfile, distroless, Compose, hardening
7 Lab 7 Configuration Management Ansible playbook to deploy QuickNotes to Lab 5 VM; ansible-pull GitOps preview
8 Lab 8 SRE & Monitoring Golden signals, Prometheus, Grafana, one good alert, Checkly
9 Lab 9 DevSecOps Trivy, OWASP ZAP, SBOM, govulncheck reachability
10 Lab 10 Cloud Computing ghcr.io push from CI, Hugging Face Spaces deploy (card-free), Cloudflare Tunnel comparison
β€” Lab 11 Reproducible Builds (bonus) Nix flake for QuickNotes; deterministic OCI image
β€” Lab 12 WebAssembly Containers (bonus) TinyGo + Spin/WAGI; perf comparison vs Docker

The Project: QuickNotes

A small Go 1.24 notes API. You don't write the app β€” you operationalize it.

graph LR
    C["πŸ’» curl / browser"] -->|HTTP :8080| S["🟒 quicknotes<br/>Go 1.24"]
    S --> F["πŸ“„ data/notes.json"]
    S -->|GET /metrics| P["πŸ“Š Prometheus<br/>Lab 8"]
Endpoint Method Returns
/notes GET All notes
/notes/{id} GET One note / 404
/notes POST Created note (201)
/notes/{id} DELETE 204 / 404
/health GET {"status":"ok","notes":N}
/metrics GET Prometheus text format

Stack: Go 1.24 + standard library (net/http, encoding/json). No third-party deps in the core app. Static binary, tiny container, clean WASM target.

See app/README.md for run instructions.


Lectures

12 lecture files in lectures/ β€” 10 main + 2 bonus readings:

# Title File
1 Introduction to DevOps: From Conflict to Collaboration lec1.md
2 Version Control Deep Dive: Git Internals & Recovery lec2.md
3 CI/CD: From it works on my machine to it works on every machine lec3.md
4 Operating Systems & Networking: The Substrate Underneath lec4.md
5 Virtualization: One Box, Many Worlds lec5.md
6 Containers: Same Kernel, Different Worlds lec6.md
7 Configuration Management with Ansible lec7.md
8 SRE & Monitoring: Reliability Is an Engineering Discipline lec8.md
9 DevSecOps: Shift Security Left lec9.md
10 Cloud Computing: Ship QuickNotes to the Real World lec10.md
R11 Reading β€” Reproducible Builds with Nix (bonus) reading11.md
R12 Reading β€” WebAssembly Containers (bonus) reading12.md

Each main lecture has a 15-question post-quiz in EN + RU (uploaded to the course quiz platform β€” see Quiz leaderboards).


Technology Stack

Versions pinned to April 2026:

Category Tool Version Introduced
Application runtime Go + std lib 1.24 Week 1 (provided)
Git git 2.49+ Week 1
CI/CD GitHub Actions, GitLab CI β€” Week 3
Hypervisor VirtualBox 7.1.x Week 5
VM provisioning Vagrant 2.4.x Week 5
Containers Docker + Compose 28.x Week 6
Configuration Mgmt Ansible 10.x Week 7
Metrics Prometheus v3.x Week 8
Dashboards Grafana 13.x Week 8
Security scan Trivy 0.59.x Week 9
DAST OWASP ZAP 2.16.x Week 9
Cloud Hugging Face Spaces + Cloudflare Tunnel (card-free) β€” Week 10
(bonus) Reproducibility Nix Flakes 2.x Lab 11
(bonus) WASM TinyGo + Spin 0.34 / 3.x Lab 12

What Ships vs What Students Produce

The upstream course repo provides plumbing. Students produce skill in their forks.

Path Ships in repo Students produce
app/ (Go service + tests + Makefile + seed.json) βœ…
lectures/ βœ…
labs/labN.md (lab specs) βœ…
.github/pull_request_template.md βœ… Lab 1
.github/workflows/ci.yml βœ… Lab 3
Vagrantfile βœ… Lab 5
app/Dockerfile, compose.yaml βœ… Lab 6
ansible/ (playbook, inventory, templates) βœ… Lab 7
monitoring/ (Prometheus + Grafana provisioning) βœ… Lab 8
docs/runbook/ βœ… Lab 8
Security headers middleware, .trivyignore βœ… Lab 9
cloud/ (deploy scripts, fly.toml) βœ… Lab 10
flake.nix, flake.lock βœ… Lab 11 (bonus)
wasm/ (main.go, spin.toml) βœ… Lab 12 (bonus)
submissions/labN.md βœ… every lab

Lab Structure

Every main lab (1-10) follows the same shape:

Task Points Description Required?
Task 1 6 Core step that advances the project. Future labs depend on it. Yes
Task 2 4 (3 in Lab 1) Deeper dive into the week's topic. Skippable β€” won't affect future labs. No
Task 3 1 pt Lab 1 only β€” open-source community engagement (GH or GitLab) Lab 1 only
Bonus Task 2 Extension for motivated students (flat 2 pts each, no difficulty weighting). No

Bonus labs 11 & 12: Task 1 (4 pts) + Task 2 (4 pts) + Bonus Task (2 pts) = 10 pts each.

Submission Workflow

graph LR
    A[Fork course repo] --> B[Clone locally]
    B --> C[git switch -c feature/labN]
    C --> D[Complete tasks; sign commits]
    D --> E[Push to your fork]
    E --> F[Open PR β†’ course main]
    F --> G[Submit PR URL via Moodle]

PRs target the upstream course repo's main, not your fork's main.


Grading

Component Weight What it rewards
Main labs 1-10 (Task 1 + Task 2 + Task 3-where-applicable) 70% Diligent project work β€” the floor for any serious student
Bonus tasks 1-10 (2 pts each, flat β€” no difficulty weighting) 14% Going above and beyond on weekly topics
Quiz leaderboards (5 rolling per-2-labs windows, top-10 share 1% pool each) up to 5% Engagement + excellence; rewards late-joining students too
Bonus labs 11 + 12 (4+4+2 pts each β€” 10 pts each, 20 raw total) 20% Mastering reproducibility + WebAssembly
Final exam 30% Optional path β€” written, comprehensive
Sum (capped at 100%) 139% Multiple paths to A

What this produces in practice

Profile Main L-bonus Bonus labs Exam Quiz Total
All Task 1 only, nothing else 42% 0% 0% 0% 0% 42%
All Task 1+2, no bonuses, no exam 70% 0% 0% 0% 0% 70%
Add all weekly bonuses 70% 14% 0% 0% 0% 84%
+ good quiz 70% 14% 0% 0% 5% 89% ← just short of A
+ finish at least one bonus lab (10 pts β†’ 10% of grade) 70% 14% 10% 0% 5% 99% (A)
+ both bonus labs (20 pts β†’ 20% of grade) 70% 14% 20% 0% 5% 109% (capped 100%, A)
Or take the exam instead of bonus labs 70% 14% 0% 30% 5% 119% (capped 100%, A)
Do everything 70% 14% 20% 30% 5% 139% (capped 100%, A with overflow signal)
Coast (Task 1 only + lucky quiz) 42% 0% 0% 0% 5% 47%

Quiz leaderboards (the 5%)

Each lecture has a post-quiz on the course quiz platform. Quizzes feed 5 rolling leaderboards:

Window Labs covered
1 labs 1-2
2 labs 3-4
3 labs 5-6
4 labs 7-8
5 labs 9-10

Top-10 per window share 1% of the total grade.

Performance tiers

Grade Range Required to reach
A 90-100 All main labs + at least one of: bonus labs / exam (multiple paths)
B 75-89 Main labs + most bonuses, no extension work
C 60-74 Main lab Task 1 across most labs
D 0-59 Below expectations

Late submissions

  • Within 1 week of deadline: max 6/10 for that lab
  • After 1 week: 0
  • Bonus tasks and bonus labs: no late credit

Required Software

Week Add
1 Git 2.49+, Go 1.24, an SSH client, a GitHub or GitLab account
3 (nothing new β€” CI runs in the cloud)
4 tcpdump, ss (iproute2), dig, mtr, jq, optionally Wireshark
5 VirtualBox 7.1.x, Vagrant 2.4.x
6 Docker 28.x (Compose v2 built in)
7 Ansible 10.x (Python 3.11+)
8 (Prometheus + Grafana run in containers β€” nothing host-side needed)
9 (Trivy + ZAP run in containers)
10 A Hugging Face account (free, no card); cloudflared for the Bonus tunnel
11 (bonus) Nix (Determinate installer recommended)
12 (bonus) TinyGo 0.34+, Spin 3.x

Repository Structure

DevOps-Intro/
β”œβ”€β”€ app/                      # QuickNotes Go service (provided)
β”‚   β”œβ”€β”€ main.go, store.go, handlers.go
β”‚   β”œβ”€β”€ *_test.go             # tests
β”‚   β”œβ”€β”€ go.mod, Makefile
β”‚   β”œβ”€β”€ .golangci.yml, README.md
β”‚   └── seed.json
β”œβ”€β”€ lectures/
β”‚   β”œβ”€β”€ lec1.md … lec10.md    # 10 main lectures
β”‚   β”œβ”€β”€ reading11.md          # Nix bonus reading
β”‚   └── reading12.md          # WASM bonus reading
β”œβ”€β”€ labs/
β”‚   β”œβ”€β”€ lab1.md … lab10.md    # 10 main lab specs
β”‚   β”œβ”€β”€ lab11.md, lab12.md    # 2 bonus lab specs
└── README.md                 # you are here

Students add (in their forks):

β”œβ”€β”€ .github/                  # Lab 1, Lab 3
β”œβ”€β”€ Vagrantfile               # Lab 5
β”œβ”€β”€ ansible/                  # Lab 7
β”œβ”€β”€ monitoring/               # Lab 8
β”œβ”€β”€ cloud/                    # Lab 10
β”œβ”€β”€ flake.nix                 # Lab 11
β”œβ”€β”€ wasm/                     # Lab 12
└── submissions/
    β”œβ”€β”€ lab1.md … labN.md

Key Books & Resources

  • πŸ“• The Phoenix Project β€” Gene Kim, Kevin Behr, George Spafford (2013) β€” DevOps via novel
  • πŸ“• The DevOps Handbook β€” Kim, Humble, Debois, Willis (2nd ed 2021) β€” the practitioner's manual
  • πŸ“• Accelerate β€” Forsgren, Humble, Kim (2018) β€” the scientific evidence behind DORA
  • πŸ“— Pro Git β€” Chacon & Straub β€” free at git-scm.com/book
  • πŸ“— Continuous Delivery β€” Humble & Farley (2010) β€” Jolt-award winner
  • πŸ“˜ Site Reliability Engineering β€” Beyer, Jones, Petoff, Murphy β€” free at sre.google
  • πŸ“˜ Docker Deep Dive β€” Nigel Poulton β€” practical containers
  • πŸ“˜ Ansible: Up & Running β€” Lorin Hochstein & RenΓ© Moser (3rd ed)
  • πŸ“˜ Brendan Gregg β€” Linux Performance β€” the canonical map of Linux observability

Course Completion

By Week 10, you will have:

  • Forked, signed-committed, and PR-merged your way through 10 weeks
  • Built CI, containers, VMs, monitoring, security scans, and a real cloud deploy of the same Go service
  • Filed a blameless mini-postmortem after each lab
  • Maybe pushed yourself further with Nix and/or WebAssembly

The tools change every five years. The discipline doesn't. Welcome to DevOps.

🎯 Reference: this course's Spring 2026 structure mirrors the SRE-Intro standard (Innopolis University, completed Apr 2026). DevOps-Intro is the broader intro to how software is shipped; SRE-Intro is the deeper dive into keeping it reliable.