Go-live: เช็กลิสต์ตรวจเซิร์ฟเวอร์ให้พร้อมก่อนเปิดระบบจริง

เช็กลิสต์ Go-live ก่อนเปิดระบบบนเซิร์ฟเวอร์ใหม่ ตรวจความปลอดภัย Backup ที่กู้ได้ Monitoring DNS และ SSL ทดสอบโหลดด้วย k6 เกณฑ์ Go/No-go และแผนถอยกลับ

โดย ทีมงาน THAI DATA CLOUD อ่าน 12 นาที

แชร์FacebookXLINELinkedIn
Go-live — Go-live: เช็กลิสต์ตรวจเซิร์ฟเวอร์ให้พร้อมก่อนเปิดระบบจริง
Go-live: เช็กลิสต์ตรวจเซิร์ฟเวอร์ให้พร้อมก่อนเปิดระบบจริง

คำตอบสั้น ๆ: เช็กลิสต์ Go-live ก่อนเปิดระบบบนเซิร์ฟเวอร์ใหม่ ตรวจความปลอดภัย Backup ที่กู้ได้ Monitoring DNS และ SSL ทดสอบโหลดด้วย k6 เกณฑ์ Go/No-go และแผนถอยกลับ

คู่มือนี้อธิบาย Go-live ทีละขั้นตอน พร้อมคำสั่งที่ใช้ได้จริงและปัญหาที่พบบ่อย

Go-live คือช่วงที่ระบบบนเซิร์ฟเวอร์ใหม่เริ่มรับผู้ใช้จริง เช่น เปิดเว็บร้านค้าใหม่ ย้าย ERP ขึ้นคลาวด์ หรือสลับ DNS จากเครื่องเก่ามาเครื่องใหม่ ปัญหาที่เกิดในวัน Go-live ส่วนใหญ่ไม่ใช่เรื่องยาก แต่เป็นเรื่องที่ไม่มีใครตรวจ เช่น ใบรับรอง SSL ไม่ครอบคลุมโดเมน www, Backup ยังไม่เคยกู้ หรือการแจ้งเตือนส่งไปที่อีเมลที่ไม่มีใครเปิด

คู่มือนี้เป็นเช็กลิสต์ Go-live สำหรับผู้ดูแลระบบและหัวหน้าโครงการ ใช้ได้ทั้ง Linux และ Windows Server เมื่อทำครบ คุณจะมีเซิร์ฟเวอร์ที่ผ่านการตรวจความปลอดภัย มี Backup ที่กู้ได้จริง มีการแจ้งเตือนที่ไปถึงคน มี DNS และ SSL ที่ทดสอบก่อนสลับ ผ่านการทดสอบโหลด มีเกณฑ์ตัดสิน Go-live หรือเลื่อน มีแผนถอยกลับ และรู้ว่าต้องติดต่อใครเมื่อมีปัญหา

สิ่งที่ต้องเตรียม

  • วันและเวลา Go-live ที่ผู้บริหารและเจ้าของระบบอนุมัติ ควรเป็นช่วงที่ผู้ใช้น้อย และไม่ใช่วันศุกร์เย็นหรือก่อนวันหยุดยาว
  • รายการ URL, โดเมน, IP, พอร์ต และบริการทั้งหมดของระบบ รวมถึงระเบียน DNS ปัจจุบัน
  • สิทธิ์ผู้ดูแลเซิร์ฟเวอร์ สิทธิ์แก้ DNS และสิทธิ์ในพอร์ทัลของผู้ให้บริการคลาวด์
  • ผลทดสอบการทำงานจากผู้ใช้หลัก (UAT) ที่ผ่านแล้วบนเครื่องใหม่
  • ข้อความแจ้งผู้ใช้สำหรับก่อน ระหว่าง และหลัง Go-live
เส้นเวลาเตรียม Go-live ตั้งแต่ทดสอบโหลดล่วงหน้าหนึ่งสัปดาห์ ลด TTL ประชุม Go/No-go วันสลับระบบ จนถึงทบทวนหลังเจ็ดวัน
งานส่วนใหญ่ของ Go-live ต้องเสร็จก่อนวันจริง วันสลับระบบควรเหลือแค่ทำตามรายการ

ขั้นตอนที่ 1: ตรวจความปลอดภัยของเซิร์ฟเวอร์

เครื่องที่เปิดสู่อินเทอร์เน็ตจะถูกสแกนภายในไม่กี่นาทีหลังได้ IP สาธารณะ ก่อน Go-live ให้ตรวจอย่างน้อยรายการเหล่านี้

sudo apt update && apt list --upgradable          # ต้องไม่เหลือ Security update ค้าง
sudo ss -tlnp                                        # พอร์ตที่เปิดฟังอยู่ทั้งหมด
sudo sshd -T | grep -Ei '^(passwordauthentication|permitrootlogin)'
sudo systemctl --failed
  • เปิดเฉพาะพอร์ตที่ระบบต้องใช้ เช่น 80 และ 443 พอร์ตจัดการอย่าง SSH, RDP และฐานข้อมูลให้จำกัด IP ต้นทาง ถ้าใช้ THAI DATA CLOUD ตั้งได้ที่ Security Group
  • SSH ใช้คีย์ ปิดการล็อกอินด้วยรหัสผ่าน รายการเต็มของ Linux อยู่ใน เช็กลิสต์ความปลอดภัยหลังเปิด Linux Server ใหม่ ส่วน Windows ดู Windows Server Hardening
  • ลบบัญชีทดสอบ รหัสผ่านเริ่มต้นของแอป และหน้า phpinfo หรือหน้าติดตั้งที่ค้างอยู่
  • เปิด 2FA ให้บัญชีพอร์ทัลคลาวด์และบัญชีผู้ดูแลแอป

ขั้นตอนที่ 2: ยืนยันว่า Backup กู้ได้จริงก่อน Go-live

Backup รอบแรกต้องเกิดขึ้นก่อนวัน Go-live ไม่ใช่หลังจากนั้น และต้องลองกู้แล้ว ตรวจสามเรื่อง คือ งานสำรองรันตามเวลาและสำเร็จ ชุดสำรองมีทั้งฐานข้อมูล ไฟล์อัปโหลด และค่าตั้งระบบ และกู้ขึ้นเครื่องทดสอบได้ภายในเวลาที่เจ้าของระบบยอมรับ วิธีวางแผนทั้งหมดอยู่ใน คู่มือ Backup Plan ตามกฎ 3-2-1

ก่อนเริ่มสลับระบบในวัน Go-live ให้สั่ง Backup พิเศษอีกหนึ่งรอบทั้งเครื่องเดิมและเครื่องใหม่ ชุดนี้คือจุดถอยกลับถ้าการย้ายข้อมูลรอบสุดท้ายผิดพลาด

ขั้นตอนที่ 3: ตั้ง Monitoring ก่อน Go-live และทดสอบว่าการแจ้งเตือนถึงคน

  • ภายนอก: ตรวจ URL หลักจากนอกเครือข่ายทุก 1–5 นาที แจ้งเมื่อเว็บล่มหรือตอบช้า ตาม คู่มือตั้งระบบแจ้งเตือนเมื่อเว็บไซต์ล่ม
  • ทรัพยากร: ดิสก์ใกล้เต็ม RAM หมด CPU ค้างสูง ดูได้จากกราฟ Monitoring ของแพลตฟอร์มหรือเครื่องมือที่ติดตั้งเอง
  • งานตั้งเวลา: Backup และงาน cron สำคัญต้องแจ้งเมื่อไม่ทำงานตามเวลา
  • ใบรับรอง: แจ้งก่อน SSL หมดอายุอย่างน้อย 14 วัน

ทดสอบให้การแจ้งเตือนเกิดจริงอย่างน้อยหนึ่งครั้ง เช่น หยุด Nginx บนเครื่องใหม่ก่อน Go-live สองนาที แล้วดูว่ามีข้อความเข้าโทรศัพท์ของคนเวรหรือไม่ การแจ้งเตือนที่ส่งไปกล่องอีเมลรวมที่ไม่มีใครเปิดเท่ากับไม่มี

ขั้นตอนที่ 4: ทดสอบ DNS และ SSL ก่อนวัน Go-live

ลด TTL ของระเบียนที่จะเปลี่ยนเหลือ 300 วินาทีล่วงหน้าอย่างน้อยเท่ากับ TTL เดิม (ถ้าเดิมเป็น 86400 ให้ลดก่อนหนึ่งวัน) ตาม คู่มือ TTL และการย้าย DNS จากนั้นทดสอบเครื่องใหม่ด้วยโดเมนจริงโดยไม่ต้องรอเปลี่ยน DNS ด้วยตัวเลือก --resolve ของ curl

curl -sI --resolve www.example.com:443:203.0.113.10 https://www.example.com/
curl -sI --resolve example.com:80:203.0.113.10 http://example.com/      # ต้อง Redirect ไป HTTPS
echo | openssl s_client -connect 203.0.113.10:443 -servername www.example.com 2>/dev/null | openssl x509 -noout -dates -ext subjectAltName
dig +short www.example.com A @1.1.1.1
ผลคำสั่ง curl --resolve ที่ทดสอบ HTTPS และ Redirect ของเครื่องใหม่ก่อน Go-live และวันหมดอายุของใบรับรอง
--resolve ส่งคำขอไป IP ใหม่ด้วยชื่อโดเมนจริง จึงทดสอบ SSL และ Redirect ได้ก่อนแก้ DNS

ตรวจว่าใบรับรองครอบคลุมทุกชื่อที่ผู้ใช้เข้า ทั้งมีและไม่มี www วันหมดอายุยังอีกนาน และตั้งต่ออายุอัตโนมัติแล้ว วิธีอ่านค่าใบรับรองอยู่ใน คู่มือตรวจสอบ SSL Certificate ตอนแก้ DNS ให้แตะเฉพาะระเบียนของเว็บ อย่าแก้ MX, SPF หรือ TXT ของอีเมลถ้าไม่ได้ย้ายระบบอีเมลด้วย

ขั้นตอนที่ 5: ทดสอบโหลดก่อน Go-live

ทดสอบว่าเครื่องใหม่รับผู้ใช้พร้อมกันตามที่คาดได้ โดยยิงไปที่เครื่องทดสอบหรือเครื่องใหม่ก่อนเปิดจริง ห้ามยิงใส่ระบบที่มีผู้ใช้อยู่ และถ้าจะยิงจากภายนอกด้วยปริมาณสูง ให้แจ้งผู้ให้บริการคลาวด์ก่อน เพราะทราฟฟิกอาจถูกมองว่าเป็นการโจมตี ตัวอย่างนี้ใช้ k6 ผ่าน Docker (ดู เอกสาร Grafana k6)

// load-test.js
import http from 'k6/http';
import { check, sleep } from 'k6';

export const options = {
  stages: [
    { duration: '2m', target: 50 },
    { duration: '5m', target: 50 },
    { duration: '1m', target: 0 },
  ],
  thresholds: {
    http_req_failed: ['rate<0.01'],
    http_req_duration: ['p(95)<800'],
  },
};

export default function () {
  const res = http.get('https://staging.example.com/');
  check(res, { 'status is 200': (r) => r.status === 200 });
  sleep(1);
}
docker run --rm -i grafana/k6 run - <load-test.js

ระหว่างทดสอบให้เปิดดู CPU, RAM และ Log ของเครื่องไปพร้อมกัน ถ้า k6 แจ้งว่า threshold ไม่ผ่าน หรือ Log มี Error 502 และ 504 ให้แก้ก่อน Go-live ตัวเลข 50 ผู้ใช้และ 800 มิลลิวินาทีเป็นตัวอย่าง ให้ตั้งจากจำนวนผู้ใช้พร้อมกันจริงช่วงพีกบวกส่วนเผื่อ

ขั้นตอนที่ 6: เขียนเกณฑ์ Go/No-go แผนถอยกลับ และรายชื่อติดต่อ

ตกลงล่วงหน้าว่าอะไรคือเหตุให้เลื่อน Go-live และอะไรคือเหตุให้ถอยกลับหลังสลับแล้ว เพื่อไม่ต้องถกเถียงตอนตีสอง

ตารางเกณฑ์ Go/No-go ก่อน Go-live ในเรื่อง UAT, Backup, ทดสอบโหลด, DNS และ SSL และความพร้อมของทีม
ตกลงเกณฑ์ไว้ก่อนวันจริง เมื่อข้อใดเข้าคอลัมน์ขวาให้เลื่อนโดยไม่ต้องถกเถียง
  • แผนถอยกลับ: เครื่องเดิมยังอยู่ครบและปิดการเขียนข้อมูลไว้ ขั้นตอนถอยคือแก้ DNS กลับไป IP เดิม เวลาที่ใช้ถอยประมาณเท่าไร และข้อมูลที่เกิดบนเครื่องใหม่ระหว่างนั้นจะย้ายกลับอย่างไร
  • เส้นตาย: กำหนดเวลาตัดสินใจ เช่น ถ้าตรวจรับไม่ผ่านภายใน 02:00 ให้ถอยกลับทันที
  • รายชื่อติดต่อ: ผู้ตัดสินใจ ผู้ดูแลเซิร์ฟเวอร์ ผู้ดูแลแอป ผู้ดูแล DNS ผู้ขายซอฟต์แวร์ และช่องทางแจ้งผู้ให้บริการคลาวด์ ลูกค้า THAI DATA CLOUD เปิดเรื่องได้ทาง Ticket บน TDC Enterprise ให้ทดลองล็อกอินพอร์ทัลก่อนวันจริง
  • ช่วงห้ามแก้ไข: งดเปลี่ยนแปลงอื่นที่ไม่เกี่ยวข้อง 1–2 วันก่อนและหลัง Go-live

ขั้นตอนที่ 7: ทำ Go-live และเฝ้าดู 24 ชั่วโมงแรก

  1. แจ้งผู้ใช้ตามเวลาที่ประกาศ หยุดการเขียนข้อมูลบนเครื่องเดิม ย้ายข้อมูลรอบสุดท้าย
  2. เปลี่ยน DNS แล้วตรวจจาก DNS สาธารณะหลายแห่ง ใช้ dig ถาม 1.1.1.1 และ 8.8.8.8
  3. ให้ผู้ใช้หลักทดสอบตามรายการ UAT ชุดเดิม ผ่านแล้วจึงประกาศเปิดระบบ
  4. เฝ้าดู Log ช่วงแรกด้วย sudo journalctl -f และ sudo tail -f /var/log/nginx/error.log (หรือ Event Viewer บน Windows)
  5. หลังผ่าน 24 ชั่วโมงและ 7 วัน ทบทวนกราฟทรัพยากร ปรับ TTL กลับเป็นค่าปกติ ปิดสิทธิ์ชั่วคราวที่เปิดไว้ช่วงย้าย และบันทึกสิ่งที่เรียนรู้
เช็กลิสต์รอบสุดท้ายในคืน Go-live ตั้งแต่ Backup พิเศษ การทดสอบ UAT การแจ้งเตือน จนถึงเครื่องเดิมที่ยังรับข้อมูล
ทำทีละข้อตามลำดับ และหยุดตามเส้นตายถอยกลับที่ตกลงไว้

ปัญหาที่พบบ่อยเกี่ยวกับ Go-live

เปลี่ยน DNS แล้ว ผู้ใช้บางคนยังเข้าเครื่องเก่า ทำไม?

อุปกรณ์และ DNS ของผู้ให้บริการอินเทอร์เน็ตยังจำค่าเดิมไว้ตาม TTL เก่า ถ้าไม่ได้ลด TTL ล่วงหน้า อาจใช้เวลาหลายชั่วโมงถึงหนึ่งวัน ระหว่างนั้นให้เครื่องเก่าแสดงหน้าแจ้งย้ายระบบหรือส่งต่อไปเครื่องใหม่ แทนการรับข้อมูลต่อ

Go-live วันศุกร์ได้ไหม?

ทำได้ถ้าทีมพร้อมทำงานต่อในวันเสาร์ แต่ไม่แนะนำ เพราะถ้ามีปัญหา ผู้ขายซอฟต์แวร์และผู้ตัดสินใจมักติดต่อยาก ช่วงที่เหมาะคือเย็นวันอังคารถึงพฤหัสบดีนอกช่วงงานหนักของธุรกิจ

ไม่มีเวลาทดสอบโหลด ข้ามได้หรือไม่?

สำหรับระบบภายในที่ผู้ใช้ไม่กี่สิบคนพอรับได้ แต่ระบบที่เปิดให้ลูกค้าภายนอกหรือมีแคมเปญรออยู่ไม่ควรข้าม อย่างน้อยให้ทดสอบสั้น ๆ 5–10 นาทีที่จำนวนผู้ใช้เท่าช่วงพีก เพื่อหาค่าที่ตั้งผิด เช่น จำนวน worker หรือ connection ของฐานข้อมูล

หลัง Go-live ควรเก็บเครื่องเก่าไว้นานเท่าไร?

อย่างน้อยจนผ่านรอบงานสำคัญรอบแรกบนระบบใหม่ เช่น ปิดยอดสิ้นเดือน โดยทั่วไป 2–4 สัปดาห์ ระหว่างนั้นปิดเครื่องไว้หรือตั้งเป็นอ่านอย่างเดียว แล้วสำรองชุดสุดท้ายก่อนยกเลิก

ถ้าต้องการให้ทีมช่วยตรวจเช็กลิสต์ Go-live หรืออยู่เวรร่วมในคืนสลับระบบ ติดต่อทีมงาน THAI DATA CLOUD หรือดูรายละเอียดบริการ Cloud Server

อ่านเพิ่มเติมเกี่ยวกับ Go-live

แชร์FacebookXLINELinkedIn

มีคำถามเรื่องบริการ? ติดต่อทีมงาน