ก้าวต่อไป
ก้าวต่อไป
หัวข้อที่มีชื่อว่า “ก้าวต่อไป”คุณสร้าง TaskFlow แบบครบวงจรแล้ว และระบบก็รันได้จริง — แต่รันอยู่บนเครื่องของ คุณ จาก docker compose up ช่องว่างระหว่าง “ทำงานได้บน Compose” กับ “ให้บริการผู้ใช้จริงบน infrastructure จริง” คืองานวิศวกรรมก้อนใหญ่ในตัวเอง และจงใจไม่เป็นส่วนหนึ่งของคอร์สนี้ หน้านี้คือการส่งต่อ: จะพา TaskFlow ไปสู่ production ที่ไหน และจะไปไหนต่อสำหรับระบบชนิดถัดไปแบบเต็มตัว
ขอบเขตของ TaskFlow คือตัว โปรดักต์ — backend, ฐานข้อมูล, cache, เลเยอร์ realtime และ frontend ที่ทำให้บอร์ด Kanban ทำงานได้ ส่วน deployment เป็นอีกศาสตร์หนึ่งที่มีเครื่องมือของตัวเอง (infrastructure as code, orchestration, observability, secrets, feature flags) การยัดทั้งหมดนั้นเข้ามาในคอร์สนี้จะทำให้ความยาวเพิ่มเป็นสองเท่าและทำให้โฟกัสพร่ามัว การแยกสองสิ่งนี้ออกจากกันเป็นความตั้งใจ: คุณจบ TaskFlow ด้วยความเข้าใจตัวแอปพลิเคชันอย่างลึกซึ้ง แล้วค่อยหยิบเรื่อง production ขึ้นมาเป็นวิชาแยกต่างหาก
ลงมือสร้าง
หัวข้อที่มีชื่อว่า “ลงมือสร้าง”พา deploy ขึ้นจริง — โปรเจกต์ CloudDeploy
หัวข้อที่มีชื่อว่า “พา deploy ขึ้นจริง — โปรเจกต์ CloudDeploy”การพาระบบอย่าง TaskFlow ขึ้น production คือสิ่งที่โปรเจกต์ CloudDeploy ครอบคลุมพอดี และเป็นภาคต่อตามธรรมชาติ — TaskFlow ให้แอปกับไฟล์ Compose ส่วน CloudDeploy ให้เส้นทางในการรันแอปประเภทนั้นบน infrastructure จริง:
- Terraform / Terragrunt — จัดเตรียม infrastructure (network, ฐานข้อมูล, cluster) แบบเป็นโค้ด โดย Terragrunt ช่วยให้ environment ต่าง ๆ ไม่ซ้ำซ้อน (DRY)
- Kubernetes — รัน backend และ frontend เป็น workload ที่ถูก orchestrate แทนที่จะเป็น container ในเครื่อง โดย healthcheck ที่คุณเขียนไว้แล้วใน compose-full จะกลายเป็น readiness และ liveness probe
- Datadog — เปลี่ยน tracing ที่คุณตั้งไว้ใน config-tracing ให้เป็น observability ระดับ production จริง: dashboard, alert และ trace ข้ามหลายบริการ
- Keycloak — ยกระดับจาก JWT auth ที่เขียนเองใน jwt ไปเป็น identity provider แบบ managed ที่ใช้ OIDC เมื่อคุณต้องการ SSO และการจัดการผู้ใช้จริง
- GrowthBook — เพิ่ม feature flag และการทดลอง เพื่อให้คุณ ship การเปลี่ยนแปลงของ TaskFlow หลัง flag แทนที่จะปล่อยทีเดียวทั้งหมด
ถ้าคุณอยากให้ TaskFlow อยู่บนอินเทอร์เน็ตแทนที่จะอยู่บน localhost CloudDeploy คือที่ที่คุณต้องไป
สร้างระบบคนละแบบ — Real-World Projects ตัวอื่น ๆ
หัวข้อที่มีชื่อว่า “สร้างระบบคนละแบบ — Real-World Projects ตัวอื่น ๆ”TaskFlow เป็นหนึ่งใน Real-World Projects ของ Learn Hub — แต่ละตัวสร้างระบบที่สมบูรณ์และแตกต่างกันแบบครบวงจร ดังนั้นการทำตัวที่สองจะดึงคุณให้ยืดตัวข้ามสแตกที่คุณไม่ได้แตะในคอร์สนี้ ในส่วน Real-World Projects ของ roadmap บน Learn Hub คุณจะพบ:
- DevBlog — แพลตฟอร์มบล็อกที่ขับเคลื่อนด้วยคอนเทนต์: CRUD, การ render และ SEO ในรูปแบบที่ต่างออกไป ส่วน TaskFlow เน้น realtime-และ-อินเทอร์แอกทีฟ
- ShopMicro — ระบบ e-commerce ที่สร้างเป็น microservices ทำให้คุณได้เจอ service boundary, การสื่อสารระหว่างบริการ และ distributed data แทนที่จะเป็น backend เดียวของ TaskFlow
- FitTrack — แอปติดตามการออกกำลังกายที่มี frontend แบบ mobile-first และข้อมูลแบบ time-series ที่เป็นเรื่องราวของ data model และ client ที่ต่างออกไปโดยสิ้นเชิง
- OfflineNotes — แอปโน้ตที่สร้างแบบ offline-first โดยมีโจทย์ยากอยู่ที่ local storage และการ sync/แก้ conflict บน client — เป็นความต่างที่น่าสนใจกับ realtime แบบ server-authoritative ของ TaskFlow
แต่ละตัวคือการสร้างที่จบในตัวเองเหมือนกับคอร์สนี้ เลือกตัวที่โจทย์ฟังดูคุ้นเคยน้อยที่สุด — นั่นคือที่ที่คุณจะได้เรียนรู้มากที่สุด
ตรวจสอบผล
หัวข้อที่มีชื่อว่า “ตรวจสอบผล”คุณพร้อมจะก้าวต่อจาก TaskFlow เมื่อคุณทำสองอย่างนี้ได้: ชี้ได้ว่าจะ deploy ระบบนี้ยังไง (เส้นทาง Terraform → Kubernetes → observability ของ CloudDeploy) และบอกได้ว่า Real-World Projects ตัวไหนจัดการปัญหาที่คุณยังไม่เคยแก้ ถ้าทั้งสองอย่างชัดเจน แสดงว่าคุณได้ทุกอย่างที่คอร์สนี้มีให้แล้ว
TaskFlow รันบน Docker Compose ส่วนการพาขึ้น production — Terraform/Terragrunt, Kubernetes, Datadog, Keycloak, GrowthBook — คือโปรเจกต์ CloudDeploy ภาคต่อตามธรรมชาติที่นำ healthcheck, tracing และ auth ของคุณกลับมาใช้เป็นเรื่อง production สำหรับระบบชนิดที่ต่างออกไปโดยสิ้นเชิง Real-World Projects อื่น ๆ ของ Learn Hub — DevBlog, ShopMicro, FitTrack และ OfflineNotes — แต่ละตัวสร้างขึ้นแบบครบวงจร นี่คือจุดจบของ TaskFlow คุณสร้างขึ้นมาเองทั้งหมด ตอนนี้ก็เอาไปรัน ต่อยอด หรือลงมือสร้างตัวถัดไปได้เลย