บทความนี้จะแนะนำการสร้าง Staging Environment สำหรับ QA Team บน Cloud VPS โดยจะครอบคลุมการตั้งค่าเซิร์ฟเวอร์ที่เหมือนกับ Production เพื่อให้ QA สามารถทดสอบได้อย่างมั่นใจก่อนการ Deploy ไปยัง Production
ทำไมจึงต้องมี Staging Environment
Staging Environment คือสภาพแวดล้อมที่มีลักษณะเหมือนกับ Production แต่ใช้สำหรับทดสอบก่อนการ Deploy จริง ทำให้:
- ทดสอบ Features ใหม่ก่อนไปยัง Production
- ตรวจสอบ Performance และ Load Balancing
- ตรวจสอบ Database Migration
- ทดสอบ Integration ระหว่าง Services
- ลดความเสี่ยงของ Down Time
สิ่งที่ต้องเตรียม
- Cloud VPS 2 เครื่อง (สำหรับ Staging + Production)
- Docker และ Docker Compose สำหรับ Container
- CI/CD Tool (GitHub Actions, Jenkins, GitLab CI)
- Load Balancer (Nginx)
- Git Repository
1. ตั้งค่า Cloud VPS สำหรับ Staging
สร้าง VPS ใหม่ที่มี Spec เดียวกับ Production และติดตั้ง OS เดียวกัน (Ubuntu 20.04 LTS หรือ 22.04 LTS)
2. ติดตั้ง Docker และ Docker Compose
บนเซิร์ฟเวอร์ Staging ให้ติดตั้ง Docker และ Docker Compose เพื่อให้สามารถรัน Container เหมือน Production
3. ตั้งค่า CI/CD Pipeline
ตั้งค่า GitHub Actions หรือ CI/CD Tool อื่นให้ Deploy โค้ดไปยัง Staging ทุกครั้งที่มี Commit ไปยัง Branch staging
4. ตั้งค่า Database Staging
สร้าง Database ที่เป็นสำเนาของ Production เพื่อให้ QA สามารถทดสอบ Data Scenarios ต่างๆได้
5. ตั้งค่า Load Balancer
ใช้ Nginx เป็น Load Balancer สำหรับกระจายโหลด HTTP requests ไปยัง Backend Servers หลายตัว
Docker Compose สำหรับ Staging
สร้าง docker-compose.yml ที่กำหนด Services ต่างๆ:
version: '3.8'
services:
web:
image: node:18-alpine
ports:
- "3000:3000"
environment:
- NODE_ENV=staging
- DATABASE_URL=postgresql://user:pass@db:5432/app_staging
depends_on:
- db
volumes:
- ./app:/app
working_dir: /app
command: npm start
db:
image: postgres:15-alpine
environment:
- POSTGRES_USER=user
- POSTGRES_PASSWORD=pass
- POSTGRES_DB=app_staging
volumes:
- staging_db_data:/var/lib/postgresql/data
volumes:
staging_db_data:
สรุป
การสร้าง Staging Environment เป็นสิ่งสำคัญในการ Deploy Application ที่ปลอดภัย โดยช่วยให้ QA Team สามารถทดสอบได้อย่างสมบูรณ์ก่อนการ Deploy ไปยัง Production จากบริการ Cloud VPS ของ ผู้ให้บริการโฮสติ้ง คุณสามารถสร้างสภาพแวดล้อมนี้ได้ง่ายและปลอดภัย
