Skip to main content

Command Palette

Search for a command to run...

Syllabus Waypoint

Updated
12 min readView as Markdown

⚠️ 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/hcp quả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) vs hard-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) vs breaking (đổi tên/xóa output); trạng thái supported vs deprecated.

    • 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ỏi Provider-specific module bên dưới - Template "Web Service" map tới AWS ECS / Azure Container Apps / Cloud Run tùy cloud_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_size autoscaling, tag cost_center bắ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:

    1. Registry phân lớp domain rõ ràng (networking/, application/), naming convention nhất quán.

    2. Tối thiểu 2 Template hỗ trợ multi-cloud (cùng interface, khác provider - AWS + GCP hoặc AWS + Azure).

    3. Chính sách semantic versioning bằng văn bản, đã test rollout 1 breaking change có migration note.

    4. Toàn bộ workspace chạy bằng Dynamic Credentials (OIDC) - không secret tĩnh.

    5. Ít nhất 1 Sentinel policy hard-mandatory + 1 Run Task (cost estimation hoặc security scan).

    6. Cost guardrail trong Template (whitelist size, tag bắt buộc, cảnh báo vượt ngân sách).

    7. Ít nhất 2 Action Day-2 (backup + rollback) hoạt động thật, lên lịch được.

    8. Dashboard theo dõi adoption/error rate theo Template.

    9. Ít nhất 1 điểm tích hợp ecosystem thật (Slack/PagerDuty alert khi Apply fail).

    10. RBAC phân quyền platform team vs developer, toàn bộ Template/Add-on định nghĩa bằng Terraform (hashicorp/hcp provider), version-controlled trên Git.

Knowledge

Part 1 of 50