บทความนี้เล่าเส้นทางทั้งหมด ตั้งแต่ AI ของเราได้ชุดคำสั่งสอนใช้ Vercel มา จนถึงวันที่บล็อกที่คุณกำลังอ่านอยู่ขึ้น production เป็นเรื่องเดียวที่ร้อยทุกบทความก่อนหน้าเข้าด้วยกัน
จุดเริ่ม: AI ได้คู่มือสอน deploy
ทุกอย่างเริ่มจากการติดตั้ง agent-skills ของ Vercel 9 ตัว ตั้งแต่ deploy-to-vercel และ vercel-cli-with-tokens ยัน vercel-optimize พร้อม Vercel CLI กับ Vercel MCP พูดง่ายๆ คือ AI ของเราอ่านคู่มือ deploy เป็นก่อน แล้วค่อยลงมือทำ
ทักษะที่ติดตัวมาตั้งแต่วันนั้น ทั้ง deploy แบบ staging-first วินัย verify ด้วยข้อมูลจริง และแผน rollback คือสิ่งที่ใช้ซ้ำในทุกงานหลังจากนั้น รวมถึงบล็อกนี้
บทแรก: พาแอปที่ไม่ได้เกิดมาเพื่อ cloud ขึ้นไป
งานแรกคือ ANA แอปที่ผูกกับเครื่องตัวเองทุกชั้น ทั้ง tmux ทั้งไฟล์ state ผลคือชนกำแพงทุกอย่างที่เล่าไปในซีรีส์ ANA ตั้งแต่ login ที่อยู่คนละ security context ระหว่าง terminal ของคนกับ shell ของ agent ไปจนถึง endpoint ขอ preview แบบไม่ login ที่เลิกใช้ไปแล้ว
และที่สำคัญที่สุดคือการค้นพบว่า Vercel CLI รุ่นใหม่ใช้โมเดล backend entrypoint เดียว ไม่ใช่ api/*.js แบบที่คุ้นเคย
ทางออกคือ adapter บางๆ ครอบโค้ดเดิมโดยไม่แตะมัน bundle ไลบรารี ESM เป็น CJS ล่วงหน้า inline ไฟล์ static เอง แล้วให้ state ไปอยู่บน /tmp
งานทั้งหมดใช้เวลาประมาณ 4 ชั่วโมง ตั้งแต่ setup จน promote ขึ้น production แล้วรื้อถอนคืนทั้งหมด
สองเรื่องที่วินิจฉัยผิด
บันทึก retrospective ของงานนี้ซื่อสัตย์มาก ระบุว่าวินิจฉัยผิดแบบมั่นใจไปสองรอบ รอบแรกคือทึกทักว่าเป็นโมเดล functions แบบเก่า จนเสีย deploy ไป 4 รอบกว่าจะยอมอ่านซอร์สตัว builder รอบที่สองคือโทษ platform เรื่อง POST ไม่ผ่าน ทั้งที่เป็น vercel curl ประกอบคำสั่งพังเอง
บทเรียนที่ได้คือให้อ่านโค้ดของ platform ตั้งแต่รอบที่สองที่พังแบบอธิบายไม่ได้ และตรวจ error ฝั่ง client ด้วย curl ธรรมดาก่อนตั้งทฤษฎีเสมอ
จากซากสู่บล็อกนี้
งาน ANA จบด้วยการรื้อ Vercel project ทิ้ง แต่ทิ้งทักษะไว้ พอถึงตาสร้างบล็อกนี้ งานกลับด้านกัน เพราะบล็อก Next.js แบบ static คือสิ่งที่เกิดมาเพื่อ Vercel อยู่แล้ว ผลคือ deploy รอบเดียวผ่าน
ผูกโดเมน blog.ipv9.xyz ตามกฎของทีมที่ใช้โดเมนตัวเองแทน *.vercel.app และเปิด public ได้เลยเพราะรู้ล่วงหน้าว่า Deployment Protection คือด่านที่ต้องจัดการก่อนแชร์ลิงก์
เรื่องนี้สอนอย่างเดียวกับที่ ANA สอน เครื่องมือไม่ได้แทนประสบการณ์ แต่ประสบการณ์ที่ถูกบันทึกไว้ ทั้ง CHANGES.log บันทึกกับดัก 9 ข้อ และ retrospective ทำให้งานที่สองเร็วกว่างานแรกหลายเท่า บล็อกนี้จึงไม่ใช่แค่ที่เผยแพร่ความรู้ แต่คือผลผลิตของความรู้นั้นเอง