Skip to main content

Command Palette

Search for a command to run...

Học Platform engineering (6)

Updated
67 min readView as Markdown

LAYER 11 - PLATFORM PRODUCT & RELIABILITY ENGINEERING

Tài nguyên: Google SRE Book & SRE Workbook, Seeking SRE, FinOps Foundation framework & Cloud FinOps (Storment & Fuller), Chaos Engineering (Rosenthal & Jones), Principles of Chaos, docs Chaos Mesh/Litmus/Velero, AWS/Azure DR whitepapers.

KHỐI A - Platform as Product (Ngày 1-30) → P1

Ngày 1: Khởi động Layer 11

  • Mục tiêu: Ghép product + reliability mindset.

  • Lý thuyết: platform vừa là sản phẩm vừa phải tin cậy.

  • Thực hành: Repo platform-reliability/; khung roadmap + reliability.

Ngày 2: Reliability + product mindset

  • Mục tiêu: Coi độ tin cậy là tính năng.

  • Lý thuyết: reliability as a feature, internal customer.

  • Thực hành: Liệt kê kỳ vọng tin cậy của internal customer.

Ngày 3: API lifecycle

  • Mục tiêu: Vòng đời API nền tảng.

  • Lý thuyết: design → release → deprecate → sunset.

  • Thực hành: Vẽ lifecycle cho một platform API.

Ngày 4: API versioning

  • Mục tiêu: Tiến hoá không phá vỡ.

  • Lý thuyết: semver, backward compatibility, contract (nối Layer 4 CRD).

  • Thực hành: Chính sách versioning cho API.

Ngày 5: Breaking vs non-breaking

  • Mục tiêu: Biết đâu là phá vỡ.

  • Lý thuyết: additive vs breaking change, compatibility rules.

  • Thực hành: Phân loại một tập thay đổi.

Ngày 6: Deprecation policy

  • Mục tiêu: Ngưng dịch vụ có trách nhiệm.

  • Lý thuyết: deprecation window, migration path, communication.

  • Thực hành: Viết deprecation policy.

Ngày 7: API contract & stability

  • Mục tiêu: Cam kết ổn định.

  • Lý thuyết: stability guarantees, support tiers.

  • Thực hành: Định nghĩa stability tiers (alpha/beta/stable).

Ngày 8: Adoption strategy

  • Mục tiêu: Được dùng (nối Layer 6).

  • Lý thuyết: voluntary adoption, migration incentive.

  • Thực hành: Kế hoạch adoption cho một capability.

Ngày 9: Internal marketing

  • Mục tiêu: Lan toả nội bộ.

  • Lý thuyết: evangelism, changelog, champion (nối Leadership).

  • Thực hành: Bản tin/changelog mẫu.

Ngày 10: Reliability roadmap

  • Mục tiêu: Định hướng tin cậy.

  • Lý thuyết: roadmap gắn với reliability goals.

  • Thực hành: Draft reliability roadmap.

Ngày 11: Stakeholder management

  • Mục tiêu: Căn chỉnh nhiều bên.

  • Lý thuyết: product/security/finance/leadership (nối Leadership).

  • Thực hành: Bản đồ stakeholder cho reliability.

Ngày 12: Prioritizing reliability

  • Mục tiêu: Làm đúng việc.

  • Lý thuyết: impact/risk, cost of downtime.

  • Thực hành: Xếp hạng reliability backlog.

Ngày 13: Reliability tiers

  • Mục tiêu: Không phải mọi thứ cần 99.99%.

  • Lý thuyết: service tiers, reliability theo tầm quan trọng.

  • Thực hành: Phân tier service.

Ngày 14: Features vs reliability

  • Mục tiêu: Cân bằng.

  • Lý thuyết: velocity vs stability, error budget làm trọng tài (preview).

  • Thực hành: Khung quyết định.

Ngày 15: Reliability as product feature

  • Mục tiêu: Bán được độ tin cậy.

  • Lý thuyết: reliability là giá trị, không phải chi phí thuần.

  • Thực hành: Value prop reliability.

Ngày 16: Internal customer feedback

  • Mục tiêu: Lắng nghe.

  • Lý thuyết: feedback loop, NPS nội bộ (nối Layer 6).

  • Thực hành: Kênh feedback.

Ngày 17: SLA & support tiers

  • Mục tiêu: Cam kết dịch vụ.

  • Lý thuyết: internal SLA, support model, on-call tie-in.

  • Thực hành: Định nghĩa support tiers.

Ngày 18: OKRs for platform

  • Mục tiêu: Mục tiêu đo được.

  • Lý thuyết: reliability OKR, gắn error budget.

  • Thực hành: Draft OKR quý.

Ngày 19: Measuring platform value

  • Mục tiêu: Chứng minh giá trị (nối Layer 6).

  • Lý thuyết: DORA + reliability + adoption metrics.

  • Thực hành: Bộ metric giá trị.

Ngày 20: Build vs buy

  • Mục tiêu: Chọn công cụ reliability.

  • Lý thuyết: OSS vs SaaS cho SLO/chaos/DR.

  • Thực hành: Quyết định build/buy.

Ngày 21: Reliability culture

  • Mục tiêu: Văn hoá sở hữu.

  • Lý thuyết: you-build-you-run, ownership.

  • Thực hành: Nguyên tắc văn hoá reliability.

Ngày 22: Cost of downtime

  • Mục tiêu: Đóng khung kinh doanh.

  • Lý thuyết: revenue/trust impact, tính cost downtime.

  • Thực hành: Ước tính cost downtime một service.

Ngày 23: Risk management

  • Mục tiêu: Quản lý rủi ro.

  • Lý thuyết: risk register, error budget như risk tool (preview).

  • Thực hành: Risk register cho platform.

Ngày 24: Reliability vs velocity

  • Mục tiêu: Trung tâm của SRE.

  • Lý thuyết: error budget hoà giải mâu thuẫn dev vs ops.

  • Thực hành: Khung cân bằng.

Ngày 25: P1 - cấu trúc roadmap

  • Mục tiêu: Đóng khung P1.

  • Lý thuyết: roadmap + API lifecycle + adoption + tiers.

  • Thực hách: platform-roadmap-design.md.

Ngày 26: P1 - API lifecycle & versioning

  • Mục tiêu: Chính sách API.

  • Lý thuyết: versioning + deprecation policy.

  • Thực hành: Viết policy hoàn chỉnh.

Ngày 27: P1 - adoption + reliability tiers

  • Mục tiêu: Adoption có kế hoạch.

  • Lý thuyết: tiers + adoption strategy.

  • Thực hành: Kế hoạch adoption + tier map.

Ngày 28: P1 - stakeholder alignment

  • Mục tiêu: Đồng thuận.

  • Lý thuyết: trình bày roadmap thuyết phục (nối Leadership).

  • Thực hành: Slide/RFC roadmap.

Ngày 29: P1 - finalize roadmap

  • Mục tiêu: Hoàn thiện.

  • Lý thuyết: roadmap + metrics + OKR.

  • Thực hành: Roadmap doc hoàn chỉnh.

Ngày 30: CỘT MỐC 30

  • Mục tiêu: Chốt platform-as-product; release P1.

  • Lý thuyết: Ôn A; kiểm kê: roadmap + API lifecycle + adoption + tiers.

  • Thực hành: P1 done; đề thi #1 (platform product/API lifecycle) + tự chấm; blog #107 ("Vận hành nền tảng như một sản phẩm: roadmap, API lifecycle, adoption"); tag layer11-day030; nghỉ nửa ngày. Đã đi 30/180 (17%).

KHỐI B - SRE & SLI/SLO/Error Budget (Ngày 31-66) → P2

Ngày 31: SRE - tổng quan

  • Mục tiêu: SRE là gì.

  • Lý thuyết: SRE = ops bằng tư duy software, nguyên tắc Google SRE.

  • Thực hành: So SRE vs DevOps vs traditional ops.

Ngày 32: Availability math

  • Mục tiêu: Nói bằng số.

  • Lý thuyết: nines, downtime allowance, availability = uptime/total.

  • Thực hách: Tính downtime cho 99.9% vs 99.99%.

Ngày 33: SLI

  • Mục tiêu: Chọn chỉ số đúng.

  • Lý thuyết: SLI = tỷ lệ good/valid events, chọn SLI phản ánh user.

  • Thực hành: Định nghĩa SLI cho một service.

Ngày 34: SLI measurement

  • Mục tiêu: Đo đúng cách.

  • Lý thuyết: request-based vs window-based, đo ở đâu (nối Layer 7).

  • Thực hành: Đo một SLI từ metrics thật.

Ngày 35: Loại SLI

  • Mục tiêu: Nhiều khía cạnh.

  • Lý thuyết: availability/latency/quality/freshness/correctness.

  • Thực hành: Chọn bộ SLI cho một service.

Ngày 36: SLO

  • Mục tiêu: Đặt mục tiêu.

  • Lý thuyết: SLO target, dựa trên user expectation + data.

  • Thực hành: Đặt SLO cho SLI đã chọn.

Ngày 37: SLO windows

  • Mục tiêu: Cửa sổ đánh giá.

  • Lý thuyết: rolling vs calendar window.

  • Thực hành: Chọn window; đo tuân thủ.

Ngày 38: SLO latency

  • Mục tiêu: Latency SLO đúng.

  • Lý thuyết: percentile (p95/p99), threshold (nối Layer 7).

  • Thực hành: SLO latency có threshold + percentile.

Ngày 39: Multi-SLO

  • Mục tiêu: Nhiều mục tiêu.

  • Lý thuyết: multi-tier SLO, per-journey.

  • Thực hành: Bộ SLO nhiều tầng.

Ngày 40: Error budget - toán

  • Mục tiêu: Nền của SRE.

  • Lý thuyết: error budget = 1 − SLO, ý nghĩa.

  • Thực hành: Tính error budget cho các SLO.

Ngày 41: Burn rate

  • Mục tiêu: Tốc độ tiêu budget.

  • Lý thuyết: burn rate, thời gian cạn budget.

  • Thực hành: Tính burn rate từ error rate.

Ngày 42: Error budget policy

  • Mục tiêu: Budget dẫn quyết định.

  • Lý thuyết: policy khi budget cạn (freeze/ưu tiên reliability).

  • Thực hành: Viết error budget policy.

Ngày 43: Budget-driven decisions

  • Mục tiêu: Trọng tài dev vs ops.

  • Lý thuyết: release freeze, ưu tiên reliability khi cạn budget.

  • Thực hành: Kịch bản ra quyết định theo budget.

Ngày 44: SLA vs SLO vs SLI

  • Mục tiêu: Phân biệt rõ.

  • Lý thuyết: SLA (hợp đồng, phạt) vs SLO (nội bộ) vs SLI (đo).

  • Thực hành: Map ba khái niệm cho một dịch vụ.

Ngày 45: SLO thực tế

  • Mục tiêu: SLO khả thi.

  • Lý thuyết: data-driven, không quá cao/thấp.

  • Thực hành: Đặt SLO từ dữ liệu lịch sử.

Ngày 46: SLO từ user journey

  • Mục tiêu: Đo cái user quan tâm.

  • Lý thuyết: critical user journey, SLO theo journey.

  • Thực hành: SLO cho một journey quan trọng.

Ngày 47: Composite/dependency SLO

  • Mục tiêu: SLO khi phụ thuộc.

  • Lý thuyết: SLO của service phụ thuộc nhiều service.

  • Thực hành: Tính SLO tổng từ dependency.

Ngày 48: Đo SLI thực chiến

  • Mục tiêu: Từ metrics ra SLI (nối Layer 7).

  • Lý thuyết: PromQL cho SLI, good/total.

  • Thực hành: SLI query trên Prometheus.

Ngày 49: SLO dashboard

  • Mục tiêu: Nhìn thấy SLO (nối Layer 7).

  • Lý thuyết: dashboard SLO + budget còn lại.

  • Thực hành: Dashboard SLO cho một service.

Ngày 50: Burn-rate alerting (sâu)

  • Mục tiêu: Cảnh báo đúng.

  • Lý thuyết: alert theo burn rate (nối Layer 7).

  • Thực hành: Alert burn-rate.

Ngày 51: Multi-window multi-burn-rate

  • Mục tiêu: Cảnh báo tinh (SRE workbook).

  • Lý thuyết: kết hợp fast/slow burn, nhiều window.

  • Thực hành: Bộ alert MWMBR hoàn chỉnh.

Ngày 52: Error budget reporting

  • Mục tiêu: Báo cáo budget.

  • Lý thuyết: budget burndown, trend.

  • Thực hành: Report budget định kỳ.

Ngày 53: SLO review cadence

  • Mục tiêu: SLO sống.

  • Lý thuyết: review, điều chỉnh SLO theo thời gian.

  • Thực hành: Quy trình review SLO.

Ngày 54: Negotiating targets

  • Mục tiêu: Đồng thuận mục tiêu.

  • Lý thuyết: thương lượng SLO với stakeholder.

  • Thực hành: Kịch bản negotiate SLO.

Ngày 55: SLO anti-patterns

  • Mục tiêu: Tránh sai.

  • Lý thuyết: SLO 100%, SLO không đo user, gaming.

  • Thực hành: Rà + sửa SLO xấu.

Ngày 56: Kinh tế của nines

  • Mục tiêu: Chi phí độ tin cậy.

  • Lý thuyết: mỗi nine thêm chi phí bao nhiêu (nối Khối D).

  • Thực hành: Cost vs reliability curve.

Ngày 57: SLO cho platform service

  • Mục tiêu: Đo chính platform.

  • Lý thuyết: SLO cho API/IDP/CI (nối Layer 6).

  • Thực hành: SLO cho một platform capability.

Ngày 58: SLO cho data/ML

  • Mục tiêu: Reliability data/AI (nối Layer 9/10).

  • Lý thuyết: freshness/quality SLO cho pipeline.

  • Thực hành: SLO cho một data pipeline.

Ngày 59: Reliability testing

  • Mục tiêu: Kiểm chứng trước prod (nối Layer 6).

  • Lý thuyết: progressive delivery gate theo SLO.

  • Thực hành: SLO-based promotion (nối Layer 6).

Ngày 60: CỘT MỐC 60

  • Mục tiêu: Chốt SLI/SLO/error budget.

  • Lý thuyết: Ôn B tới giờ; kiểm kê: SLI/SLO + error budget + burn-rate + dashboard.

  • Thực hành: Đề thi #2 (SLI/SLO/error budget/burn-rate) + tự chấm; blog #108 ("SLO và error budget: toán học của độ tin cậy"); tag layer11-day060; nghỉ nửa ngày. Đã đi 60/180 (33%).

Ngày 61: P2 - thiết kế SLO framework

  • Mục tiêu: Đóng khung P2.

  • Lý thuyết: SLI → SLO → budget → dashboard → alert → policy.

  • Thực hách: slo-framework-design.md.

Ngày 62: P2 - define SLIs

  • Mục tiêu: Chọn chỉ số.

  • Lý thuyết: SLI cho các service.

  • Thực hành: Bộ SLI đo được.

Ngày 63: P2 - set SLOs + budget

  • Mục tiêu: Mục tiêu + ngân sách.

  • Lý thuyết: SLO + error budget.

  • Thực hành: SLO + budget cho services.

Ngày 64: P2 - SLO dashboard

  • Mục tiêu: Nhìn thấy (nối Layer 7).

  • Lý thuyết: dashboard SLO + budget burndown.

  • Thực hành: Dashboard hoàn chỉnh.

Ngày 65: P2 - alerts + policy

  • Mục tiêu: Cảnh báo + chính sách.

  • Lý thuyết: burn-rate alert + error budget policy.

  • Thực hành: Alert + policy áp dụng.

Ngày 66: P2 - SLO dashboard + error budget policy

  • Mục tiêu: Release P2.

  • Lý thuyết: rà "done": SLI/SLO + dashboard + alert + policy.

  • Thực hành: Đóng gói + blog #109 ("Một SLO dashboard và error budget policy vận hành được"). P2 done.

KHỐI C - Toil, On-call, Incident Management (Ngày 67-96) → P3

Ngày 67: Toil

  • Mục tiêu: Nhận diện việc lặp vô giá trị.

  • Lý thuyết: toil = manual/repetitive/automatable/no enduring value.

  • Thực hành: Kiểm kê toil của một team.

Ngày 68: Toil budget

  • Mục tiêu: Giới hạn toil.

  • Lý thuyết: đo % thời gian toil, ngưỡng (< 50%).

  • Thực hành: Đo toil hiện tại.

Ngày 69: Eliminating toil

  • Mục tiêu: Tự động hoá.

  • Lý thuyết: ưu tiên automation theo tần suất × chi phí.

  • Thực hành: Chọn + tự động hoá một toil lớn.

Ngày 70: Automation tradeoff

  • Mục tiêu: Không automate mù.

  • Lý thuyết: cost automation vs saving, khi nào không nên.

  • Thực hành: Quyết định automate hay không.

Ngày 71: On-call - triết lý

  • Mục tiêu: On-call bền vững.

  • Lý thuyết: sustainable on-call, không kiệt sức.

  • Thực hành: Nguyên tắc on-call.

Ngày 72: On-call rotation

  • Mục tiêu: Lịch trực hợp lý.

  • Lý thuyết: rotation, follow-the-sun, primary/secondary.

  • Thực hành: Thiết kế rotation.

Ngày 73: On-call load & burnout

  • Mục tiêu: Bảo vệ con người.

  • Lý thuyết: page load limit, comp time, burnout signals.

  • Thực hành: Đo + giảm on-call load.

Ngày 74: Escalation

  • Mục tiêu: Leo thang đúng.

  • Lý thuyết: escalation policy, ai khi nào.

  • Thực hành: Escalation policy (nối Layer 7 routing).

Ngày 75: Alerting for on-call

  • Mục tiêu: Chỉ page cái đáng (nối Layer 7).

  • Lý thuyết: actionable, symptom-based, giảm noise.

  • Thực hành: Audit + cắt alert page nhiễu.

Ngày 76: Paging philosophy

  • Mục tiêu: Trân trọng giấc ngủ.

  • Lý thuyết: page = cần người ngay, còn lại → ticket.

  • Thực hành: Phân loại alert page vs ticket.

Ngày 77: Incident management - tổng quan

  • Mục tiêu: Xử lý sự cố có hệ thống.

  • Lý thuyết: lifecycle: detect → respond → mitigate → resolve → learn.

  • Thực hành: Vẽ incident lifecycle.

Ngày 78: Severity levels

  • Mục tiêu: Phân loại sự cố.

  • Lý thuyết: SEV1-4, tiêu chí, tác động.

  • Thực hành: Định nghĩa severity matrix.

Ngày 79: Incident Command System

  • Mục tiêu: Vai trò rõ khi khủng hoảng.

  • Lý thuyết: IC, ops lead, comms lead, scribe.

  • Thực hành: Gán vai trò cho một kịch bản.

Ngày 80: Incident response process

  • Mục tiêu: Quy trình phản ứng.

  • Lý thuyết: declare → coordinate → mitigate → resolve.

  • Thực hành: Runbook incident response.

Ngày 81: Incident communication

  • Mục tiêu: Giao tiếp khi sự cố.

  • Lý thuyết: status page, stakeholder update, cadence.

  • Thực hành: Template communication.

Ngày 82: MTTD/MTTR

  • Mục tiêu: Đo incident (nối Layer 6 DORA).

  • Lý thuyết: MTTD, MTTR, time-to-mitigate.

  • Thực hành: Đo + phân tích MTTR.

Ngày 83: Blameless postmortem

  • Mục tiêu: Học, không đổ lỗi.

  • Lý thuyết: blameless culture, system-focused.

  • Thực hành: Nguyên tắc blameless.

Ngày 84: Postmortem structure

  • Mục tiêu: Postmortem chất lượng.

  • Lý thuyết: timeline, impact, root cause, action items.

  • Thực hành: Viết một postmortem theo template.

Ngày 85: Root cause analysis

  • Mục tiêu: Tìm nguyên nhân thật.

  • Lý thuyết: 5 whys, causal chain, không dừng ở "human error".

  • Thực hành: RCA cho một sự cố mô phỏng.

Ngày 86: Contributing factors

  • Mục tiêu: Nhìn hệ thống.

  • Lý thuyết: contributing factors vs single root cause.

  • Thực hành: Phân tích multi-factor.

Ngày 87: Action items

  • Mục tiêu: Ngăn tái diễn.

  • Lý thuyết: actionable, có owner, có deadline, follow-through.

  • Thực hành: Action items + tracking.

Ngày 88: Learning from incidents

  • Mục tiêu: Biến sự cố thành cải thiện.

  • Lý thuyết: incident retrospective, pattern across incidents.

  • Thực hành: Tổng hợp bài học nhiều incident.

Ngày 89: Incident review & sharing

  • Mục tiêu: Lan toả bài học.

  • Lý thuyết: review meeting, chia sẻ rộng.

  • Thực hành: Format incident review.

Ngày 90: CỘT MỐC 90

  • Mục tiêu: Chốt toil/on-call/incident.

  • Lý thuyết: Ôn C tới giờ; kiểm kê: toil reduction + on-call + incident + postmortem.

  • Thực hành: Đề thi #3 (on-call/incident/postmortem) + tự chấm; blog #110 ("Incident management không đổ lỗi: từ page tới postmortem"); tag layer11-day090; nghỉ nửa ngày. Đã đi 90/180 (50%).

Ngày 91: Error budget từ incident

  • Mục tiêu: Nối incident vào SLO (nối Khối B).

  • Lý thuyết: incident tiêu error budget, budget-driven priority.

  • Thực hành: Tính budget bị incident tiêu.

Ngày 92: Runbook

  • Mục tiêu: Vận hành khi sự cố (nối Layer 6).

  • Lý thuyết: runbook actionable, cập nhật.

  • Thực hành: Viết runbook cho một failure mode.

Ngày 93: Runbook automation

  • Mục tiêu: Từ runbook tới auto.

  • Lý thuyết: automated remediation, self-healing.

  • Thực hành: Auto-remediate một sự cố thường gặp.

Ngày 94: P3 - thiết kế

  • Mục tiêu: Đóng khung P3.

  • Lý thuyết: on-call + escalation + incident process + runbook + postmortem.

  • Thực hách: incident-mgmt-design.md.

Ngày 95: P3 - on-call + escalation + runbook

  • Mục tiêu: Vận hành được.

  • Lý thuyết: rotation + escalation + runbook library.

  • Thực hành: Setup on-call + runbook.

Ngày 96: P3 - Incident management

  • Mục tiêu: Release P3.

  • Lý thuyết: rà "done": on-call + incident process + postmortem + runbook.

  • Thực hành: Đóng gói + blog #111 ("Xây một hệ thống incident management: on-call, escalation, postmortem"). P3 done.

KHỐI D - Cost & CapacityFinOps (Ngày 97-126) → P4

Ngày 97: FinOps framework

  • Mục tiêu: Quản trị chi phí cloud.

  • Lý thuyết: inform → optimize → operate, ownership.

  • Thực hành: Đánh giá maturity FinOps.

Ngày 98: Cost visibility

  • Mục tiêu: Thấy tiền đi đâu.

  • Lý thuyết: cost breakdown, granularity.

  • Thực hành: Phân tích cost một tài khoản.

Ngày 99: Cost allocation

  • Mục tiêu: Gán chi phí đúng chủ.

  • Lý thuyết: tagging (nối Layer 5), allocation, shared cost.

  • Thực hành: Allocate cost theo team.

Ngày 100:🏁 NGHI THỨC 100 NGÀY

  • Mục tiêu: Kiểm kê lớn giữa Layer 11.

  • Lý thuyết: Ôn A→C + đầu D; kiểm kê lớn: roadmap (P1) + SLO (P2) + incident (P3) + FinOps khởi đầu; đối chiếu "Sâu".

  • Thực hành: Đề thi #4 tích lũy (product+SLO+incident+cost) + tự chấm theo rubric; blog #112 ("100 ngày reliability: SLO, incident, và bước vào FinOps"); tag layer11-day100; nghỉ nửa ngày. Đã đi 100/180 (56%).

Ngày 101: Showback vs chargeback

  • Mục tiêu: Trách nhiệm chi phí.

  • Lý thuyết: showback (hiển thị) vs chargeback (tính phí).

  • Thực hành: Chọn mô hình cho tổ chức.

Ngày 102: Rightsizing

  • Mục tiêu: Không thừa tài nguyên.

  • Lý thuyết: rightsize compute/memory theo thực tế.

  • Thực hành: Rightsize một workload.

Ngày 103: Spot/reserved/savings

  • Mục tiêu: Mua đúng cách (nối Layer 5).

  • Lý thuyết: spot, reserved, savings plan, commitment.

  • Thực hành: Tối ưu mix mua.

Ngày 104: Autoscaling cho cost

  • Mục tiêu: Trả theo dùng (nối Layer 4).

  • Lý thuyết: scale-to-zero, HPA/Karpenter tiết kiệm.

  • Thực hành: Cost giảm nhờ autoscaling.

Ngày 105: Storage/egress cost

  • Mục tiêu: Chi phí ẩn (nối Layer 3/5).

  • Lý thuyết: storage tiering, egress, cross-AZ.

  • Thực hành: Giảm egress/storage cost.

Ngày 106: Unit economics

  • Mục tiêu: Cost per đơn vị.

  • Lý thuyết: cost per request/user/tenant.

  • Thực hành: Tính unit cost một service.

Ngày 107: GPU/compute economics

  • Mục tiêu: GPU rất đắt (nối Layer 10).

  • Lý thuyết: cost per training/token, GPU utilization.

  • Thực hành: Tối ưu cost GPU workload.

Ngày 108: Cost anomaly detection

  • Mục tiêu: Bắt tăng vọt.

  • Lý thuyết: anomaly detection, budget alert.

  • Thực hành: Alert khi cost bất thường.

Ngày 109: Cost dashboards

  • Mục tiêu: Nhìn chi phí (nối Layer 7).

  • Lý thuyết: dashboard cost theo team/service.

  • Thực hành: Dashboard FinOps.

Ngày 110: FinOps culture

  • Mục tiêu: Ai cũng quan tâm cost.

  • Lý thuyết: accountability, cost trong định nghĩa done (nối Layer 6).

  • Thực hành: Đưa cost vào review.

Ngày 111: Capacity planning - nền

  • Mục tiêu: Đủ tài nguyên, không thừa.

  • Lý thuyết: demand vs supply, lead time.

  • Thực hành: Khung capacity planning.

Ngày 112: Demand forecasting

  • Mục tiêu: Dự báo nhu cầu.

  • Lý thuyết: trend, seasonality, growth.

  • Thực hành: Forecast tài nguyên một service.

Ngày 113: Headroom & buffer

  • Mục tiêu: Dự phòng đủ.

  • Lý thuyết: headroom, N+1/N+2, buffer cho spike.

  • Thực hành: Đặt headroom hợp lý.

Ngày 114: Load testing cho capacity

  • Mục tiêu: Biết giới hạn (nối Layer 6).

  • Lý thuyết: load test, tìm breaking point.

  • Thực hành: Load test một service; đo max.

Ngày 115: Capacity models

  • Mục tiêu: Mô hình hoá.

  • Lý thuyết: resource per unit load, scaling model.

  • Thực hành: Model capacity cho một service.

Ngày 116: Scaling limits

  • Mục tiêu: Biết trần.

  • Lý thuyết: bottleneck, hard limits, quota (nối Layer 5).

  • Thực hành: Tìm scaling bottleneck.

Ngày 117: Efficiency vs reliability

  • Mục tiêu: Cân bằng.

  • Lý thuyết: utilization cao vs headroom, tradeoff.

  • Thực hành: Chọn điểm cân bằng.

Ngày 118: Reserved capacity

  • Mục tiêu: Cam kết dài hạn.

  • Lý thuyết: reserved capacity, commitment discount.

  • Thực hành: Kế hoạch commitment.

Ngày 119: Multi-cloud/region cost

  • Mục tiêu: Cost xuyên vùng (nối Layer 5).

  • Lý thuyết: region cost khác nhau, DR cost.

  • Thực hành: So cost multi-region.

Ngày 120: CỘT MỐC 120

  • Mục tiêu: Chốt FinOps + capacity.

  • Lý thuyết: Ôn D tới giờ; kiểm kê: cost visibility/optimize + capacity planning.

  • Thực hành: Đề thi #5 (FinOps/capacity) + tự chấm; blog #113 ("FinOps và capacity planning: hiệu quả mà vẫn tin cậy"); tag layer11-day120; nghỉ nửa ngày. Đã đi 120/180 (67%).

Ngày 121: Sustainability

  • Mục tiêu: Xanh hơn.

  • Lý thuyết: carbon-aware, efficiency = sustainability.

  • Thực hành: Ước lượng carbon một workload.

Ngày 122: Cost of reliability

  • Mục tiêu: Redundancy tốn tiền.

  • Lý thuyết: cost của HA/DR/multi-region (nối Khối F).

  • Thực hành: Cost vs reliability cho một tier.

Ngày 123: FinOps cho data/AI

  • Mục tiêu: Cost data/AI (nối Layer 9/10).

  • Lý thuyết: cost query/training/serving.

  • Thực hành: Tối ưu cost một data/AI workload.

Ngày 124: P4 - thiết kế

  • Mục tiêu: Đóng khung P4.

  • Lý thuyết: cost dashboard + allocation + capacity model.

  • Thực hách: finops-capacity-design.md.

Ngày 125: P4 - cost dashboard + allocation

  • Mục tiêu: Nhìn + gán chi phí.

  • Lý thuyết: dashboard + tagging + allocation.

  • Thực hành: Cost dashboard theo team.

Ngày 126: P4 - FinOps + capacity plan

  • Mục tiêu: Release P4.

  • Lý thuyết: rà "done": cost visibility/optimize + capacity model.

  • Thực hành: Đóng gói + blog #114 ("FinOps dashboard và một capacity plan có số liệu"). P4 done.

KHỐI E - Chaos Engineering (Ngày 127-150) → P5

Ngày 127: Chaos engineering - nguyên lý

  • Mục tiêu: Chủ động tìm điểm yếu.

  • Lý thuyết: Principles of Chaos: hypothesis, real-world events, prod.

  • Thực hành: Đọc principles; ý tưởng thí nghiệm.

Ngày 128: Steady state hypothesis

  • Mục tiêu: Định nghĩa "bình thường".

  • Lý thuyết: steady state (metric/SLO), hypothesis.

  • Thực hành: Định nghĩa steady state một service.

Ngày 129: Blast radius & safety

  • Mục tiêu: Chaos an toàn.

  • Lý thuyết: minimize blast radius, abort condition.

  • Thực hành: Thiết kế thí nghiệm an toàn.

Ngày 130: Fault injection types

  • Mục tiêu: Các loại lỗi tiêm.

  • Lý thuyết: pod kill, network, resource, dependency.

  • Thực hành: Liệt kê fault cho một hệ.

Ngày 131: Chaos Mesh

  • Mục tiêu: Chaos k8s-native (nối Layer 4).

  • Lý thuyết: Chaos Mesh CRD, experiment.

  • Thực hành: Dựng Chaos Mesh; chạy pod-kill.

Ngày 132: Chaos Mesh - faults

  • Mục tiêu: Nhiều loại lỗi.

  • Lý thuyết: pod/network/IO/stress/time chaos.

  • Thực hành: Network delay + IO fault.

Ngày 133: Litmus

  • Mục tiêu: Lựa chọn khác.

  • Lý thuyết: Litmus experiments, chaos hub.

  • Thực hành: Chạy một Litmus experiment.

Ngày 134: Gremlin

  • Mục tiêu: Chaos SaaS.

  • Lý thuyết: Gremlin, managed chaos.

  • Thực hành: So Gremlin với Chaos Mesh/Litmus.

Ngày 135: So sánh công cụ chaos

  • Mục tiêu: Chọn công cụ.

  • Lý thuyết: Chaos Mesh vs Litmus vs Gremlin.

  • Thực hành: Bảng đánh đổi.

Ngày 136: Network chaos

  • Mục tiêu: Mạng lỗi (nối Layer 3).

  • Lý thuyết: latency, loss, partition, DNS.

  • Thực hành: Partition mạng; quan sát hệ.

Ngày 137: Resource chaos

  • Mục tiêu: Tài nguyên cạn.

  • Lý thuyết: CPU/memory/IO stress.

  • Thực hành: Stress memory; quan sát OOM (nối Layer 2).

Ngày 138: Application chaos

  • Mục tiêu: Lỗi ứng dụng.

  • Lý thuyết: exception injection, slow response.

  • Thực hành: Tiêm lỗi app-level.

Ngày 139: Dependency failure

  • Mục tiêu: Khi phụ thuộc hỏng.

  • Lý thuyết: DB/cache/downstream fail, circuit breaking (nối Layer 4).

  • Thực hành: Kill dependency; kiểm graceful degradation.

Ngày 140: Chaos trong CI/CD

  • Mục tiêu: Chaos tự động (nối Layer 6).

  • Lý thuyết: chaos trong pipeline, pre-prod.

  • Thực hành: Chaos test trong pipeline.

Ngày 141: Continuous chaos

  • Mục tiêu: Chaos liên tục.

  • Lý thuyết: automated chaos, chaos as regression.

  • Thực hành: Lịch chaos định kỳ.

Ngày 142: Game-day - lập kế hoạch

  • Mục tiêu: Diễn tập có tổ chức.

  • Lý thuyết: game-day plan, hypothesis, scope.

  • Thực hành: Kế hoạch một game-day.

Ngày 143: Game-day - chạy

  • Mục tiêu: Thực thi diễn tập.

  • Lý thuyết: roles, run, observe, learnings.

  • Thực hành: Chạy game-day (mô phỏng).

Ngày 144: Chaos maturity

  • Mục tiêu: Đo trưởng thành.

  • Lý thuyết: chaos maturity model.

  • Thực hành: Tự chấm maturity.

Ngày 145: Chaos + observability

  • Mục tiêu: Quan sát trong chaos (nối Layer 7).

  • Lý thuyết: verify steady state qua metrics/traces.

  • Thực hành: Observe hệ dưới chaos.

Ngày 146: Chaos safety & rollback

  • Mục tiêu: Không gây sự cố thật.

  • Lý thuyết: abort, rollback, guardrails.

  • Thực hành: Auto-abort khi vượt ngưỡng.

Ngày 147: Verifying resilience

  • Mục tiêu: Chứng minh chịu lỗi.

  • Lý thuyết: resilience verified qua chaos + SLO.

  • Thực hành: Verify một resilience claim.

Ngày 148: P5 - thiết kế thí nghiệm

  • Mục tiêu: Đóng khung P5.

  • Lý thuyết: hypothesis + fault + steady state + abort.

  • Thực hách: chaos-experiments-design.md.

Ngày 149: P5 - run game-day

  • Mục tiêu: Diễn tập thật.

  • Lý thuyết: game-day + learnings + action items.

  • Thực hành: Chạy game-day + ghi bài học.

Ngày 150: CỘT MỐC 150

  • Mục tiêu: Chốt chaos; release P5.

  • Lý thuyết: Ôn E; kiểm kê: chaos experiments + game-day + resilience verified.

  • Thực hành: P5 done; đề thi #6 (chaos/game-day/resilience) + tự chấm; blog #115 ("Chaos engineering và game-day: chủ động tìm điểm gãy"); tag layer11-day150; nghỉ nửa ngày. Đã đi 150/180 (83%).

KHỐI F - Disaster Recovery (Ngày 151-174) → P6 (build)

Ngày 151: DR - nền

  • Mục tiêu: Chuẩn bị cho thảm hoạ.

  • Lý thuyết: DR vs HA, business continuity (BCP).

  • Thực hành: Phân biệt HA vs DR cho một hệ.

Ngày 152: RTO & RPO

  • Mục tiêu: Hai chỉ số DR cốt lõi.

  • Lý thuyết: RTO (thời gian phục hồi), RPO (mất dữ liệu tối đa).

  • Thực hành: Đặt RTO/RPO cho các tier.

Ngày 153: Backup/restore

  • Mục tiêu: Chiến lược cơ bản.

  • Lý thuyết: backup + restore, RTO cao, rẻ.

  • Thực hành: Backup + restore một hệ.

Ngày 154: Pilot light

  • Mục tiêu: Chiến lược trung gian.

  • Lý thuyết: core tối thiểu chạy sẵn, scale khi cần.

  • Thực hành: Thiết kế pilot light.

Ngày 155: Warm standby

  • Mục tiêu: Phục hồi nhanh hơn.

  • Lý thuyết: standby thu nhỏ luôn chạy.

  • Thực hành: Thiết kế warm standby.

Ngày 156: Active-active

  • Mục tiêu: RTO/RPO gần 0.

  • Lý thuyết: multi-site active-active, phức tạp & đắt.

  • Thực hành: Thiết kế active-active (nối Layer 5).

Ngày 157: Backup 3-2-1

  • Mục tiêu: Backup đúng cách.

  • Lý thuyết: 3 copy, 2 media, 1 offsite, immutability.

  • Thực hành: Áp 3-2-1 cho dữ liệu quan trọng.

Ngày 158: Velero

  • Mục tiêu: Backup k8s (nối Layer 4).

  • Lý thuyết: Velero backup/restore, volume snapshot.

  • Thực hành: Backup một namespace bằng Velero.

Ngày 159: Velero - scheduled & restore

  • Mục tiêu: Backup tự động + phục hồi.

  • Lý thuyết: schedule, restore, migration cluster.

  • Thực hành: Scheduled backup + restore test.

Ngày 160: Application-consistent backup

  • Mục tiêu: Backup nhất quán.

  • Lý thuyết: quiesce, hooks, consistency (nối Layer 3).

  • Thực hành: App-consistent backup cho DB.

Ngày 161: Data replication

  • Mục tiêu: Đồng bộ dữ liệu (nối Layer 3).

  • Lý thuyết: sync vs async replication, lag = RPO.

  • Thực hành: Replicate dữ liệu cross-region.

Ngày 162: Database DR

  • Mục tiêu: DR cho DB (nối Layer 3).

  • Lý thuyết: replica, PITR, failover, WAL shipping.

  • Thực hành: Failover một managed DB.

Ngày 163: Stateful workload DR

  • Mục tiêu: DR cho stateful.

  • Lý thuyết: StatefulSet + volume DR (nối Layer 4).

  • Thực hành: DR cho một stateful app.

Ngày 164: Multi-region failover

  • Mục tiêu: Chuyển vùng.

  • Lý thuyết: failover region, data sync trước.

  • Thực hành: Failover sang region khác.

Ngày 165: DNS/traffic failover

  • Mục tiêu: Chuyển traffic (nối Layer 3/5).

  • Lý thuyết: DNS failover, anycast, health-based routing.

  • Thực hành: Failover traffic tự động.

Ngày 166: Failover automation

  • Mục tiêu: Tự động chuyển.

  • Lý thuyết: automated failover, split-brain risk.

  • Thực hành: Automate failover có safeguard.

Ngày 167: DR testingdrills

  • Mục tiêu: DR chưa test = không có DR.

  • Lý thuyết: DR drill, tần suất, scope.

  • Thực hành: Lập kế hoạch DR drill.

Ngày 168: DR runbook - cấu trúc

  • Mục tiêu: Runbook phục hồi.

  • Lý thuyết: step-by-step, roles, decision points.

  • Thực hành: Cấu trúc DR runbook.

Ngày 169: Recovery validation

  • Mục tiêu: Chắc chắn phục hồi đúng.

  • Lý thuyết: validate data integrity + function sau restore.

  • Thực hành: Validate sau một restore.

Ngày 170: Partial vs full DR

  • Mục tiêu: DR theo mức.

  • Lý thuyết: phục hồi từng phần, ưu tiên service.

  • Thực hành: Ưu tiên phục hồi theo tier.

Ngày 171: DR cho data/AI

  • Mục tiêu: DR data/AI (nối Layer 9/10).

  • Lý thuyết: backup lakehouse/model registry.

  • Thực hành: DR cho một data/AI platform.

Ngày 172: DR cost tradeoff

  • Mục tiêu: DR đắt (nối Khối D).

  • Lý thuyết: RTO/RPO thấp = chi phí cao.

  • Thực hành: Chọn chiến lược DR theo cost.

Ngày 173: P6 - thiết kế DR

  • Mục tiêu: Đóng khung phần DR của P6.

  • Lý thuyết: RTO/RPO + strategy + backup + failover + runbook.

  • Thực hách: dr-design.md.

Ngày 174: P6 - backup/restore + failover + drill

  • Mục tiêu: DR chạy được.

  • Lý thuyết: Velero backup + multi-region failover + drill.

  • Thực hành: Backup + failover + DR drill; ghi kết quả.

KHỐI G - Platform Reliability Product capstone (Ngày 175-180) → P6 flagship

Ngày 175: P6 - DR runbook hoàn chỉnh

  • Mục tiêu: Runbook dùng được.

  • Lý thuyết: DR runbook + validation.

  • Thực hành: DR runbook hoàn chỉnh + drill result.

Ngày 176: P6 - tích hợp

  • Mục tiêu: Bundle đúng bản gốc.

  • Lý thuyết: roadmap (P1) + SLO dashboard (P2) + chaos (P5) + DR runbook.

  • Thực hành: Ghép thành Platform Reliability Product.

Ngày 177: P6 - reliability review

  • Mục tiêu: Nhìn tổng độ tin cậy.

  • Lý thuyết: SLO + error budget + incident trend (nối Khối B/C).

  • Thực hành: Reliability review report.

Ngày 178: P6 - game-day validate SLO + DR

  • Mục tiêu: Chứng minh cùng lúc.

  • Lý thuyết: chaos + DR drill kiểm chứng SLO chịu được.

  • Thực hành: Game-day kết hợp chaos + failover.

Ngày 179: P6 - product docs; ôn Layer 11

  • Mục tiêu: Vận hành như sản phẩm.

  • Lý thuyết: roadmap/RFC/runbook/dashboard như một sản phẩm (nối Layer 6); rà toàn layer.

  • Thực hành: Bộ tài liệu Platform Reliability Product.

Ngày 180: HOÀN THÀNH LAYER 11

  • Mục tiêu: Chốt Platform Product & Reliability ở mức Sâu.

  • Lý thuyết: Ôn toàn layer; kiểm kê tổng: P1 roadmap + P2 SLO dashboard + P3 incident + P4 FinOps + P5 chaos + P6 Platform Reliability Product (roadmap + SLO + chaos + DR runbook).

  • Thực hành: P6 done; đề thi #7 tích lũy (toàn layer) + tự chấm theo rubric; blog #116 ("Nhìn lại 180 ngày reliability: SLO, incident, FinOps, chaos, DR trong một Platform Reliability Product"); tag layer11-complete; nghỉ nửa ngày

LAYER 12 - RESEARCH LITERACY

Tài nguyên: How to Read a Paper (Keshav), MIT 6.824 reading list, Papers We Love, The Morning Paper (Adrian Colyer), ACM Artifact Review & Badging, các kỷ yếu SOSP/OSDI/NSDI/SIGCOMM/FAST/SIGMOD/VLDB/PLDI/ISCA/MICRO/USENIX Security/IEEE S&P.

KHỐI A - Cách đọc paper & Research Literacy (Ngày 1-18)

Ngày 1: Khởi động Layer 12

  • Mục tiêu: Vì sao research literacy + cách chạy song song.

  • Lý thuyết: đích: đọc & đóng góp được cho dự án nền tảng lớn (nối Layer 13).

  • Thực hành: Repo research-literacy/; lập tracker 100 paper (bảng: paper/venue/layer/status/notes).

Ngày 2: How to read a paper - three-pass

  • Mục tiêu: Phương pháp Keshav.

  • Lý thuyết: ba lượt đọc, mục tiêu từng lượt.

  • Thực hành: Áp three-pass lên một paper.

Ngày 3: First pass

  • Mục tiêu: Nắm ý trong 10 phút.

  • Lý thuyết: title/abstract/intro/headings/conclusions/skim.

  • Thực hành: First-pass 3 paper; quyết định đọc sâu cái nào.

Ngày 4: Second pass

  • Mục tiêu: Hiểu nội dung chính.

  • Lý thuyết: figures/tables, main claims, method (bỏ chứng minh chi tiết).

  • Thực hành: Second-pass một paper; tóm tắt 1 trang.

Ngày 5: Third pass

  • Mục tiêu: Hiểu sâu như tự làm lại.

  • Lý thuyết: re-implement trong đầu, tìm giả định ẩn, điểm yếu.

  • Thực hành: Third-pass một paper quan trọng.

Ngày 6: Phê phán claim

  • Mục tiêu: Không tin mù.

  • Lý thuyết: evidence, baseline công bằng, threats to validity.

  • Thực hành: Liệt kê điểm yếu của một paper.

Ngày 7: Hiểu phương pháp thực nghiệm

  • Mục tiêu: Đọc phần eval đúng.

  • Lý thuyết: setup, metric, so sánh, ý nghĩa thống kê (nối Khối C).

  • Thực hành: Đánh giá eval của một paper.

Ngày 8: Paper systems vs theory

  • Mục tiêu: Đọc đúng thể loại.

  • Lý thuyết: systems (đo đạc) vs theory (chứng minh).

  • Thực hành: So cách đọc hai thể loại.

Ngày 9: Hệ thống ghi chú

  • Mục tiêu: Ghi để dùng lại.

  • Lý thuyết: structured notes/Zettelkasten, template.

  • Thực hành: Thiết lập template ghi chú paper.

Ngày 10: Literature map

  • Mục tiêu: Nhìn bức tranh lớn.

  • Lý thuyết: citation graph, cụm chủ đề.

  • Thực hành: Vẽ literature map ban đầu.

Ngày 11: Tìm paper

  • Mục tiêu: Biết nguồn.

  • Lý thuyết: venue top, Google Scholar/arXiv/Semantic Scholar, dblp.

  • Thực hành: Lập danh sách paper theo layer.

Ngày 12: Theo citation

  • Mục tiêu: Đào sâu chủ đề.

  • Lý thuyết: backward (references) vs forward (cited-by).

  • Thực hành: Từ một paper, tìm 5 paper liên quan.

Ngày 13: Reading group

  • Mục tiêu: Học cùng nhau.

  • Lý thuyết: Papers We Love, thảo luận, đặt câu hỏi.

  • Thực hành: Chuẩn bị trình bày một paper.

Ngày 14: Template review

  • Mục tiêu: Ghi lại thứ đáng.

  • Lý thuyết: problem/idea/method/eval/limitation/takeaway.

  • Thực hành: Hoàn thiện template review.

Ngày 15: Seminal vs incremental

  • Mục tiêu: Ưu tiên đọc.

  • Lý thuyết: paper nền tảng vs cải tiến nhỏ.

  • Thực hành: Phân loại một danh sách paper.

Ngày 16: Reproducibility & artifact

  • Mục tiêu: Chuẩn bị tái hiện (nối Khối D).

  • Lý thuyết: ACM badges (Available/Functional/Reproduced), artifact eval.

  • Thực hành: Tìm paper có artifact tốt để tái hiện.

Ngày 17: P1 - hệ thống đọc + tracker

  • Mục tiêu: Đóng khung P1.

  • Lý thuyết: workflow: tìm → three-pass → note → map.

  • Thực hành: Tracker + template + literature map khởi động.

Ngày 18: P1 - bắt đầu 100 paper

  • Mục tiêu: Đọc những paper nền tảng đầu tiên.

  • Lý thuyết: chọn 10-15 paper kinh điển đọc trước.

  • Thực hành: Review các paper đầu; cập nhật tracker.

KHỐI B - Domain Paper Deep-Dives (Ngày 19-78)

Ngày 19: Systems/OS - venue

  • Mục tiêu: Bản đồ SOSP/OSDI.

  • Lý thuyết: chủ đề, cách chọn paper.

  • Thực hành: Danh sách OS/systems papers cần đọc.

Ngày 20: GFS

  • Mục tiêu: Distributed file system kinh điển.

  • Lý thuyết: "The Google File System" - design cho commodity + fault.

  • Thực hành: Review + note (nối Layer 3).

Ngày 21: MapReduce

  • Mục tiêu: Mô hình xử lý lớn.

  • Lý thuyết: map/reduce, fault tolerance.

  • Thực hành: Review + note (nối Layer 9).

Ngày 22: Bigtable

  • Mục tiêu: Wide-column store.

  • Lý thuyết: SSTable, tablet, LSM (nối Layer 3).

  • Thực hành: Review + note.

Ngày 23: Dynamo

  • Mục tiêu: Eventual consistency + availability.

  • Lý thuyết: consistent hashing, vector clock, quorum.

  • Thực hành: Review + note (nối Layer 3).

Ngày 24: Spanner

  • Mục tiêu: Global consistency.

  • Lý thuyết: TrueTime, external consistency (nối Layer 3).

  • Thực hành: Review + note.

Ngày 25: Paxos

  • Mục tiêu: Consensus nền tảng.

  • Lý thuyết: "Paxos Made Simple".

  • Thực hành: Review + note.

Ngày 26: Raft

  • Mục tiêu: Consensus dễ hiểu.

  • Lý thuyết: leader election, log replication (nối Layer 3/4).

  • Thực hành: Review + note.

Ngày 27: ZooKeeper/Chubby

  • Mục tiêu: Coordination service.

  • Lý thuyết: lock/coordination, wait-free (nối Layer 4 etcd).

  • Thực hành: Review + note.

Ngày 28: Borg/Kubernetes

  • Mục tiêu: Cluster management.

  • Lý thuyết: Borg/Omega, lessons → Kubernetes (nối Layer 4).

  • Thực hành: Review + note.

Ngày 29: Dapper

  • Mục tiêu: Distributed tracing.

  • Lý thuyết: trace/span, sampling (nối Layer 7).

  • Thực hành: Review + note.

Ngày 30: CỘT MỐC 30

  • Mục tiêu: Chốt phương pháp + 20 paper đầu.

  • Lý thuyết: Ôn A + đầu B; kiểm kê: hệ thống đọc + 20 paper có note.

  • Thực hành: P1 done (20 paper); đề thi #1 (phương pháp đọc + tóm tắt 3 paper) + tự chấm; blog #117 ("Cách đọc và phê phán một systems paper: three-pass và literature map"); tag layer12-day030; nghỉ nửa ngày. Đã đi 30/120 (25%).

Ngày 31: End-to-End Arguments

  • Mục tiêu: Nguyên lý thiết kế.

  • Lý thuyết: đặt chức năng ở đâu trong hệ.

  • Thực hành: Review + note.

Ngày 32: Hints for System Design

  • Mục tiêu: Trí tuệ thiết kế (Lampson).

  • Lý thuyết: các hint kinh điển.

  • Thực hành: Review + rút hint áp dụng được.

Ngày 33: Virtualization

  • Mục tiêu: Xen/Firecracker.

  • Lý thuyết: paravirtualization, microVM (nối Layer 2).

  • Thực hành: Review + note.

Ngày 34: gVisor

  • Mục tiêu: Userspace kernel sandbox.

  • Lý thuyết: Sentry, syscall interception (nối Layer 2).

  • Thực hành: Review + note.

Ngày 35: Microkernel (L4/seL4)

  • Mục tiêu: Kiến trúc OS khác.

  • Lý thuyết: microkernel, seL4 (verified).

  • Thực hành: Review + note.

Ngày 36: Scheduling

  • Mục tiêu: Nền lập lịch.

  • Lý thuyết: scheduler activations, EEVDF background (nối Layer 2).

  • Thực hành: Review + note.

Ngày 37: Networks - venue

  • Mục tiêu: Bản đồ NSDI/SIGCOMM.

  • Lý thuyết: chủ đề networking research.

  • Thực hành: Danh sách networking papers.

Ngày 38: BBR

  • Mục tiêu: Congestion control hiện đại.

  • Lý thuyết: model-based (nối Layer 3).

  • Thực hành: Review + note.

Ngày 39: Maglev

  • Mục tiêu: L4 load balancer.

  • Lý thuyết: consistent hashing, packet processing (nối Layer 3).

  • Thực hành: Review + note.

Ngày 40: B4/Jupiter

  • Mục tiêu: DC/WAN networking.

  • Lý thuyết: SDN WAN (B4), DC fabric (Jupiter, nối Layer 3).

  • Thực hành: Review + note.

Ngày 41: DCTCP

  • Mục tiêu: DC congestion.

  • Lý thuyết: ECN-based, low latency.

  • Thực hành: Review + note.

Ngày 42: Storage - venue (FAST)

  • Mục tiêu: Bản đồ FAST.

  • Lý thuyết: storage systems research.

  • Thực hành: Danh sách storage papers.

Ngày 43: LFS

  • Mục tiêu: Log-structured FS.

  • Lý thuyết: write-optimized, cleaning (nối Layer 3).

  • Thực hành: Review + note.

Ngày 44: LSM/WiscKey

  • Mục tiêu: LSM tree sâu.

  • Lý thuyết: LSM, key-value separation (nối Layer 3).

  • Thực hành: Review + note.

Ngày 45: Haystack/Ceph

  • Mục tiêu: Object/distributed storage.

  • Lý thuyết: Haystack (photos), Ceph/CRUSH (nối Layer 3).

  • Thực hành: Review + note.

Ngày 46: Data - venue (SIGMOD/VLDB)

  • Mục tiêu: Bản đồ database research.

  • Lý thuyết: OLTP/OLAP/distributed data.

  • Thực hành: Danh sách data papers.

Ngày 47: C-Store

  • Mục tiêu: Column store.

  • Lý thuyết: columnar, projection (nối Layer 3/9).

  • Thực hành: Review + note.

Ngày 48: MonetDB/X100

  • Mục tiêu: Vectorized execution.

  • Lý thuyết: vectorized processing (nối Layer 3/9).

  • Thực hành: Review + note.

Ngày 49: Percolator

  • Mục tiêu: Distributed transactions.

  • Lý thuyết: snapshot isolation trên KV (nối Layer 3).

  • Thực hành: Review + note.

Ngày 50: Dremel

  • Mục tiêu: Interactive analytics.

  • Lý thuyết: columnar + tree execution (nối Layer 9).

  • Thực hành: Review + note.

Ngày 51: Spark RDD

  • Mục tiêu: In-memory cluster computing.

  • Lý thuyết: RDD, lineage (nối Layer 9).

  • Thực hành: Review + note.

Ngày 52: Dataflow Model

  • Mục tiêu: Streaming lý thuyết.

  • Lý thuyết: event/processing time, watermark (nối Layer 9).

  • Thực hành: Review + note.

Ngày 53: Aurora

  • Mục tiêu: Cloud DB, tách storage-compute.

  • Lý thuyết: log-as-database (nối Layer 3/9).

  • Thực hành: Review + note.

Ngày 54: Snowflake

  • Mục tiêu: Cloud warehouse.

  • Lý thuyết: tách compute/storage, elastic (nối Layer 9).

  • Thực hành: Review + note.

Ngày 55: PL - venue (PLDI/POPL)

  • Mục tiêu: Bản đồ PL research.

  • Lý thuyết: compiler/type/verification.

  • Thực hành: Danh sách PL papers.

Ngày 56: LLVM

  • Mục tiêu: Compiler infrastructure.

  • Lý thuyết: IR, pass (nối Layer 1).

  • Thực hành: Review + note.

Ngày 57: SSA/CompCert

  • Mục tiêu: IR & verified compiler.

  • Lý thuyết: SSA form, CompCert (verified, nối Layer 1).

  • Thực hành: Review + note.

Ngày 58: Rust/RustBelt

  • Mục tiêu: Ownership & safety.

  • Lý thuyết: ownership, borrow, RustBelt proof (nối Layer 0/1).

  • Thực hành: Review + note.

Ngày 59: Architecture - venue (ISCA/MICRO)

  • Mục tiêu: Bản đồ architecture research.

  • Lý thuyết: CPU/GPU/accelerator.

  • Thực hành: Danh sách architecture papers.

Ngày 60: CỘT MỐC 60

  • Mục tiêu: Chốt 50 paper + literature map.

  • Lý thuyết: Ôn B tới giờ; kiểm kê: 50 paper có note + map nhiều domain.

  • Thực hành: P2 done (50 paper); đề thi #2 (tổng hợp cross-domain) + tự chấm; blog #118 ("50 paper nền tảng: từ GFS/Raft tới Dataflow và LLVM"); tag layer12-day060; nghỉ nửa ngày. Đã đi 60/120 (50%).

Ngày 61: TPU

  • Mục tiêu: Accelerator cho ML.

  • Lý thuyết: systolic array (nối Layer 10).

  • Thực hành: Review + note.

Ngày 62: Cache coherence

  • Mục tiêu: Memory consistency.

  • Lý thuyết: coherence protocol, consistency model (nối Layer 0).

  • Thực hành: Review + note.

Ngày 63: Branch prediction/OoO

  • Mục tiêu: Micro-architecture.

  • Lý thuyết: speculation, out-of-order (nối Layer 0).

  • Thực hành: Review + note.

Ngày 64: GPU architecture

  • Mục tiêu: Song song hoá lớn.

  • Lý thuyết: SIMT, memory (nối Layer 0/10).

  • Thực hành: Review + note.

Ngày 65: Security - venue (USENIX/S&P)

  • Mục tiêu: Bản đồ security research.

  • Lý thuyết: attack/defense, side channels.

  • Thực hành: Danh sách security papers.

Ngày 66: Meltdown

  • Mục tiêu: Micro-arch side channel.

  • Lý thuyết: out-of-order leak (nối Layer 0/8).

  • Thực hành: Review + note.

Ngày 67: Spectre

  • Mục tiêu: Speculation attack.

  • Lý thuyết: branch speculation leak (nối Layer 0/8).

  • Thực hành: Review + note.

Ngày 68: Rowhammer

  • Mục tiêu: Hardware bit-flip.

  • Lý thuyết: DRAM disturbance.

  • Thực hành: Review + note.

Ngày 69: SGX/confidential computing

  • Mục tiêu: Trusted execution.

  • Lý thuyết: enclave, attestation (nối Layer 8).

  • Thực hành: Review + note.

Ngày 70: CFI/ROP

  • Mục tiêu: Control-flow attacks/defense.

  • Lý thuyết: ROP, Control-Flow Integrity.

  • Thực hành: Review + note.

Ngày 71: DeepSpeed/ZeRO

  • Mục tiêu: Training bộ nhớ hiệu quả.

  • Lý thuyết: ZeRO partitioning (nối Layer 10).

  • Thực hành: Review + note.

Ngày 72: Megatron/FSDP

  • Mục tiêu: Model parallelism.

  • Lý thuyết: tensor/pipeline parallel, FSDP (nối Layer 10).

  • Thực hành: Review + note.

Ngày 73: PagedAttention/vLLM

  • Mục tiêu: LLM serving hiệu quả.

  • Lý thuyết: KV cache paging (nối Layer 10).

  • Thực hành: Review + note.

Ngày 74: Observability research

  • Mục tiêu: Nền quan sát.

  • Lý thuyết: tracing/OpenTelemetry background (nối Layer 7).

  • Thực hành: Review + note.

Ngày 75: Reliability/SRE

  • Mục tiêu: Nền reliability.

  • Lý thuyết: SLO/error budget, Google SRE (nối Layer 11).

  • Thực hành: Review + note.

Ngày 76: Đọc survey

  • Mục tiêu: Nắm nhanh một lĩnh vực.

  • Lý thuyết: survey structure, dùng để định hướng.

  • Thực hành: Đọc một survey; rút reading list.

Ngày 77: Tổng hợp cross-paper

  • Mục tiêu: Nối các paper thành chủ đề.

  • Lý thuyết: thematic synthesis, so sánh cách tiếp cận.

  • Thực hành: Note tổng hợp một chủ đề (ví dụ consensus).

Ngày 78: Literature map hoàn chỉnh

  • Mục tiêu: Bức tranh 75+ paper.

  • Lý thuyết: map theo domain + cluster.

  • Thực hành: Cập nhật map (đã ~75 paper).

KHỐI C - Benchmark Methodology (Ngày 79-90) → P3

Ngày 79: Vì sao benchmark

  • Mục tiêu: So sánh công bằng.

  • Lý thuyết: benchmark tốt vs "benchmark crime".

  • Thực hành: Liệt kê bẫy benchmark hay gặp.

Ngày 80: Nguyên tắc thiết kế

  • Mục tiêu: Benchmark có ý nghĩa.

  • Lý thuyết: representative workload, fair baseline, reproducible.

  • Thực hành: Phác một benchmark cho một hệ.

Ngày 81: SPEC

  • Mục tiêu: CPU/system benchmark chuẩn.

  • Lý thuyết: SPEC CPU (nối Layer 0).

  • Thực hành: Đọc phương pháp SPEC.

Ngày 82: TPC

  • Mục tiêu: Database benchmark.

  • Lý thuyết: TPC-C (OLTP), TPC-H/DS (OLAP) (nối Layer 3/9).

  • Thực hách: Đọc + hiểu TPC workload.

Ngày 83: YCSB

  • Mục tiêu: KV/NoSQL benchmark.

  • Lý thuyết: workload A-F, read/write mix (nối Layer 3).

  • Thực hành: Áp YCSB cho một KV store.

Ngày 84: CloudSuite/MLPerf

  • Mục tiêu: Cloud & ML benchmark.

  • Lý thuyết: CloudSuite (cloud workloads), MLPerf (nối Layer 10).

  • Thực hành: Đọc phương pháp MLPerf.

Ngày 85: Micro vs macro

  • Mục tiêu: Chọn mức đo.

  • Lý thuyết: microbenchmark (thành phần) vs macro (hệ).

  • Thực hành: Thiết kế cả hai cho một hệ.

Ngày 86: Rigor thống kê

  • Mục tiêu: Số liệu đáng tin.

  • Lý thuyết: variance, confidence interval, đủ số lần chạy.

  • Thực hành: Chạy nhiều lần + tính CI.

Ngày 87: Đo latency đúng

  • Mục tiêu: Không lừa mình.

  • Lý thuyết: percentile, coordinated omission (nối Layer 7).

  • Thực hành: Đo latency tránh coordinated omission.

Ngày 88: Đo throughput + benchmark crimes

  • Mục tiêu: Trung thực.

  • Lý thuyết: throughput đúng, các "benchmark crime" kinh điển.

  • Thực hành: Rà một benchmark tìm lỗi.

Ngày 89: Reproducible benchmark + P3 design

  • Mục tiêu: Đóng khung P3.

  • Lý thuyết: kiểm soát môi trường (container, nối Layer 4), pin version.

  • Thực hách: benchmark-study-design.md.

Ngày 90: CỘT MỐC 90

  • Mục tiêu: Chốt benchmark; release P3.

  • Lý thuyết: Ôn C; kiểm kê: benchmark study đúng phương pháp + rigor thống kê.

  • Thực hành: P3 done (benchmark study report); đề thi #3 (benchmark methodology) + tự chấm; blog #119 ("Benchmark cho ra hồn: percentile, coordinated omission, và tránh benchmark crime"); tag layer12-day090; nghỉ nửa ngày. Đã đi 90/120 (75%).

KHỐI D - Reproduction Practice (Ngày 91-114) → P4 (tái hiện 5)

Ngày 91: Tái hiện - vì sao

  • Mục tiêu: Học sâu nhất bằng làm lại.

  • Lý thuyết: reproduction vs replication, artifact evaluation.

  • Thực hành: Chọn 5 paper có thể tái hiện.

Ngày 92: Chọn paper tái hiện

  • Mục tiêu: Khả thi & giá trị.

  • Lý thuyết: tiêu chí: artifact, scope, tài nguyên.

  • Thực hành: Chốt 5 paper + kế hoạch.

Ngày 93: Dựng môi trường

  • Mục tiêu: Tái lập được (nối Layer 4).

  • Lý thuyết: container hoá, pin dependency, ghi env.

  • Thực hành: Template môi trường tái hiện.

Ngày 94: Tái hiện 1 - setup (storage)

  • Mục tiêu: Paper storage/LSM (nối Layer 3).

  • Lý thuyết: đọc kỹ eval để lặp lại.

  • Thực hành: Setup + chạy thử.

Ngày 95: Tái hiện 1 - chạy

  • Mục tiêu: Ra số.

  • Lý thuyết: chạy experiment chính.

  • Thực hành: Thu số liệu.

Ngày 96: Tái hiện 1 - so sánh + writeup

  • Mục tiêu: Đối chiếu paper.

  • Lý thuyết: khớp/không khớp, giải thích.

  • Thực hành: Reproduction report #1.

Ngày 97: Tái hiện 2 - setup (OS/scheduling)

  • Mục tiêu: Paper OS (nối Layer 2).

  • Lý thuyết: đo scheduling/latency.

  • Thực hành: Setup + chạy thử.

Ngày 98: Tái hiện 2 - chạy

  • Mục tiêu: Thu số.

  • Lý thuyết: experiment chính.

  • Thực hành: Thu số liệu.

Ngày 99: Tái hiện 2 - writeup

  • Mục tiêu: Báo cáo.

  • Lý thuyết: so sánh + phân tích.

  • Thực hành: Reproduction report #2.

Ngày 100:

  • Mục tiêu: Kiểm kê lớn giữa Layer 12.

  • Lý thuyết: Ôn A→C + đầu D; kiểm kê lớn: ~85 paper có note + benchmark report + 2 tái hiện; đối chiếu năng lực research literacy.

  • Thực hành: Đề thi #4 tích lũy (đọc + benchmark + tái hiện) + tự chấm theo rubric; blog #120 ("Tái hiện paper: khi số của bạn không khớp số của họ"); tag layer12-day100; nghỉ nửa ngày. Đã đi 100/120 (83%).

Ngày 101: Tái hiện 3 - setup (networking)

  • Mục tiêu: Paper networking (nối Layer 3).

  • Lý thuyết: đo congestion/latency.

  • Thực hành: Setup + chạy thử.

Ngày 102: Tái hiện 3 - chạy

  • Mục tiêu: Thu số.

  • Lý thuyết: experiment chính.

  • Thực hành: Thu số liệu.

Ngày 103: Tái hiện 3 - writeup

  • Mục tiêu: Báo cáo.

  • Lý thuyết: so sánh.

  • Thực hành: Reproduction report #3.

Ngày 104: Tái hiện 4 - setup (data/query)

  • Mục tiêu: Paper data (nối Layer 9).

  • Lý thuyết: đo query/throughput.

  • Thực hành: Setup + chạy thử.

Ngày 105: Tái hiện 4 - chạy

  • Mục tiêu: Thu số.

  • Lý thuyết: experiment chính.

  • Thực hành: Thu số liệu.

Ngày 106: Tái hiện 4 - writeup

  • Mục tiêu: Báo cáo.

  • Lý thuyết: so sánh.

  • Thực hành: Reproduction report #4.

Ngày 107: Tái hiện 5 - setup (ML systems)

  • Mục tiêu: Paper ML systems (nối Layer 10).

  • Lý thuyết: đo training/serving.

  • Thực hành: Setup + chạy thử.

Ngày 108: Tái hiện 5 - chạy

  • Mục tiêu: Thu số.

  • Lý thuyết: experiment chính.

  • Thực hành: Thu số liệu.

Ngày 109: Tái hiện 5 - writeup

  • Mục tiêu: Báo cáo.

  • Lý thuyết: so sánh.

  • Thực hành: Reproduction report #5.

Ngày 110: Khi không tái hiện được

  • Mục tiêu: Đối mặt thất bại.

  • Lý thuyết: lý do không repro (env, thiếu chi tiết, artifact hỏng).

  • Thực hành: Ghi lại một trường hợp không repro.

Ngày 111: Báo cáo kết quả âm trung thực

  • Mục tiêu: Khoa học tử tế.

  • Lý thuyết: negative result cũng có giá trị.

  • Thực hành: Viết negative result rõ ràng.

Ngày 112: Ráp portfolio tái hiện

  • Mục tiêu: Gom lại.

  • Lý thuyết: 5 reproduction report + artifact.

  • Thực hành: Portfolio tái hiện.

Ngày 113: P4 - hoàn thiện report

  • Mục tiêu: Chất lượng.

  • Lý thuyết: rà rõ ràng, có số, có phân tích.

  • Thực hành: Polish 5 report.

Ngày 114: P4 - 5 tái hiện

  • Mục tiêu: Release P4.

  • Lý thuyết: rà "done": 5 reproduction report + artifact công khai.

  • Thực hành: Đóng gói + blog #121 ("Portfolio tái hiện 5 paper: từ storage tới ML systems"). P4 done.

KHỐI E - Technical Writing (Ngày 115-120) → P5 flagship

Ngày 115: Technical writing - cấu trúc

  • Mục tiêu: Viết report rõ ràng.

  • Lý thuyết: problem → approach → result → discussion.

  • Thực hành: Outline một technical report.

Ngày 116: Viết reproduction report

  • Mục tiêu: Báo cáo tái hiện chuẩn.

  • Lý thuyết: method, setup, result, discrepancy analysis.

  • Thực hành: Chuẩn hoá 5 report theo cấu trúc.

Ngày 117: Viết survey/synthesis

  • Mục tiêu: Tổng hợp một lĩnh vực.

  • Lý thuyết: survey structure, so sánh cách tiếp cận, taxonomy.

  • Thực hành: Draft một survey ngắn từ note đã có.

Ngày 118: P5 - portfolio 100 paper + survey

  • Mục tiêu: Đóng khung flagship.

  • Lý thuyết: 100 paper có note + literature map + một survey report.

  • Thực hành: Hoàn tất 100 paper; viết survey report.

Ngày 119: P5 - hoàn thiện; ôn Layer 12

  • Mục tiêu: Chốt portfolio.

  • Lý thuyết: rà 100 note + 5 tái hiện + benchmark + survey.

  • Thực hành: Xuất bản portfolio; rà toàn layer.

Ngày 120: HOÀN THÀNH LAYER 12

  • Mục tiêu: Chốt Research Literacy.

  • Lý thuyết: Ôn toàn layer; kiểm kê tổng: P1 hệ thống đọc + P2 50 paper + P3 benchmark report + P4 5 tái hiện + P5 100-paper portfolio + survey report.

  • Thực hành: P5 done; đề thi #5 tích lũy (đọc/phê phán/tái hiện/viết) + tự chấm theo rubric; blog #122 ("Nhìn lại Research Literacy: đọc 100 paper, tái hiện 5, và viết được technical report"); tag layer12-complete; nghỉ nửa ngày.

LAYER 13 - SOURCE CODE READING & CONTRIBUTION (Syllabus chi tiết theo ngày)

Tài nguyên: CONTRIBUTING.md của từng dự án, GitHub Open Source Guides, Linux Documentation/process/, Working in Public (Nadia Eghbal), LWN.net, talk của maintainer, Sourcegraph/GitHub code search.

KHỐI A - Code Reading Skills (Ngày 1-30) → P1

Ngày 1: Khởi động Layer 13

  • Mục tiêu: Vì sao đọc & đóng góp OSS + cách chạy song song.

  • Lý thuyết: đọc source ≠ đọc doc; đích: contribute được.

  • Thực hành: Repo oss-contrib/; lập tracker (project/domain/status/PR).

Ngày 2: Định hướng codebase

  • Mục tiêu: Vào một repo lạ không hoảng.

  • Lý thuyết: README, ARCHITECTURE.md, docs/, DESIGN.

  • Thực hành: Đọc "map" của một dự án lớn.

Ngày 3: Cấu trúc & build

  • Mục tiêu: Build được để đọc.

  • Lý thuyết: directory layout, build system, dev setup.

  • Thực hành: Clone + build một dự án từ source.

Ngày 4: ctags/cscope

  • Mục tiêu: Nhảy trong code.

  • Lý thuyết: symbol index, jump-to-definition.

  • Thực hành: Index một codebase; tra một hàm.

Ngày 5: LSP & IDE

  • Mục tiêu: Navigation hiện đại.

  • Lý thuyết: clangd/gopls/rust-analyzer, go-to-def, find-references.

  • Thực hành: Duyệt call graph bằng LSP.

  • Mục tiêu: Tìm nhanh.

  • Lý thuyết: Sourcegraph, GitHub code search, ripgrep.

  • Thực hành: Tìm nơi một khái niệm được cài đặt.

Ngày 7: git blame/log

  • Mục tiêu: Hiểu vì sao code thế này.

  • Lý thuyết: blame, log, đọc commit message.

  • Thực hành: Truy một dòng code về commit gốc.

Ngày 8: git bisect

  • Mục tiêu: Tìm thay đổi gây điều gì đó.

  • Lý thuyết: bisect để định vị commit.

  • Thực hành: Bisect một thay đổi hành vi.

Ngày 9: Top-down reading

  • Mục tiêu: Từ entry point đi xuống.

  • Lý thuyết: main → khởi tạo → subsystem.

  • Thực hành: Theo entry point một dự án.

Ngày 10: Bottom-up reading

  • Mục tiêu: Từ data structure lên.

  • Lý thuyết: cấu trúc dữ liệu lõi → cách dùng.

  • Thực hành: Đọc struct chính + nơi dùng.

Ngày 11: Following an operation

  • Mục tiêu: Đi trọn một thao tác.

  • Lý thuyết: trace một request/operation end-to-end.

  • Thực hành: Theo một operation xuyên các module.

Ngày 12: Đọc test

  • Mục tiêu: Hiểu hành vi qua test.

  • Lý thuyết: test = đặc tả sống.

  • Thực hành: Đọc test suite của một module.

Ngày 13: Debug để trace

  • Mục tiêu: Chạy để hiểu.

  • Lý thuyết: breakpoint, step, print (nối Layer 2 gdb).

  • Thực hành: Debug một luồng để hiểu.

Ngày 14: Reconstructing architecture

  • Mục tiêu: Dựng lại bức tranh.

  • Lý thuyết: module boundary, abstraction, dependency.

  • Thực hành: Vẽ architecture từ code đọc được.

Ngày 15: Control vs data flow

  • Mục tiêu: Hai chiều nhìn.

  • Lý thuyết: control flow vs data flow.

  • Thực hành: Vẽ cả hai cho một tính năng.

Ngày 16: Đọc commit/PR history

  • Mục tiêu: Học từ lịch sử.

  • Lý thuyết: đọc PR lớn, hiểu quyết định.

  • Thực hành: Đọc một PR quan trọng của dự án.

Ngày 17: Đọc RFC/design docs

  • Mục tiêu: Hiểu "vì sao".

  • Lý thuyết: design doc, proposal, KEP (Kubernetes).

  • Thực hành: Đọc một design doc; tóm tắt.

Ngày 18: Note-taking cho codebase

  • Mục tiêu: Ghi để dùng lại.

  • Lý thuyết: khác note paper; map function/flow.

  • Thực hành: Template note codebase.

Ngày 19: Diagram từ code

  • Mục tiêu: Trực quan hoá.

  • Lý thuyết: vẽ module/sequence từ code.

  • Thực hành: Diagram một subsystem.

Ngày 20: Key abstraction & hot path

  • Mục tiêu: Tìm phần quan trọng nhất.

  • Lý thuyết: abstraction lõi, hot path.

  • Thực hành: Xác định hot path một dự án.

Ngày 21: Đọc code hiệu năng

  • Mục tiêu: Nối profiling (nối Layer 7).

  • Lý thuyết: đọc code + profile để hiểu bottleneck.

  • Thực hành: Profile + đọc hot function.

Ngày 22: Đọc code bảo mật

  • Mục tiêu: Nối security (nối Layer 8).

  • Lý thuyết: đọc tìm điểm yếu, input validation.

  • Thực hành: Rà một đường input.

Ngày 23: Chọn codebase

  • Mục tiêu: Đọc theo layer đã học.

  • Lý thuyết: map dự án ↔ layer (kernel↔L2, PG↔L3, k8s↔L4...).

  • Thực hành: Chọn 2 codebase để đọc kỹ.

Ngày 24: Governance của OSS

  • Mục tiêu: Hiểu cách dự án vận hành.

  • Lý thuyết: maintainer, SIG, foundation (CNCF/Linux), roadmap.

  • Thực hành: Đọc governance của một dự án.

Ngày 25: P1 - toolkit

  • Mục tiêu: Đóng khung P1.

  • Lý thuyết: LSP + search + note workflow.

  • Thực hách: Setup toolkit + template.

Ngày 26: P1 - codebase 1 orient

  • Mục tiêu: Định hướng dự án 1.

  • Lý thuyết: build + architecture map.

  • Thực hành: Build + đọc architecture dự án 1.

Ngày 27: P1 - codebase 1 deep

  • Mục tiêu: Đọc sâu một subsystem.

  • Lý thuyết: theo một operation end-to-end.

  • Thực hành: Note + diagram subsystem.

Ngày 28: P1 - codebase 2 orient

  • Mục tiêu: Định hướng dự án 2.

  • Lý thuyết: build + architecture map.

  • Thực hành: Build + đọc architecture dự án 2.

Ngày 29: P1 - architecture notes

  • Mục tiêu: Ghi lại cả hai.

  • Lý thuyết: architecture doc cho 2 dự án.

  • Thực hành: Hoàn thiện note + diagram.

Ngày 30: CỘT MỐC 30

  • Mục tiêu: Chốt kỹ năng đọc; release P1.

  • Lý thuyết: Ôn A; kiểm kê: toolkit + đọc được 2 codebase lớn.

  • Thực hành: P1 done; đề thi #1 (đọc + tóm tắt architecture một dự án) + tự chấm; blog #123 ("Cách đọc một codebase khổng lồ: LSP, following an operation, dựng lại architecture"); tag layer13-day030; nghỉ nửa ngày. Đã đi 30/120 (25%).

KHỐI B - Domain Code Deep-Dives (Ngày 31-72) → P2

Ngày 31: Linux kernel - orient

  • Mục tiêu: Codebase OS lớn nhất (nối Layer 2).

  • Lý thuyết: cây source, subsystem, Documentation/.

  • Thực hành: Định vị một subsystem (đã biết từ Layer 2).

Ngày 32: Linux - đọc subsystem

  • Mục tiêu: Đọc sâu một phần.

  • Lý thuyết: ví dụ scheduler/driver/fs.

  • Thực hành: Theo một syscall/đường đi.

Ngày 33: Linux - process cộng đồng

  • Mục tiêu: Cách kernel vận hành.

  • Lý thuyết: mailing list, patch, maintainer, LWN.

  • Thực hành: Đọc một thread thảo luận patch.

Ngày 34: systemd

  • Mục tiêu: Init system phức tạp.

  • Lý thuyết: unit, dependency, cgroup (nối Layer 2).

  • Thực hành: Đọc một phần systemd.

Ngày 35: LLVM - orient

  • Mục tiêu: Compiler infra (nối Layer 1).

  • Lý thuyết: IR, pass pipeline.

  • Thực hành: Định vị một pass.

Ngày 36: LLVM - đọc một pass

  • Mục tiêu: Hiểu một optimization.

  • Lý thuyết: pass structure, IR transform.

  • Thực hành: Đọc + trace một pass.

Ngày 37: Go runtime

  • Mục tiêu: Runtime ngôn ngữ (nối Layer 1).

  • Lý thuyết: scheduler (GMP), GC.

  • Thực hành: Đọc scheduler hoặc GC Go.

Ngày 38: Wasmtime/WasmEdge

  • Mục tiêu: WASM runtime (nối Layer 1).

  • Lý thuyết: execution, JIT.

  • Thực hành: Đọc một phần runtime WASM.

Ngày 39: PostgreSQL - orient

  • Mục tiêu: RDBMS kinh điển (nối Layer 3).

  • Lý thuyết: planner/executor/storage.

  • Thực hành: Định vị executor.

Ngày 40: PostgreSQL - executor/planner

  • Mục tiêu: Đọc một operator.

  • Lý thuyết: Volcano model, node.

  • Thực hành: Đọc seq scan/hash join (đã học Layer 3).

Ngày 41: RocksDB

  • Mục tiêu: LSM thực chiến (nối Layer 3).

  • Lý thuyết: compaction, memtable, SST.

  • Thực hành: Đọc compaction code.

Ngày 42: ClickHouse/DuckDB/TiKV

  • Mục tiêu: OLAP & distributed KV (nối Layer 3/9).

  • Lý thuyết: MergeTree/vectorized/Raft.

  • Thực hành: Đọc một phần của một trong ba.

Ngày 43: Envoy - orient

  • Mục tiêu: Proxy nền tảng (nối Layer 4).

  • Lý thuyết: listener/filter/cluster, xDS.

  • Thực hành: Định vị filter chain.

Ngày 44: Envoy - đọc filter/xDS

  • Mục tiêu: Hiểu xử lý request.

  • Lý thuyết: HTTP filter, xDS config.

  • Thực hành: Đọc một filter (đã học Layer 4).

Ngày 45: Cilium

  • Mục tiêu: eBPF networking (nối Layer 2/4).

  • Lý thuyết: eBPF datapath, agent.

  • Thực hành: Đọc một phần datapath.

Ngày 46: Open vSwitch

  • Mục tiêu: Virtual switch (nối Layer 3).

  • Lý thuyết: flow table, datapath.

  • Thực hành: Đọc một phần OVS.

Ngày 47: runc - orient

  • Mục tiêu: Container runtime (nối Layer 2/4).

  • Lý thuyết: libcontainer, ns/cgroups.

  • Thực hành: Định vị container lifecycle.

Ngày 48: runc - lifecycle

  • Mục tiêu: create/start/kill.

  • Lý thuyết: OCI runtime-spec code (đã học Layer 4).

  • Thực hành: Đọc create → start.

Ngày 49: containerd/BuildKit/Moby

  • Mục tiêu: Runtime cấp cao (nối Layer 4).

  • Lý thuyết: shim, snapshotter, build.

  • Thực hành: Đọc một phần containerd/BuildKit.

Ngày 50: Kubernetes - orient

  • Mục tiêu: Hệ sinh thái lớn nhất (nối Layer 4).

  • Lý thuyết: apiserver/controller/kubelet, SIG structure.

  • Thực hành: Định vị một controller.

Ngày 51: Kubernetes - đọc controller

  • Mục tiêu: Reconciliation thực tế.

  • Lý thuyết: informer/workqueue/reconcile (đã học Layer 4).

  • Thực hành: Đọc một built-in controller.

Ngày 52: etcd - raft

  • Mục tiêu: Consensus thực chiến (nối Layer 3/4).

  • Lý thuyết: raft implementation.

  • Thực hành: Đọc raft state machine etcd.

Ngày 53: Argo CD/Crossplane

  • Mục tiêu: GitOps & platform (nối Layer 4/6).

  • Lý thuyết: sync/reconcile, XRD.

  • Thực hành: Đọc một phần Argo/Crossplane.

Ngày 54: Istio/KCP

  • Mục tiêu: Mesh & control plane (nối Layer 4).

  • Lý thuyết: istiod, xDS; KCP workspace.

  • Thực hành: Đọc một phần Istio/KCP.

Ngày 55: Prometheus - orient

  • Mục tiêu: Metrics engine (nối Layer 7).

  • Lý thuyết: scrape, TSDB, PromQL.

  • Thực hành: Định vị TSDB/scrape.

Ngày 56: Prometheus - TSDB/scrape

  • Mục tiêu: Đọc storage/ingest.

  • Lý thuyết: head/block, WAL (đã học Layer 3/7).

  • Thực hành: Đọc scrape hoặc TSDB.

Ngày 57: OpenTelemetry Collector

  • Mục tiêu: Pipeline observability (nối Layer 7).

  • Lý thuyết: receiver/processor/exporter.

  • Thực hành: Đọc một processor.

Ngày 58: Loki/Tempo/VictoriaMetrics

  • Mục tiêu: Logs/traces/metrics khác (nối Layer 7).

  • Lý thuyết: kiến trúc từng cái.

  • Thực hành: Đọc một phần của một trong ba.

Ngày 59: Kafka - orient

  • Mục tiêu: Streaming (nối Layer 9).

  • Lý thuyết: log, partition, replication.

  • Thực hành: Định vị log/replication.

Ngày 60: CỘT MỐC 60

  • Mục tiêu: Chốt deep subsystem; release P2.

  • Lý thuyết: Ôn B tới giờ; kiểm kê: đọc sâu một subsystem + architecture doc dựng lại.

  • Thực hành: P2 done (subsystem architecture doc); đề thi #2 (giải thích một subsystem đã đọc) + tự chấm; blog #124 ("Dựng lại kiến trúc một subsystem thật: từ code tới sơ đồ"); tag layer13-day060; nghỉ nửa ngày. Đã đi 60/120 (50%).

Ngày 61: Kafka - component

  • Mục tiêu: Đọc sâu một phần.

  • Lý thuyết: log/replication/consumer group.

  • Thực hành: Đọc một component Kafka.

Ngày 62: Iceberg

  • Mục tiêu: Table format code (nối Layer 9).

  • Lý thuyết: metadata/manifest, snapshot.

  • Thực hành: Đọc metadata handling.

Ngày 63: Airflow/MLflow

  • Mục tiêu: Orchestration & ML (nối Layer 9/10).

  • Lý thuyết: DAG/scheduler; tracking/registry.

  • Thực hành: Đọc một phần.

Ngày 64: Patterns across projects

  • Mục tiêu: Nhận ra mẫu chung.

  • Lý thuyết: plugin, reconcile, pipeline lặp lại nhiều nơi.

  • Thực hành: Bảng pattern chung.

Ngày 65: Ngôn ngữ theo dự án

  • Mục tiêu: Đọc đa ngôn ngữ.

  • Lý thuyết: C (kernel), Go (k8s), Rust (TiKV), C++ (ClickHouse).

  • Thực hành: So phong cách codebase.

Ngày 66: Đọc C++ lớn

  • Mục tiêu: Vào codebase C++.

  • Lý thuyết: template, namespace, build phức tạp.

  • Thực hành: Navigate một C++ codebase.

Ngày 67: Đọc Go lớn

  • Mục tiêu: Vào codebase Go.

  • Lý thuyết: interface, package, generate.

  • Thực hành: Navigate một Go codebase.

Ngày 68: Đọc Rust lớn

  • Mục tiêu: Vào codebase Rust.

  • Lý thuyết: trait, module, ownership khi đọc.

  • Thực hành: Navigate một Rust codebase.

Ngày 69: Testing approach của dự án

  • Mục tiêu: Hiểu cách họ test.

  • Lý thuyết: unit/integration/e2e, fixture.

  • Thực hành: Đọc test infra một dự án.

Ngày 70: CI/CD của dự án

  • Mục tiêu: Biết CI trước khi PR.

  • Lý thuyết: CI pipeline, required checks.

  • Thực hành: Đọc CI config; chạy check local.

Ngày 71: Tìm cơ hội đóng góp

  • Mục tiêu: Chuẩn bị PR.

  • Lý thuyết: bug/docs/test/feature; issue tracker.

  • Thực hách: Lập danh sách issue tiềm năng (3 domain).

Ngày 72: Ôn Khối B

  • Mục tiêu: Chốt reading portfolio.

  • Lý thuyết: rà các subsystem đã đọc.

  • Thực hành: Chuẩn bị đóng góp.

KHỐI C - Contribution Mechanics (Ngày 73-90) → P3

Ngày 73: OSS contribution - tổng quan

  • Mục tiêu: Cách đóng góp.

  • Lý thuyết: types: docs/test/bugfix/feature/refactor.

  • Thực hành: Chọn loại đóng góp đầu tiên (nên nhỏ).

Ngày 74: Tìm issue

  • Mục tiêu: Chọn việc vừa sức.

  • Lý thuyết: good-first-issue, help-wanted, triage.

  • Thực hành: Chọn 1 issue domain 1.

Ngày 75: CONTRIBUTING.md

  • Mục tiêu: Theo luật chơi.

  • Lý thuyết: đọc contribution guide.

  • Thực hành: Đọc + tuân guide dự án.

Ngày 76: DCO vs CLA

  • Mục tiêu: Ký đúng.

  • Lý thuyết: DCO (Signed-off-by) vs CLA.

  • Thực hành: Ký commit đúng chuẩn dự án.

Ngày 77: Code of conduct

  • Mục tiêu: Cộng đồng lành mạnh.

  • Lý thuyết: CoC, chuẩn giao tiếp.

  • Thực hành: Đọc CoC; chuẩn bị tương tác.

Ngày 78: Git workflow

  • Mục tiêu: Đóng góp gọn gàng.

  • Lý thuyết: fork, branch, commit hygiene, rebase.

  • Thực hành: Setup fork + branch.

Ngày 79: Commit & PR nhỏ

  • Mục tiêu: Dễ review.

  • Lý thuyết: conventional commit, small focused PR.

  • Thực hành: Chuẩn commit message.

Ngày 80: Build & test local

  • Mục tiêu: Chắc chắn trước khi gửi.

  • Lý thuyết: build + run test suite (nối Khối B).

  • Thực hành: Chạy full test local.

Ngày 81: Lint & style

  • Mục tiêu: Qua CI style.

  • Lý thuyết: linter, formatter, style guide.

  • Thực hành: Chạy lint; sửa style.

Ngày 82: Viết issue tốt

  • Mục tiêu: Báo cáo rõ ràng.

  • Lý thuyết: reproduction, expected vs actual.

  • Thực hành: Viết một issue chất lượng (nếu cần).

Ngày 83: Mở PR

  • Mục tiêu: PR chuyên nghiệp.

  • Lý thuyết: description, link issue, checklist.

  • Thực hành: Draft PR description.

Ngày 84: PR nhỏ & tập trung

  • Mục tiêu: Tăng khả năng merge.

  • Lý thuyết: một PR một mục tiêu.

  • Thực hành: Rà PR đủ nhỏ.

Ngày 85: Nhận review

  • Mục tiêu: Đón feedback đúng cách.

  • Lý thuyết: không phòng thủ, hỏi rõ.

  • Thực hành: Phản hồi review lịch sự.

Ngày 86: Iterate review

  • Mục tiêu: Sửa theo góp ý.

  • Lý thuyết: address comment, force-push vs new commit.

  • Thực hành: Cập nhật PR theo review.

Ngày 87: CI & checks

  • Mục tiêu: Xanh mọi check.

  • Lý thuyết: required checks, flaky test.

  • Thực hành: Làm CI pass.

Ngày 88: Giao tiếp maintainer

  • Mục tiêu: Kiên nhẫn & tôn trọng.

  • Lý thuyết: thời gian review, ping lịch sự, tôn trọng thời gian họ.

  • Thực hành: Soạn tin nhắn follow-up đúng mực.

Ngày 89: Linux vs GitHub process

  • Mục tiêu: Biết khác biệt quy trình.

  • Lý thuyết: mailing-list patch (kernel) vs PR (GitHub).

  • Thực hành: Chuẩn bị patch/PR đúng quy trình dự án.

Ngày 90: CỘT MỐC 90

  • Mục tiêu: Chốt cơ chế; gửi PR đầu tiên.

  • Lý thuyết: Ôn C; kiểm kê: workflow contribution + PR #1 (domain 1) đã mở.

  • Thực hành: P3 done (PR #1 domain 1 đã gửi + đang review); đề thi #3 (contribution workflow) + tự chấm; blog #125 ("PR đầu tiên vào một dự án OSS lớn: từ good-first-issue tới review"); tag layer13-day090; nghỉ nửa ngày. Đã đi 90/120 (75%).

KHỐI D - Making Contributions (Ngày 91-114) → P4 (3 PR xuyên domain)

Ngày 91: PR #1 - tới merge

  • Mục tiêu: Landing PR đầu (domain 1).

  • Lý thuyết: iterate review → approve → merge.

  • Thực hành: Đưa PR #1 tới merge.

Ngày 92: Xử lý feedback/rework

  • Mục tiêu: Bền bỉ qua review.

  • Lý thuyết: rework lớn, giữ scope.

  • Thực hành: Xử một vòng feedback khó.

Ngày 93: Bug fix lớn hơn

  • Mục tiêu: Đóng góp có giá trị.

  • Lý thuyết: reproduce → RCA (nối Layer 11) → fix.

  • Thực hành: Tìm + fix một bug thật.

Ngày 94: Viết test cho fix

  • Mục tiêu: Fix có test.

  • Lý thuyết: regression test.

  • Thực hành: Thêm test cho bug fix.

Ngày 95: PR #2 - chọn domain 2

  • Mục tiêu: Domain khác.

  • Lý thuyết: chọn dự án + issue domain 2.

  • Thực hành: Chọn issue; hiểu code liên quan.

Ngày 96: PR #2 - implement

  • Mục tiêu: Sửa/thêm.

  • Lý thuyết: thay đổi tối thiểu, đúng.

  • Thực hành: Cài đặt fix.

Ngày 97: PR #2 - test + docs

  • Mục tiêu: Đầy đủ.

  • Lý thuyết: test + cập nhật docs.

  • Thực hành: Thêm test + docs.

Ngày 98: PR #2 - gửi + review

  • Mục tiêu: Mở PR.

  • Lý thuyết: description, CI.

  • Thực hành: Gửi PR #2.

Ngày 99: PR #2 - iterate

  • Mục tiêu: Qua review.

  • Lý thuyết: address feedback.

  • Thực hành: Cập nhật theo review.

Ngày 100:

  • Mục tiêu: Kiểm kê lớn giữa Layer 13.

  • Lý thuyết: Ôn A→C + đầu D; kiểm kê lớn: đọc nhiều codebase + PR #1 merged + PR #2 đang review; đối chiếu đích "đóng góp OSS".

  • Thực hành: Đề thi #4 tích lũy (đọc + contribution) + tự chấm theo rubric; blog #126 ("Từ đọc source tới PR merged: hành trình vào một cộng đồng OSS"); tag layer13-day100; nghỉ nửa ngày. Đã đi 100/120 (83%).

Ngày 101: PR #3 - chọn domain 3

  • Mục tiêu: Domain thứ ba.

  • Lý thuyết: chọn dự án + issue domain 3.

  • Thực hành: Chọn issue; hiểu code.

Ngày 102: PR #3 - implement

  • Mục tiêu: Sửa/thêm.

  • Lý thuyết: thay đổi đúng, gọn.

  • Thực hành: Cài đặt.

Ngày 103: PR #3 - test + docs

  • Mục tiêu: Đầy đủ.

  • Lý thuyết: test + docs.

  • Thực hành: Thêm test + docs.

Ngày 104: PR #3 - gửi + review

  • Mục tiêu: Mở PR.

  • Lý thuyết: description, CI.

  • Thực hành: Gửi PR #3.

Ngày 105: PR #3 - iterate

  • Mục tiêu: Qua review.

  • Lý thuyết: address feedback.

  • Thực hành: Cập nhật theo review.

Ngày 106: Feature contribution

  • Mục tiêu: Đóng góp lớn hơn.

  • Lý thuyết: propose qua issue/RFC trước khi code.

  • Thực hành: Draft một proposal.

Ngày 107: Design với maintainer

  • Mục tiêu: Đồng thuận thiết kế.

  • Lý thuyết: thảo luận design, chấp nhận thay đổi hướng.

  • Thực hành: Kịch bản thảo luận design.

Ngày 108: Xử lý bị từ chối

  • Mục tiêu: Đón nhận nhã nhặn.

  • Lý thuyết: PR bị close/redirect, học từ đó.

  • Thực hành: Rút bài học từ một rejection.

Ngày 109: Backport & release

  • Mục tiêu: Hiểu vòng đời release.

  • Lý thuyết: backport, release branch, changelog.

  • Thực hành: Đọc release process một dự án.

Ngày 110: Follow-up sau merge

  • Mục tiêu: Trách nhiệm sau merge.

  • Lý thuyết: theo dõi regression, sửa nhanh.

  • Thực hành: Kế hoạch follow-up.

Ngày 111: Documenting contributions

  • Mục tiêu: Ghi lại đóng góp.

  • Lý thuyết: portfolio: PR link + mô tả tác động.

  • Thực hành: Bắt đầu contribution portfolio.

Ngày 112: P4 - shepherd 3 PR tới merge

  • Mục tiêu: Đưa cả 3 tới đích.

  • Lý thuyết: kiên nhẫn qua review nhiều vòng.

  • Thực hành: Theo sát 3 PR (domain 1/2/3).

Ngày 113: P4 - writeup đóng góp

  • Mục tiêu: Ghi lại hành trình.

  • Lý thuyết: mỗi PR: vấn đề → fix → review → merge.

  • Thực hành: Writeup 3 đóng góp.

Ngày 114: P4 - 3 PR xuyên domain

  • Mục tiêu: Release P4.

  • Lý thuyết: rà "done": 3 PR ở 3 domain khác nhau (merged/in-review).

  • Thực hành: Đóng gói + blog #127 ("Ba PR ở ba domain khác nhau: container, observability, data"). P4 done.

KHỐI E - Sustained Contribution (Ngày 115-120) → P5 flagship

Ngày 115: Sustained contributor

  • Mục tiêu: Từ one-off tới đều đặn.

  • Lý thuyết: đóng góp liên tục, xây uy tín.

  • Thực hành: Chọn một dự án để theo sâu.

Ngày 116: Review PR người khác

  • Mục tiêu: Đóng góp bằng review.

  • Lý thuyết: review có tính xây dựng (nối Leadership).

  • Thực hành: Review một PR của người khác.

Ngày 117: Path to maintainer

  • Mục tiêu: Lộ trình committer/maintainer.

  • Lý thuyết: reviewer → committer → maintainer, cách được đề cử.

  • Thực hành: Kế hoạch tiến tới committer.

Ngày 118: RFC & design leadership

  • Mục tiêu: Dẫn dắt kỹ thuật (nối Leadership).

  • Lý thuyết: author một RFC/KEP, dẫn dắt thảo luận.

  • Thực hành: Draft một RFC cho một dự án.

Ngày 119: P5 - portfolio + lộ trình; ôn Layer 13

  • Mục tiêu: Chốt flagship.

  • Lý thuyết: 3 merged PR + review + lộ trình sustained.

  • Thực hành: Portfolio hoàn chỉnh + plan; rà toàn layer.

Ngày 120: HOÀN THÀNH LAYER 13

  • Mục tiêu: Chốt Source Code Reading & Contribution - đạt đích cuối của chương trình.

  • Lý thuyết: Ôn toàn layer; kiểm kê tổng: P1 đọc 2 codebase + P2 subsystem architecture doc + P3 PR #1 + P4 3 PR xuyên domain + P5 portfolio + lộ trình sustained contributor.

  • Thực hành: P5 done (≥1 merged PR ở 3 dự án khác domain); đề thi #5 tích lũy (đọc + đóng góp) + tự chấm theo rubric; blog #128 ("Nhìn lại Source Code Reading & Contribution: đọc được và đóng góp được cho OSS lớn"); tag layer13-complete; nghỉ nửa ngày.