Refactor DevOps-Intro to SRE-Intro standard (Spring 2026)#907
Open
Cre-eD wants to merge 6 commits into
Open
Conversation
Replaces the placeholder index.html with a self-contained Go 1.24 notes API that the rewritten 10-week course will package, deploy, observe, and harden in successive labs. - Single-file Go service: REST CRUD on /notes, /health, /metrics - In-memory store with JSON-file persistence (atomic write) - Prometheus text-format /metrics (gauge + counters, labelled by code) - httptest-based handler tests; race-enabled - Makefile + minimal golangci-lint config - 4 seed notes for first-boot UX Stray labs/lab13.md (IPFS bonus, superseded by Nix lab11) removed from the working tree; it was never tracked so no rm needed. Signed-off-by: Dmitrii Creed <creeed22@gmail.com>
…ed course Trims 10 lectures from 15,818 to ~3,278 total lines (4.8x reduction) while preserving topic coverage and hitting SRE-Intro's 400-500-line / 17-25-slide density target. Adds two new bonus readings (reading11 Nix, reading12 WASM) that pair with the bonus labs. Key topic changes for the project-threaded design: - All lectures hook into QuickNotes (the Go service in app/) - Every lecture mentions the GitHub-or-GitLab path so banned-from-GH students stay on track - Lecture 7 retitled "Configuration Management with Ansible" (replaces GitOps; Ansible is intro-appropriate, builds on Lab 5's VM) - Lecture 10 (Cloud) refactored to hands-on Cloud Run deploy - Lecture 4 collapsed from 3296 -> 421 lines while keeping OS + Networking coverage; lec1-3, lec5-9 similarly trimmed Versions pinned to April 2026 where applicable (Go 1.24, Docker 28.x, VirtualBox 7.1.x, Trivy 0.59.x, ZAP 2.16.x, Prometheus v3.x, Grafana 13.x, kubectl 1.33, Cloud Run, Spin 3.x). Each main lecture (lec1-10) has a corresponding 15-question quiz in EN+RU uploaded to the external quiz repo (devops-intro/lecN_post.json and devops-intro-rus/lecN_post.json), category="post". 60% serious / 40% fun mix, even answer distribution across 0/1/2/3. Real incidents woven through: Knight Capital (2012), GitLab DB (2017), Cloudflare BGP, xz-utils backdoor (2024), Heartbleed (2014), Facebook BGP (2021), Slack 2/22/22, Log4Shell (2021), Equifax (2017), AWS us-east-1 (Dec 2021), Capital One (2019), Docker Hub rate-limits (2020), tj-actions/changed-files (Mar 2025). Signed-off-by: Dmitrii Creed <creeed22@gmail.com>
…10pts (lab11-12)
Rewrites every lab in the project-threaded course structure:
- Lab 1: Git workflow + SSH signing + community engagement (6+3+1+2 mirroring SRE-Intro lab1)
- Labs 2-10: 6+4+2 with QuickNotes as the through-line
- Labs 11-12: bonus labs at 10 pts (Task 1 + Task 2 only, no Bonus row)
Each lab includes:
- Real commands (no hallucinated outputs) wired to QuickNotes
- Acceptance Criteria + Rubric + Common Pitfalls + Guidelines
- Reference back to the corresponding lecture
Key topic changes:
- Lab 3 GitLab CI is the Bonus (path for banned-GH students)
- Lab 7 replaces GitOps/ArgoCD with Ansible deploy to Lab 5 VM
- Lab 10 is now hands-on Cloud Run / Fly.io (not research-only)
- Lab 11 builds reproducible Nix flake + deterministic OCI
- Lab 12 ports a single endpoint to TinyGo + Spin/WAGI
Also removes the stale labs/lab11/app/ and labs/lab12/*.{Dockerfile,main.go}
plumbing files left over from the previous lab design.
Signed-off-by: Dmitrii Creed <creeed22@gmail.com>
…ructure README now matches the SRE-Intro template: - 10-week roadmap table - The Project (QuickNotes) — Go 1.24, single-service, endpoints + diagram - 12 lectures + 12 labs map - Technology stack table pinned to April 2026 - What ships vs what students produce - 6+4+2 lab structure (with Lab 1 6+3+1+2 exception) - 70-14-5-30-30 grading model (149% capped) - Submission workflow diagram - Performance tiers + late policy - Required software week-by-week - Repository structure - Key books & resources Drops the previous README's 995-line slide-TOC + verbose prose; lands at ~250 lines focused on operational info students actually need. .gitignore covers: student artifacts (submissions/, refs/), Vagrant runtime state, build outputs, Docker / Nix / WASM / cloud locals, Python venvs, editor configs, OS files, CI scan artifacts, and the local .claude/ agent config. Signed-off-by: Dmitrii Creed <creeed22@gmail.com>
…tLab as parallel path Two corrections from review: 1. GitLab framing inverted. Previous draft made GitLab CI the Bonus task (2 pts) — rewarding students who already had GitHub access for doing extra GitLab work. Wrong incentive. GitLab is the *alternative path* for students who can't access GitHub at all (sanctions / account locks / country-of-origin filters). Both paths now earn the same 10 pts; students pick ONE based on which platform they have access to. 2. Lab handed students a copy-paste-ready ci.yml. Violates the lab-skill rule (provide infra plumbing as files; scaffold the skill). Rewritten to give requirements + design questions + doc links, no copy-pasteable YAML. The skill of this lab is *writing* the pipeline from first principles, not transcribing a tutorial. Other changes: - New Bonus task: Pipeline Performance Investigation (≤90s wall-clock goal, ≥3 optimizations beyond Task 2, before/after table, bottleneck analysis). Genuinely challenging and doesn't reintroduce GitLab. - 8 design questions across Tasks 1+2 with written answers required — the answers matter more than the YAML - Common Pitfalls and Guidelines sections updated to match Signed-off-by: Dmitrii Creed <creeed22@gmail.com>
…-paste answers Applies the same fix from lab3 (commit 8387fb9) to the rest of the code/config-heavy labs. The original drafts embedded complete ready-to-paste artifacts in the lab spec, which violated the lab-skill rule (provide plumbing as files; scaffold the skill). Per-lab structural changes: - lab5 Vagrant: removed full Vagrantfile; gave requirements + 4 design questions + Vagrant docs links - lab6 Docker: removed full Dockerfile + compose.yaml; gave per-file requirements + 6 design questions across Tasks 1+2 - lab7 Ansible: removed full playbook + inventory + Jinja template; gave per-artifact requirements + 9 design questions (4+3+2) - lab8 Monitoring: removed full Prometheus config + Grafana provisioning + dashboard JSON + alert rule details; gave requirements + 4 design questions on Task 1 + 3 on Task 2 - lab9 DevSecOps: removed full Go middleware code; gave requirements (middleware pattern, ≥1 unit test, applies to all routes) + 4 design questions on Task 1 + 3 on Task 2 + 3 on Bonus. Also moved triage to a labeled disposition table (FIX / ACCEPT / WATCH / FALSE POSITIVE). - lab10 Cloud: removed full gcloud + fly.toml + release workflow YAML; gave platform-agnostic requirements + 3 design questions per task - lab11 Nix: removed full flake.nix + dockerTools block; gave per-output requirements + 4+3 design questions - lab12 WASM: removed full main.go + spin.toml; gave WAGI-contract requirements + 4+3 design questions Each lab now has between 7 and 10 written design questions whose answers matter more than the YAML/Go/Nix produced. The rubric explicitly grades "design questions answered" alongside the working artifact. Labs 1, 2, 4 unchanged — they are tool-usage tutorials (Git commands, debugging commands), not pre-written code students copy. Net line delta: ~3,528 -> ~3,106 (-422 lines) but with substantially more learning surface per page. Signed-off-by: Dmitrii Creed <creeed22@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Spring 2026 refactor of DevOps-Intro to the SRE-Intro standard (canonical reference, commit 77d35c1, Apr 2026). The course pivots from a topic-disjoint format to a project-threaded format around a single Go service called QuickNotes (
app/), evolved week-by-week through 10 main labs + 2 bonus labs.Frozen "before" snapshot lives at branch
s26(= old main HEAD6f044dd).Commits
b8fc480aa5aa1c7914e37983fba0Net delta: +6,443 / −20,302 lines across 42 files.
Key decisions
What's intentionally NOT in this PR
Test plan
Migration note
Once merged,
mainbecomes the new course;s26stays forever as the historical snapshot. Students forking after merge get the new structure; existing forks should rebase or re-fork.