Volume 14 · Operational Runbooks
วัตถุประสงค์ของ Volume
Volume นี้เป็นคู่มือทีมปฏิบัติการ (operations / on-call) ใช้ดูแลระบบ VTRC ในขณะรันจริง ทุกบทระบุคำสั่งที่ใช้งานได้ทันที — restart service, deploy เวอร์ชันใหม่, debug ปัญหาที่เกิดซ้ำ, และ recover จาก failure
ผู้อ่านที่คาดไว้
- ทีมปฏิบัติการที่ดูแล server และมีสิทธิ SSH เข้าเครื่อง production
- นักพัฒนาที่ต้องช่วย debug ปัญหาฝั่ง production ในเวลาเร่งด่วน
- ผู้ดูแลระบบใหม่ที่เข้ามารับตำแหน่งและต้องเข้าใจระบบอย่างรวดเร็ว
ผู้อ่านควรมีความรู้พื้นฐานเรื่อง Docker, docker-compose, Linux shell, SQL, และ Redis
วิธีใช้ Volume นี้
- ปกติ — เริ่มจากบท 13.1 (Service inventory) เพื่อรู้ว่ามี service ใดบ้าง, port ใด, log ที่ไหน
- ตอนเกิดเหตุ — ไปที่บท 13.8 (Debug playbooks) ซึ่งรวมสถานการณ์ที่พบบ่อยและขั้นตอนแก้ไข
- ก่อน deploy — อ่านบท 13.3 (Deploy) เพื่อรู้ขั้นตอนและ rollback path
- เตรียมตัวล่วงหน้า — บท 13.5 (Database), 13.6 (Redis), 13.9 (SSL), 13.10 (Backup) ควรอ่านและทดลองใน UAT ก่อนเกิดเหตุจริง
สิ่งที่จำเป็นต้องมีก่อนเริ่มงาน
- สิทธิ SSH เข้า production server และ UAT server
- สิทธิ sudo หรือ root บนบางคำสั่ง (เช่น docker, docker-compose)
- กุญแจ SSH ที่ลงทะเบียนใน server
- สิทธิเข้าถึง GCP project
vtrc-nonprodสำหรับ pull image - สิทธิเข้าถึง Bitbucket repository สำหรับดู commit history
- หมายเลขโทรศัพท์ของผู้ประสานงานฐานข้อมูล, ผู้ดูแล LDAP, และผู้ดูแล network
ขอบเขตที่ครอบคลุม
- การดำเนินการรายวัน — start, stop, restart service
- การ deploy เวอร์ชันใหม่สำหรับทั้ง 5 services
- การอ่าน log และค้นหาต้นตอของปัญหา
- การจัดการ database (MariaDB, MSSQL) และ Redis
- การจัดการ user, session, JWT
- debug playbook สำหรับ 10 สถานการณ์ที่พบบ่อย
- การจัดการใบรับรอง SSL
- การดูแล disk, backup, recovery
ขอบเขตที่ไม่ครอบคลุม
- การตั้งค่า infrastructure ตั้งแต่ต้น — อยู่ใน Volume 12 (Infrastructure & Deployment)
- รายละเอียดทางสถาปัตยกรรม — อยู่ใน Volume 2 (Architecture & Topology)
- รายละเอียดช่องโหว่ด้านความปลอดภัย — อยู่ใน Volume 9 (Security & Authentication)
- การวางแผนปรับปรุงระบบ — อยู่ใน Volume 15 (Modernization Plan)
คำเตือนที่สำคัญ
Volume นี้อ้างถึงคำสั่งและ path ที่ใช้จริงใน production ผู้อ่านต้อง:
- ทดลองใน UAT ก่อนเสมอ ถ้าเป็นไปได้ — โดยเฉพาะคำสั่งที่แก้ไขข้อมูล
- สำรองข้อมูลก่อน ทำการเปลี่ยนแปลงใด ๆ ที่กระทบ schema
- แจ้งผู้ใช้ล่วงหน้า ถ้าต้อง restart service ที่อาจทำให้ระบบไม่พร้อมใช้งานชั่วคราว
- บันทึกการกระทำ ทุกครั้งที่ทำการเปลี่ยนแปลง — ใคร, เมื่อใด, ทำอะไร, ผลอย่างไร
สถานะพื้นฐานของระบบที่ทีมต้องรู้
| ข้อเท็จจริง | ผลกระทบต่อการดำเนินงาน |
|---|---|
| Node runtime ทุกตัวเลย End of Life | ความเสี่ยงด้านความปลอดภัย ต้องวางแผนยกระดับ |
| ไม่มี health check endpoint | ต้องตรวจสอบสถานะ service ด้วยตนเองผ่าน log และ curl |
| ไม่มี log aggregation | ต้อง SSH เข้าทุก host เพื่ออ่าน log |
| ไม่มี CI/CD สำหรับ 3 repos | การ deploy ทำด้วยมือทุกขั้นตอน |
| ใช้ docker-compose ไม่ใช่ Kubernetes | การยกเครื่อง infrastructure ต้องวางแผนระยะยาว |
โครงสร้าง Volume
- บท 13.1 เป็นหน้าอ้างอิงเร็ว — ควร bookmark หรือ print ไว้
- บท 13.2–13.3 คืองานปกติที่ทำบ่อย
- บท 13.4–13.7 คืองานที่ต้องทำตอน debug หรือจัดการ configuration
- บท 13.8 คือส่วนสำคัญที่สุดสำหรับเวลาเร่งด่วน — debug playbooks
- บท 13.9–13.11 คืองานที่ต้องวางแผนล่วงหน้า