Học Platform engineering (6)
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.
Ngày 6: Code search
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.