Syllabus Waypoint
⚠️ Lưu ý quan trọng trước khi bắt đầu
Waypoint mã nguồn mở cũ (waypoint.hcl, build/deploy/release, tự host) đã bị archive, community edition dừng ở bản 0.11.4 và không còn maintain.
TUẦN 1 - Nền tảng IDP & kiến trúc HCP Waypoint
Ngày 1: Khái niệm Internal Developer Platform (IDP)
Mục tiêu: Hiểu bài toán "developer self-service" mà Waypoint giải quyết.
Nội dung:
Lý thuyết: Platform Engineering, golden path/golden pattern; tách vai trò Platform Engineer (định nghĩa template) vs Application Developer (tiêu thụ template).
So sánh sơ bộ với Backstage, Port - Waypoint khác biệt vì build trực tiếp trên HCP Terraform thay vì tự có provisioning engine riêng.
Mini-Project: Không, warm-up.
Ngày 2: Kiến trúc tổng thể HCP Waypoint
Mục tiêu: Nắm sơ đồ luồng dữ liệu.
Nội dung:
Lý thuyết:
Template/Add-on definition → No-code Terraform module → Workspace → Apply. Khi developer dùng template/cài add-on, Waypoint gọi HCP Terraform API tạo workspace + trigger run; khi destroy, Waypoint trigger destroy run và xóa workspace.Thực hành: Tạo HCP account, bật HCP Waypoint, kết nối tới 1 HCP Terraform organization.
Mini-Project: Setup kết nối HCP Waypoint ↔ HCP Terraform hoàn chỉnh với team token đúng scope.
Ngày 3: No-code Ready Terraform Modules
Mục tiêu: Nền tảng bắt buộc phải giỏi trước khi làm Waypoint.
Nội dung:
Lý thuyết: Điều kiện module trở thành "no-code ready" (biến/output rõ ràng, versioning); vì sao Waypoint bắt buộc dựa vào module dạng này.
Thực hành: Viết 1 module đơn giản (vd deploy container service), publish lên private registry, đánh dấu no-code ready.
Ngày 4: Templates trong HCP Waypoint
Mục tiêu: Thành thạo tạo golden pattern đầu tiên.
Nội dung:
Lý thuyết: Template trừu tượng hóa application scaffolding - Terraform định nghĩa hạ tầng, dependency, workflow, access control trong 1 nơi, dùng làm blueprint tái sử dụng.
Thực hành: Tạo Template từ module Ngày 3, developer consume template tạo application mới qua UI.
Mini-Project: 1 Template hoàn chỉnh: developer chỉ nhập tên app + region, hạ tầng còn lại tự động provision.
Ngày 5: Input Variables cho Template
Mục tiêu: Kiểm soát biến nào khóa cứng, biến nào để developer tự nhập.
Nội dung:
Lý thuyết: Platform team chọn/khóa giá trị biến, hoặc để developer tự cung cấp giá trị khi tạo ứng dụng.
Thực hành: 1 biến khóa cứng (compliance - vd region chỉ us-east-1), 1 biến developer tự chọn (instance size).
TUẦN 2 - Add-ons, Actions, RBAC & Catalog
Ngày 6: Add-ons - quản lý dependency ứng dụng
Mục tiêu: Tách "app core infra" (Template) khỏi "dependency" (Add-on).
Nội dung:
Lý thuyết: Add-on định nghĩa resource hạ tầng bằng Terraform, cung cấp như dependency (database, cache, queue) trong vòng đời ứng dụng.
Thực hành: Tạo Add-on "Redis cache", cài vào application Ngày 4.
Mini-Project: Application có Template (compute) + 2 Add-on (Postgres, Redis) cài/xóa độc lập.
Ngày 7: Variable Outputs
Mục tiêu: Developer đọc được kết quả provisioning mà không cần vào Terraform trực tiếp.
Nội dung: Lý thuyết + thực hành: Expose connection string của Add-on Redis ra UI Waypoint cho developer đọc.
Ngày 8: Actions - golden workflow vận hành
Mục tiêu: Chuẩn hóa thao tác vận hành hàng ngày, không chỉ tạo hạ tầng.
Nội dung:
Lý thuyết: HCP CLI/Terraform provider dùng HCP API truy cập resource Waypoint; Action định nghĩa và thực thi golden workflow (build, rollback, thao tác private environment).
Thực hành: Action gọi webhook trigger CI/CD pipeline (vd GitHub Actions) từ Waypoint UI.
Mini-Project: Action "Rollback" gắn vào Template Ngày 4 - 1 nút bấm trigger Terraform run về version trước.
Ngày 9: RBAC & Access Control
Mục tiêu: Kiểm soát ai tạo Template, ai chỉ consume.
Nội dung:
Lý thuyết: HCP Waypoint thực thi authentication/authorization mọi thao tác qua UI/API/CLI/Terraform Provider, quyền giới hạn theo Role-Based Access Control.
Thực hành: Role "platform team" (full quyền Template/Add-on) vs "app developer" (chỉ consume).
Ngày 10: Project Selection & tổ chức multi-team
Mục tiêu: Nhiều team dùng chung HCP org mà không đụng workspace của nhau.
Nội dung: Lý thuyết: Cấu hình Template/Add-on chọn HCP Terraform project cụ thể khi tạo workspace.
Ngày 11: Application Catalog
Mục tiêu: Nguồn sự thật cho toàn bộ ứng dụng trong org.
Nội dung: Lý thuyết: Catalog giúp platform/operations team tìm câu trả lời vận hành nhanh.
Thực hành: Duyệt catalog, gắn metadata/tag cho từng application.
TUẦN 3 - Production Fundamentals
Ngày 12: Template Upgrade Path
Mục tiêu: Vận hành golden pattern theo thời gian - phần production quan trọng nhất.
Nội dung:
Lý thuyết: Platform engineer cập nhật no-code module gốc → khả năng upgrade của Template đẩy cập nhật tới mọi ứng dụng đã tạo từ template đó.
Thực hành: Sửa module Ngày 3 (thêm tag bắt buộc), publish version mới, trigger upgrade cho app cũ, quan sát Plan diff.
Mini-Project: Quy trình "propose → test → publish → rollout" cho 1 thay đổi compliance bắt buộc.
Ngày 13: Security Model của HCP Waypoint
Mục tiêu: Đánh giá đúng mức an toàn khi giao golden pattern cho nhiều team.
Nội dung: Lý thuyết: Giao tiếp client↔Waypoint và nội bộ với dịch vụ khác (HCP Terraform) mã hóa TLS; dữ liệu nhạy cảm (token, output, biến sensitive dùng cho Actions) mã hóa bằng Vault Transit trước khi lưu database.
Ngày 14: IaC hóa Waypoint
Mục tiêu: Quản lý Template/Add-on bằng code, không thao tác tay qua UI.
Nội dung:
Lý thuyết: Terraform provider
hashicorp/hcpquản lý resource nhưhcp_waypoint_application.Thực hành: Viết Terraform config định nghĩa lại Template/Add-on Ngày 4-6.
Mini-Project: Toàn bộ setup Waypoint (Template + Add-on + RBAC) version-controlled 100% bằng Terraform.
Ngày 15: CI/CD Integration
Mục tiêu: Golden workflow gắn liền pipeline hiện có.
Nội dung: Lý thuyết: Waypoint tích hợp CI/CD hiện có, cung cấp lớp trừu tượng nhất quán.
Thực hành: Action trigger GitHub Actions build → kết quả hiện ngược trong catalog.
Ngày 16: Bối cảnh Legacy OSS & So sánh tự build IDP (nửa ngày + nửa ngày)
Mục tiêu: Nhận diện hệ thống cũ nếu gặp, và biết khi nào nên/không nên dùng Waypoint.
Nội dung:
(0.5 ngày) Legacy OSS:
waypoint.hcl, 3-stage build/deploy/release, server tự host - chỉ cần đủ nhận diện, không đầu tư sâu vì đã archived.(0.5 ngày) So sánh: Waypoint tốn chi phí HCP Terraform Plus, đổi lại có UI self-service + RBAC + catalog + upgrade path sẵn - vs tự build script/portal riêng.
Ngày 17: Thiết kế Golden Pattern cho tổ chức thật
Mục tiêu: Áp dụng vào bài toán thực tế.
Nội dung: Thực hành: Liệt kê 3-5 loại ứng dụng phổ biến (web service, batch job, static site...), thiết kế Template + Add-on tương ứng cho mỗi loại.
TUẦN 4 - HCP Terraform
Ngày 18: Workspace Lifecycle
Mục tiêu: Hiểu chính xác điều gì xảy ra khi Waypoint "âm thầm" gọi API.
Nội dung:
Lý thuyết: Vòng đời
Create Workspace → Plan → Policy Check → Apply → Destroy; execution mode (remote/local/agent); mỗi application/add-on = 1 workspace riêng.Thực hành: Tìm workspace Waypoint tự tạo ở Ngày 4, đọc log Plan/Apply thô.
Mini-Project: Trace toàn bộ vòng đời 1 workspace từ "Create App" đến Apply xong, ghi chú từng bước API call.
Ngày 19: Run Tasks
Mục tiêu: Chèn kiểm tra tùy chỉnh giữa Plan và Apply.
Nội dung:
Lý thuyết: Run Task là webhook gọi ở post-plan/pre-apply, tích hợp scan bên thứ 3 (cost estimation, security scan).
Thực hành: Đăng ký Run Task chặn Apply nếu Plan thiếu tag bắt buộc.
Ngày 20: Policy Sets (Sentinel/OPA)
Mục tiêu: Guardrail ở tầng Terraform, không chỉ ở tầng Template.
Nội dung:
Lý thuyết: Policy Set gắn workspace/project, chạy tự động mọi run;
advisory(cảnh báo) vshard-mandatory(chặn cứng).Thực hành: Viết Sentinel policy chặn instance type ngoài whitelist, gắn vào project chứa workspace Waypoint.
Ngày 21: Variable Sets & Dynamic Credentials (OIDC)
Mục tiêu: Quản lý credential tập trung, không hardcode secret.
Nội dung:
Lý thuyết: Variable Set dùng chung nhiều workspace; Dynamic Provider Credentials qua OIDC - lấy short-lived credential từ AWS/Azure/GCP mỗi run thay vì static key.
Thực hành: Cấu hình OIDC trust HCP Terraform ↔ AWS IAM role, verify workspace Waypoint chạy không cần static access key.
Mini-Project: Pipeline Waypoint → HCP Terraform → AWS chạy 100% dynamic credentials, có ít nhất 1 Sentinel policy chặn vi phạm compliance.
TUẦN 5 - Registry Design, Versioning, Multi-cloud
Ngày 22: Private Module Registry Architecture
Mục tiêu: Registry không hỗn loạn khi scale.
Nội dung:
Lý thuyết: Phân lớp theo domain (
networking/→ aws-vpc, aws-eks, aws-rds;application/→ web-service, batch-job, cron-job); registry thiết kế kém → Template rời rạc, khó audit.Thực hành: Tái cấu trúc registry đã dùng theo layer domain, naming convention thống nhất.
Ngày 23: Semantic Versioning Strategy cho Template
Mục tiêu: Upgrade có kiểm soát, không chỉ "upgrade được".
Nội dung:
Lý thuyết: Semver (
v1.0.0 → v1.1.0 → v2.0.0);non-breaking(thêm optional variable) vsbreaking(đổi tên/xóa output); trạng tháisupportedvsdeprecated.Thực hành: Changelog cho module Ngày 3, giả lập breaking change (đổi tên output), viết migration note.
Mini-Project: Văn bản chính sách versioning: quy tắc bump version, deprecation window, cách thông báo breaking change qua catalog.
Ngày 24: Multi-Cloud Pattern Design
Mục tiêu: Template không khóa cứng vào 1 cloud.
Nội dung:
Lý thuyết: Tách
Abstract Template(interface chung) khỏiProvider-specific modulebên dưới - Template "Web Service" map tới AWS ECS / Azure Container Apps / Cloud Run tùycloud_provider.Thực hành: 2 module cùng interface biến/output (
aws-ecs-service,gcp-cloudrun-service), 1 Template chọn theo biến.
Mini-Project: Template "Web Service" chạy trên cả AWS và GCP chỉ bằng đổi 1 biến.
TUẦN 6 - Analytics, FinOps, Day-2, Ecosystem
Ngày 25: Platform Analytics & Observability
Mục tiêu: IDP phải tự đo được sức khỏe/mức sử dụng của chính nó.
Nội dung:
Lý thuyết: 4 loại chỉ số - audit log (ai tạo/xóa app), usage metrics (Template dùng nhiều nhất), adoption metrics (% team đã dùng Waypoint), error rate theo Template.
Thực hành: Export audit log ra dashboard đơn giản, tính adoption rate giả lập.
Ngày 26: FinOps & Cost Controls trong Template
Mục tiêu: Ngăn developer tạo tài nguyên vượt ngân sách từ thiết kế.
Nội dung:
Lý thuyết: Ép giới hạn trong biến Template (whitelist
instance_type,max_sizeautoscaling, tagcost_centerbắt buộc); kết hợp Sentinel cost policy (Ngày 20) để chặn cứng.Thực hành: Validation block trong module Terraform giới hạn
instance_type.
Mini-Project: Template có cost guardrail đầy đủ: whitelist size, tag bắt buộc, cảnh báo vượt ngưỡng qua Run Task.
Ngày 27: Day-2 Operations
Mục tiêu: Trả lời "Template tạo app xong, 6 tháng sau thì sao?"
Nội dung:
Lý thuyết: Scaling, backup định kỳ, credential/certificate rotation, patch management (Add-on version bump theo lịch).
Thực hành: Action "Backup Database" gọi API snapshot Add-on Postgres, lên lịch chạy định kỳ qua CI/CD trigger.
Mini-Project: Runbook Day-2 đầy đủ cho 1 application: scale, backup, rotate credential, patch - mỗi quy trình có 1 Action tương ứng.
Ngày 28: Ecosystem Integration
Mục tiêu: Waypoint hiếm khi đứng một mình trong enterprise lớn.
Nội dung:
Lý thuyết: Backstage làm catalog UI tổng hợp (Waypoint là 1 data source), Jira/ServiceNow cho approval workflow trước khi Action chạy, Datadog/PagerDuty nhận alert khi Apply fail hoặc Day-2 Action lỗi.
Thực hành: Action gửi notification Slack/PagerDuty khi Terraform run fail.
Mini-Project: Sơ đồ tích hợp Waypoint vào hệ sinh thái enterprise giả định: Backstage + Jira + Datadog + PagerDuty.
TUẦN 7 - Governance tổng hợp & Capstone
Ngày 29: Governance & Compliance tổng hợp
Mục tiêu: Hợp nhất toàn bộ guardrail đã học thành 1 chính sách governance nhất quán.
Nội dung: Thực hành: Khóa cứng biến compliance (region, tagging, encryption) trong Template kết hợp Sentinel policy (Ngày 20) - viết thành 1 tài liệu governance duy nhất cho tổ chức.
Ngày 30: Capstone - Internal Developer Platform Enterprise-grade
Yêu cầu:
Registry phân lớp domain rõ ràng (
networking/,application/), naming convention nhất quán.Tối thiểu 2 Template hỗ trợ multi-cloud (cùng interface, khác provider - AWS + GCP hoặc AWS + Azure).
Chính sách semantic versioning bằng văn bản, đã test rollout 1 breaking change có migration note.
Toàn bộ workspace chạy bằng Dynamic Credentials (OIDC) - không secret tĩnh.
Ít nhất 1 Sentinel policy hard-mandatory + 1 Run Task (cost estimation hoặc security scan).
Cost guardrail trong Template (whitelist size, tag bắt buộc, cảnh báo vượt ngân sách).
Ít nhất 2 Action Day-2 (backup + rollback) hoạt động thật, lên lịch được.
Dashboard theo dõi adoption/error rate theo Template.
Ít nhất 1 điểm tích hợp ecosystem thật (Slack/PagerDuty alert khi Apply fail).
RBAC phân quyền platform team vs developer, toàn bộ Template/Add-on định nghĩa bằng Terraform (
hashicorp/hcpprovider), version-controlled trên Git.