RayClaude Cowork Course · SE TRACK

SE บทที่ 7 — ส่งของขึ้นจริงอย่างปลอดภัย · โค้ดเสร็จ ≠ งานเสร็จ

ใช้ปุ่ม ← → เปลี่ยนสไลด์ได้

SE TRACK — MODULE 7 · DELIVERY

ส่งของขึ้นจริงอย่างปลอดภัย — โค้ดเสร็จ ไม่ได้แปลว่างานเสร็จ

AI ทำฟีเจอร์เสร็จ แล้วรายงานว่า "CI is green — I'll deploy to production now" — ถ้าเรากด "โอเค" โดยไม่รู้ว่า production คือร้านจริงที่ลูกค้าใช้อยู่ตอนนี้ ของใหม่ที่ยังไม่เคยลองจะไปเจอลูกค้าเป็นคนแรก บทนี้สอนเส้นทางที่ของควรเดินทาง ก่อนถึงมือลูกค้า — และทางถอยเมื่อมันไปไม่รอด

ต่อจากบท SE6: เทสต์ผ่านแล้วยังไม่พอ — ของต้องผ่าน "สาขาซ้อม" ก่อนขึ้นร้านจริง และทุกการเปิดต้องมีสวิตช์ปิด

ทำไมต้องรู้

คิดแบบเปิดสาขาใหม่ — ไม่มีใครเปิดร้านโดยไม่ซ้อมก่อน

01ลูกค้าไม่ใช่หนูทดลอง

  • ร้านใหม่ต้อง soft opening — ให้พนักงานลองก่อน แล้วค่อยเปิดให้ลูกค้าบางส่วน
  • ซอฟต์แวร์ก็เหมือนกัน: ลองใน "สาขาซ้อม" ก่อน แล้วค่อยเปิดทีละส่วน (เดี๋ยวเจอชื่อจริงของแต่ละขั้นในบทนี้)

02ต้องมีทางถอยเสมอ

  • ร้านที่ดีมีแผน "ปิดปรับปรุงได้ใน 5 นาที" ถ้าของใหม่มีปัญหา
  • คนที่รู้ศัพท์กลุ่มนี้ ถามได้ว่า "ถ้าพัง ถอยกลับยังไง" ก่อนอนุมัติทุกครั้ง

03ประตูร้านต้องมียาม

  • ของขึ้นจริง = เปิดรับข้อมูลลูกค้าจริง — ต้องรู้ว่าใครเข้าได้ กุญแจเก็บที่ไหน
  • ศัพท์ security พื้นฐานในบทนี้ ทำให้เราตรวจงาน AI ด้านนี้ออก

MENTAL MODEL ประจำบท

"โค้ดเสร็จ ≠ งานเสร็จ — ของต้องผ่านสาขาซ้อมก่อนถึงลูกค้า และทุกการเปิดต้องมีทางถอย"

ศัพท์ชุดที่ 1 · สายพานก่อนออกจากครัว

Build · CI · Pipeline — ด่านตรวจอัตโนมัติ

BUILDแพ็คของใส่กล่อง

  • แปลงโค้ดที่คนเขียน ให้กลายเป็น "ของพร้อมติดตั้ง" — เหมือนแพ็คสินค้าใส่กล่องก่อนส่ง
  • AI: "the build passed"

CI · CONTINUOUS INTEGRATIONด่านตรวจทุกล็อต

  • ทุกครั้งที่มีโค้ดใหม่เข้ามา ระบบรวมงานแล้วรันเทสต์ (บท SE6) ให้อัตโนมัติ
  • นี่คือ "Checks" ที่เห็นบนหน้า PR ในบท SE5 — "CI is green" = ด่านตรวจอัตโนมัติผ่านครบ

PIPELINEสายพานหลายด่าน

  • ลำดับด่านที่ของต้องผ่านทีละขั้นอัตโนมัติ เช่น ตรวจโค้ด → เทสต์ → Build → ติดตั้ง
  • AI: "the pipeline failed at the test step" = ตกด่านเทสต์ ยังไปต่อไม่ได้

CD · CONTINUOUS DELIVERY/DEPLOYMENTพร้อมส่งเสมอ

  • Continuous Delivery = ของพร้อมปล่อยตลอดเวลา แต่รอคนกดอนุมัติก่อนขึ้นร้านจริง
  • Continuous Deployment = ผ่านทุกด่านแล้วขึ้นร้านจริงอัตโนมัติ — ควรรู้ว่าโปรเจกต์เราตั้งแบบไหน (ถาม AI ได้)

CI เขียว = เครื่องตรวจผ่าน — แต่เครื่องตรวจได้แค่สิ่งที่มีเทสต์ครอบไว้ ตาเรายังเป็นด่านสุดท้ายเสมอ

Mental model สำคัญที่สุดของบท

Environment — เส้นทางของของ จากครัวบ้าน ถึงสาขาจริง

LOCALครัวที่บ้าน

เครื่องของเรา/ของ AI — ทดลองได้เต็มที่ ไม่มีใครเห็น

DEVครัวรวมของทีม

ที่รวมงานทุกคนช่วงพัฒนา — พังได้ ไม่กระทบใคร

STAGINGสาขาซ้อม

เหมือนร้านจริงทุกอย่าง — แต่คนใช้คือพนักงาน ไม่ใช่ลูกค้า

PRODUCTION · PRODสาขาจริง

ระบบที่ลูกค้าใช้อยู่ตอนนี้ — พังที่นี่ = ลูกค้าเจอทันที

Deploy = เอาเวอร์ชันใหม่ไปติดตั้งในด่านถัดไป · กฎประจำบ้าน: ของที่ยังไม่เคยผ่าน Staging ห้ามขึ้น Production — เหมือนเมนูที่ยังไม่เคยให้พนักงานชิม ห้ามขึ้นหน้าร้าน

คู่ที่คนสับสนมากที่สุดของบท

Deploy ≠ Release — ยกของเข้าร้าน ยังไม่เท่ากับเปิดขาย

DEPLOYยกของเข้าร้าน

  • เอาโค้ดเวอร์ชันใหม่ไปติดตั้งบนระบบ — ของถึงร้านแล้ว แต่ลูกค้าอาจยังไม่เห็น
  • AI: "deployed successfully" — อย่าเพิ่งเข้าใจว่าลูกค้าเห็นแล้ว

RELEASEเปิดให้ลูกค้าใช้

  • เปิดฟีเจอร์ให้กลุ่มผู้ใช้เห็นและใช้งานจริง — ตัวนี้ต่างหากที่ลูกค้าสัมผัส
  • เครื่องมือคุม: Feature Flag = สวิตช์เปิด-ปิดเมนูใหม่โดยไม่ต้องปิดร้าน ไม่ต้อง deploy ใหม่
  1. 1
    Deploy ขึ้น Production 1 ครั้ง

    ของเข้าร้านแล้ว — แต่ Feature Flag ยังปิดอยู่ ลูกค้าไม่เห็นอะไรเลย

  2. 2
    เปิดสวิตช์ให้พนักงานภายใน

    soft opening รอบแรก — คนในลองใช้จริงบนร้านจริง

  3. 3
    เปิดให้ลูกค้า 10% CANARY RELEASE

    ปล่อยให้ลูกค้าส่วนน้อยก่อน ดูผลจริง — มีปัญหาก็กระทบแค่ 10%

  4. 4
    เปิดให้ลูกค้าทั้งหมด

    มั่นใจแล้วค่อยเปิดเต็ม — grand opening

สังเกต: Deploy เกิดครั้งเดียว แต่ Release เกิดเป็นลำดับหลายครั้ง — นี่คือวิธีส่งของแบบมืออาชีพ

ศัพท์ชุดที่ 2 · หลังเปิดร้าน

เปิดร้านแล้วยังไม่จบ — ต้องมีทางถอย และกล้องวงจรปิด

ทางถอยแผนปิดปรับปรุงใน 5 นาที

  • Rollback — ถอยกลับไปใช้เวอร์ชันก่อนหน้า · AI: "I'll roll back" — ถามเสมอว่า ข้อมูลที่เกิดระหว่างนั้นกระทบไหม (เช่น ออเดอร์ที่ลูกค้าสั่งไปแล้ว)
  • Rollforward — ไม่ถอย แต่รีบออกเวอร์ชันใหม่ที่แก้ปัญหาแทน
  • Hotfix — การแก้เร่งด่วนบนร้านจริง ลัดคิวงานปกติ — ใช้เมื่อจำเป็น ไม่ใช่ทุกวัน

เฝ้าระวังรู้ก่อนลูกค้าโวย (บท SE8 ลงลึกต่อ)

  • Monitoring — เฝ้าดูสุขภาพระบบตลอดเวลา เหมือนกล้องวงจรปิดของร้าน
  • Logs — สมุดบันทึกเหตุการณ์ทุกอย่างที่ระบบทำ — หลักฐานเวลาต้องสืบย้อน
  • Alert — สัญญาณเตือนอัตโนมัติเมื่อค่าผิดปกติ เช่น เว็บล่ม ออเดอร์ไม่เข้า
  • Incident — เหตุการณ์ที่กระทบลูกค้าจริง — คำที่ทีมใช้เรียก "เรื่องเข้าแล้ว"

คำถามทองก่อนอนุมัติขึ้นจริงทุกครั้ง: "ถ้าพังหลังเปิด เราจะรู้จากอะไร และถอยกลับยังไง" — ถ้า AI ตอบสองข้อนี้ไม่ได้ ยังไม่ควรขึ้น

ศัพท์ชุดที่ 3 · ยามกับกุญแจของร้าน

Security ขั้นต่ำที่เจ้าของร้านต้องตรวจเป็น

AUTHENTICATION · AUTHNยามเช็คบัตร

  • ตรวจว่า "คุณเป็นใคร" — เช่น login ด้วยรหัสผ่านหรือ LINE
  • AI: "users need to authenticate first"

AUTHORIZATION · AUTHZกุญแจห้อง

  • ตรวจว่า "คุณเข้าห้องไหนได้" — พนักงานดูสต๊อกได้ แต่แก้ราคาไม่ได้
  • ผ่านยามแล้ว ไม่ได้แปลว่าเข้าได้ทุกห้อง

API KEYกุญแจเรียกใช้บริการ

  • รหัสที่ระบบอื่นใช้ยืนยันตัวกับบริการ เช่น กุญแจเชื่อม LINE OA หรือระบบชำระเงิน
  • ใครได้กุญแจนี้ไป = สวมรอยเป็นร้านเราได้

SECRET MANAGEMENTตู้เซฟเก็บกุญแจ

  • ที่เก็บ API Key/รหัสลับแยกจากโค้ด — ห้ามฝังกุญแจในโค้ด เพราะโค้ดถูกแชร์และเก็บประวัติ (บท SE5)
  • AI: "the API key should go in secrets, not code" = ✅ อนุมัติเลย

PIIข้อมูลระบุตัวลูกค้า

  • ชื่อ เบอร์ ที่อยู่ อีเมล — ข้อมูลที่ชี้ตัวบุคคลได้ ระบบร้านค้าออนไลน์มีเต็มไปหมด
  • ห้ามให้หลุดลง Logs หรือส่งออกนอกระบบโดยไม่จำเป็น

PROMPT INJECTIONโจรพูดหลอกผู้ช่วย

  • ข้อความจากภายนอก (เช่น ข้อความลูกค้า) ที่พยายามสั่ง AI ให้ทำสิ่งที่ไม่ควร — ย้ำจากบท SE4
  • ระบบที่ให้ AI อ่านข้อความลูกค้า ต้องออกแบบกันเรื่องนี้เสมอ

จำคู่นี้ให้แม่น: AuthN = ยามเช็คบัตร (คุณเป็นใคร) · AuthZ = กุญแจห้อง (คุณเข้าห้องไหนได้)

⭐ หัวใจของบท

ตารางแปลภาษา AI — ได้ยินแบบนี้ ต้องทำยังไง

AI พูดว่ากำลังจะเกิดอะไรเราควรทำอะไร
"CI is green — all checks passed"ด่านตรวจอัตโนมัติผ่านครบทุกด่าน✅ ข่าวดี — แต่เครื่องตรวจได้แค่ที่มีเทสต์ครอบ ของใหญ่ยังต้องผ่าน Staging + ตาเรา
"I'll deploy to staging first"เอาของขึ้นสาขาซ้อมก่อน ลูกค้ายังไม่เห็น✅ ถูกทางที่สุด — ไปลองของจริงใน Staging แล้วค่อยตัดสินใจต่อ
"We can gate it behind a feature flag"ติดสวิตช์เปิด-ปิดฟีเจอร์ คุมได้ว่าใครเห็นเมื่อไหร่✅ ดีมาก — deploy ได้เลย แล้วค่อยเปิดเมื่อพร้อม ปิดได้ทันทีถ้ามีปัญหา
"I'll set up monitoring and alerts"ติดกล้องวงจรปิด + สัญญาณเตือนให้ระบบ✅ สนับสนุน — ถามต่อว่า "ถ้าเว็บล่ม เราจะรู้ภายในกี่นาที"
"I'll roll back to the previous version"ถอยกลับไปใช้เวอร์ชันเดิมก่อนหน้า🟡 โอเคในหลักการ — แต่ถามก่อน: ข้อมูลที่เกิดหลัง deploy กระทบไหม เช่น ออเดอร์ที่เข้ามาแล้ว
"The API key should go in secrets, not code"ย้ายกุญแจ API จากในโค้ดไปเก็บในตู้เซฟ✅ ถูกต้องที่สุด — อนุมัติทันที นี่คือ AI ที่ทำงานปลอดภัย
"I'll deploy straight to production" · "let's skip staging"ข้ามสาขาซ้อม เอาของที่ยังไม่เคยลองขึ้นร้านจริงเลย⚠️ หยุดก่อน — สั่งให้ผ่าน Staging ก่อน หรือให้อธิบายว่าทำไมจำเป็น + ทางถอยคืออะไร

สูตรจำเร็ว: ประโยคที่มี staging / feature flag / secrets / monitoring = ทิศทางปลอดภัย · ประโยคที่มี straight to production / skip staging = ยกมือถามก่อนเสมอ

กันหลงทาง

6 คู่ที่คนสับสนบ่อยที่สุด — และวิธีอ่านเลขเวอร์ชัน

คู่ศัพท์ต่างกันตรงไหน
Deploy vs ReleaseDeploy = ยกของเข้าร้าน (ติดตั้งเวอร์ชันใหม่) · Release = เปิดให้ลูกค้าใช้จริง — deploy ครั้งเดียว release ทีหลังกี่รอบก็ได้ผ่าน Feature Flag
Staging vs ProductionStaging = สาขาซ้อม เหมือนจริงทุกอย่างแต่ลูกค้าไม่เห็น · Production = สาขาจริงที่ลูกค้าใช้อยู่ตอนนี้
Rollback vs RollforwardRollback = ถอยกลับเวอร์ชันเดิม · Rollforward = ไม่ถอย แต่รีบออกเวอร์ชันใหม่ที่แก้ปัญหาแทน
Hotfix vs PatchHotfix = การแก้เร่งด่วนบน Production ลัดคิวงานปกติ · Patch = การแก้เล็ก ๆ ทั่วไป (และเป็นชื่อเลขตัวท้ายของเวอร์ชัน)
CI vs CDCI = รวมงาน + รันด่านตรวจอัตโนมัติทุกครั้งที่มีโค้ดใหม่ · CD = พาของที่ผ่านด่านไปสู่การปล่อยจริง (แบบรอคนอนุมัติ หรืออัตโนมัติ)
AuthN vs AuthZAuthN = ยามเช็คบัตร "คุณเป็นใคร" · AuthZ = กุญแจห้อง "คุณเข้าห้องไหนได้" — ผ่านยามแล้วไม่ได้แปลว่าเข้าได้ทุกห้อง

โบนัส — อ่านเลขเวอร์ชัน 2.4.1 = MAJOR.MINOR.PATCH: MAJOR เปลี่ยน = มีของเดิมที่ใช้ต่อไม่ได้ (breaking change — ต้องระวังสุด) · MINOR = เพิ่มความสามารถ ของเดิมใช้ได้ปกติ · PATCH = แก้บั๊กเล็กน้อย — เห็น AI บอก "this upgrade is a major version bump" = ชะลอไว้ถามก่อน

QUICK-CHECK · กดดูเฉลย

จริงหรือไม่? — เช็คก่อนปิดบท

1 · "Deploy แล้ว = ลูกค้าเห็นของใหม่ทันที"

ไม่จำเป็น — deploy คือยกของเข้าร้าน ถ้ามี Feature Flag ปิดอยู่ ลูกค้ายังไม่เห็นอะไรเลย · ทีมมืออาชีพ deploy ครั้งเดียว แล้วค่อย ๆ release ทีละกลุ่ม: พนักงาน → 10% → ทั้งหมด

2 · "ถ้าของพังหลังขึ้นจริง Rollback คือทางเดียว"

ไม่จริง — มีทั้ง Rollback (ถอยเวอร์ชันเดิม), Rollforward (ออกเวอร์ชันแก้ทันที) และปิด Feature Flag (เร็วสุดถ้าติดสวิตช์ไว้) · และก่อน rollback ต้องถามเรื่องข้อมูลที่เข้ามาระหว่างนั้นเสมอ

3 · "API Key ฝังในโค้ดได้ ถ้าโปรเจกต์เป็น private"

ไม่จริง — โค้ดถูกแชร์ ถูก clone และเก็บประวัติทุกเวอร์ชัน (บท SE5) กุญแจที่เคยฝังจะอยู่ในประวัติตลอดไป · ที่ถูกคือเก็บใน Secret Management แยกจากโค้ดเสมอ

KEY TAKEAWAY

Staging = สาขาซ้อม · Deploy = ยกของเข้าร้าน · Release = เปิดให้ลูกค้า · Feature Flag = สวิตช์เมนูใหม่ · Rollback = ถอยกลับ
กฎเหล็กประจำบท: "ของที่ไม่เคยผ่านสาขาซ้อม ห้ามเจอลูกค้า — และก่อนเปิดทุกครั้ง ต้องรู้ทางถอย"

1 / 10