0
Done
0
Remaining
0
Critical Done
0%
Complete
1. Project Readiness & PM 0/0
ALL General
ได้รับ SOW / TOR / Requirements อย่างเป็นทางการแล้ว
มี signed document หรือ email confirmation จาก client
PMCritical
กำหนด Project Lead และ Technical Owner ชัดเจน
ระบุชื่อ PM, Tech Lead, และ Client PIC ใน ClickUp
PM
สร้าง ClickUp Space / Project พร้อม task breakdown ครบ
ใช้ UNIXDEV task template — Infrastructure / App / Security
PMOPS
กำหนด timeline, milestones และ cutoff date ชัดเจน
PM
แจ้ง deployment window ให้ client อนุมัติแล้ว
มี maintenance window ที่ตกลงกันแล้ว — วันเวลา, impact scope
PMCritical
กำหนด rollback plan และ go/no-go criteria ไว้แล้ว
PMCritical
ทำ risk assessment เบื้องต้น — identify blockers ก่อน deploy
PM
Team briefing เสร็จสมบูรณ์ — ทุกคนรู้บทบาทตัวเอง
PMOPS
มี emergency contact list — client, vendor, on-call engineer
PMCritical
2. New Client Onboarding — Kubernetes Namespace 0/0
ALL Namespace & RBAC Setup
สร้าง Namespace ด้วยชื่อ convention ที่ถูกต้อง
e.g. client-prod, client-staging — ห้ามใช้ default namespace
InfraCritical
ตั้ง Resource Quotas และ LimitRange ให้ Namespace
กำหนด CPU, Memory limit ป้องกัน noisy neighbor บน shared cluster
kubectl apply -f namespace-quota.yaml
InfraCritical
สร้าง ServiceAccount และ RBAC Role/RoleBinding
Least-privilege principle — แยก SA สำหรับ app, CI/CD, monitoring
SecurityCritical
ตั้ง Network Policy — isolate namespace จาก client อื่น
Default deny ingress/egress — อนุญาตเฉพาะ required traffic
SecurityCritical
Kyverno Policy ผ่านทั้งหมด — ตรวจ compliance ก่อน deploy
ตรวจ: no-latest-tag, require-labels, require-probes, disallow-privilege
Security
กำหนด Labels ครบ — client, environment, team, version
ใช้ labels สำหรับ Zabbix discovery และ Grafana dashboard filtering
OPS
CLOUD Cloud-Specific
IAM Role / Service Account สำหรับ cloud services configured
AWS IRSA / GKE Workload Identity / Azure Workload Identity ตั้งค่าถูกต้อง
SecurityInfra
Cloudflare DNS / Zero Trust Access configured สำหรับ client domain
Tunnel, Access Policy, SSL mode ตั้งค่าถูกต้อง
SecurityInfra
Storage bucket / PVC provisioned และ access policy ถูกต้อง
Infra
Harbor registry project สร้างแล้ว — image pull secret ใส่ใน namespace
InfraApp
ON-PREM On-Premise Specific
VLAN / Network segment สร้างแล้ว และ routing ถูกต้อง
InfraCritical
Storage class (Ceph/NFS/Local-Path) verified — provisioner ทำงาน
Infra
Internal DNS record สร้างและ resolve ถูกต้อง
Infra
MetalLB / Load Balancer IP Pool configured สำหรับ Service LoadBalancer
Infra
3. Infrastructure Provisioning 0/0
ALL Kubernetes Cluster Health
Cluster nodes ทั้งหมด Ready — ไม่มี NotReady / Tainted nodes
kubectl get nodes -o wide
InfraCritical
Ingress Controller (NGINX) ทำงานปกติ — ตรวจ cert-manager
kubectl get pods -n ingress-nginx
Infra
CoreDNS ทำงานปกติ — DNS resolution ใน cluster ถูกต้อง
Infra
Persistent Volume Claims (PVCs) ทั้งหมด Bound แล้ว
kubectl get pvc -n <namespace>
Infra
Resource usage ของ cluster ไม่เกิน 70% — มี headroom พอ
kubectl top nodes
InfraCritical
ALL Database (MariaDB / PostgreSQL)
Database instance provisioned — schema และ user สร้างแล้ว
InfraCritical
HA setup verified — MariaDB Galera / replication ทดสอบ failover แล้ว
InfraCritical
Backup ตั้งค่าแล้ว — ทดสอบ restore procedure สำเร็จ
InfraCritical
Connection pool (ProxySQL / MaxScale) configured ถูกต้อง
Infra
Database credentials ใน Kubernetes Secret — ไม่มี hardcode ใน config
SecurityCritical
ALL Redis / Cache
Redis instance/cluster provisioned และ connection test ผ่าน
Infra
Redis password / TLS configured — ไม่ใช้ unauthenticated Redis
Security
Memory maxmemory policy กำหนดแล้ว (allkeys-lru หรือตาม use case)
Infra
ALL MinIO / Object Storage
MinIO bucket สร้างแล้ว — access policy กำหนดถูกต้อง
Infra
MinIO credentials ปลอดภัย — ใช้ service account ไม่ใช้ root
Security
CLOUD Cloud Infrastructure
Terraform state ล็อค remote backend (S3/GCS/Azure Blob) แล้ว
Infra
Security Group / Firewall Rules — principle of least privilege
SecurityCritical
Auto-scaling policy กำหนดแล้ว — HPA/VPA ตั้งค่าถูกต้อง
Infra
Cost alert / budget ตั้งค่าแล้ว — มี billing notification
OPSPM
ON-PREM On-Premise Infrastructure
Server hardware check — CPU, RAM, Disk, NIC ปกติทั้งหมด
Infra
RAID / Disk health ตรวจแล้ว — ไม่มี failed/degraded drive
InfraCritical
UPS / Power redundancy verified — มี failover power
Infra
Ansible inventory updated — playbook ทดสอบ dry-run แล้ว
ansible-playbook site.yml --check
Infra
OS patched ล่าสุด — kernel, security packages up to date
SecurityInfra
4. Application Deployment 0/0
ALL Container Image
Docker image build ด้วย specific tag — ไม่ใช้ :latest ใน production
image: registry.unixdev.co.th/client/app:1.2.3
AppCritical
Image scan ผ่าน — Trivy และ Grype ไม่มี CRITICAL CVE
trivy image --severity CRITICAL,HIGH <image>
SecurityCritical
Base image เป็น official / minimal — ไม่ใช้ image ที่ไม่รู้ที่มา
Security
Image push ไป Harbor registry แล้ว — สามารถ pull ได้จาก cluster
App
Dockerfile มี non-root user — ไม่รัน process เป็น root
USER 1000
Security
Image built บน read-only filesystem — ไม่มี write-to-container-fs
Security
ALL Kubernetes Manifests / Helm
Deployment manifest มี resource requests และ limits ครบทุก container
InfraCritical
Liveness และ Readiness Probe ตั้งค่าถูกต้อง — ทดสอบแล้ว
App
Deployment strategy กำหนดแล้ว — RollingUpdate พร้อม maxSurge/maxUnavailable
App
ConfigMap และ Secret แยก environment values ออกจาก image แล้ว
SecurityApp
Ingress rules, TLS certificates, annotations ถูกต้อง
InfraSecurity
HPA (Horizontal Pod Autoscaler) configured สำหรับ stateless services
Infra
PodDisruptionBudget กำหนดแล้ว — ป้องกัน all pods down ระหว่าง maintenance
App
Helm chart values.yaml แยก per environment (prod/staging) ชัดเจน
App
Init containers (ถ้ามี) ชี้ไปยัง image version ที่ถูกต้อง — ไม่ stale
AppCritical
ALL CI/CD Pipeline (GitLab)
GitLab pipeline ผ่านทุก stage — build, test, scan, deploy
AppCritical
SonarQube scan ผ่าน — Quality Gate GREEN ไม่มี blocker
SecurityApp
Semgrep / Checkov scan ผ่าน — ไม่มี HIGH/CRITICAL findings ค้าง
Security
GitLab Agent for Kubernetes configured — deploy จาก pipeline ได้
App
Environment variables และ secrets ใน GitLab CI/CD ครบ — ไม่มี hardcode
SecurityCritical
Branch protection rules ใน GitLab — ต้อง approve ก่อน merge to main
SecurityApp
5. Security & Compliance 0/0
ALL Secrets & Credentials
ไม่มี credentials / API keys ใน Git repository — ตรวจด้วย gitleaks หรือ trufflehog
SecurityCritical
Kubernetes Secrets encrypt at rest — ตรวจสอบ encryption provider config
Security
Production credentials แตกต่างจาก staging/dev ทั้งหมด — rotate ก่อน go-live
SecurityCritical
TLS certificates valid — อายุ > 30 วัน, auto-renew ด้วย cert-manager
Security
ALL Wazuh SIEM
Wazuh agent ติดตั้งและ enrolled ทุก node — agent status ACTIVE
wazuh-control status
Security
Custom rules สำหรับ client application configured ใน Wazuh
Security
Vulnerability detection enabled — scan schedule ตั้งค่าแล้ว
Security
Alert rules และ notification (email/Slack) configured สำหรับ critical events
Security
ALL Falco Runtime Security
Falco deployed ใน cluster — eBPF probe ทำงานปกติ
Security
Custom Falco rules สำหรับ client namespace กำหนดแล้ว
Security
ALL Cloudflare WAF/WAAP
WAF rules enabled — OWASP ruleset active, custom rules ตามระบบ
SecurityCritical
Bot protection configured — challenge page / block ตามความเหมาะสม
Security
Rate limiting rules ตั้งค่าแล้ว — ป้องกัน DDoS / brute force
Security
Cache rules configured ถูกต้อง — ไม่ cache sensitive endpoints
SecurityApp
SSL/TLS mode: Full (Strict) — Minimum TLS 1.2
Security
Cloudflare Zero Trust Access Policy กำหนดสำหรับ internal tools
SecurityInfra
ALL Compliance
PDPA / Data privacy requirements ตรวจสอบแล้ว — PII handling ถูกต้อง
SecurityCritical
Audit logging enabled — ทุก access ถูก log ใน Graylog
Security
Penetration test / vulnerability assessment ผ่าน — ไม่มี open criticals
Security
6. Monitoring & Observability 0/0
ALL Zabbix Monitoring
Zabbix host/host-group สร้างสำหรับ client — templates apply แล้ว
OPS
Zabbix agent/proxy ทำงานปกติ — items ทั้งหมด SUPPORTED
zabbix_agentd -t system.uptime
OPS
Trigger / Alert rules กำหนดสำหรับ CPU, RAM, Disk, Network threshold
OPSCritical
Notification media configured — alert ส่งไปถูก team (email/Line/Slack)
OPSCritical
Predictive monitoring / anomaly detection configured (ถ้ามี Chronos-Bolt)
OPS
ALL Grafana Dashboards
Grafana dashboard สำหรับ client provisioned — infra + app metrics ครบ
OPS
Data sources (Prometheus/VictoriaMetrics, Loki, Tempo) เชื่อมต่อแล้ว
OPS
Grafana folder / RBAC ตั้งค่าแล้ว — client เห็นเฉพาะ dashboard ของตัวเอง
SecurityOPS
Alerting rules ใน Grafana / Alertmanager configured — no-data/error alerts ด้วย
OPS
ALL Graylog (Centralized Logging)
Log shipper (Filebeat/Fluent Bit) configured — logs ไหลเข้า Graylog แล้ว
OPS
Graylog stream / index กำหนดสำหรับ client — retention policy ตั้งค่าแล้ว
OPS
Structured logging format (JSON) ตรวจแล้ว — application logs parse ถูกต้อง
OPSApp
Graylog RBAC — client/team เห็นเฉพาะ stream ของตัวเอง
Security
ALL Sentry (Error Tracking)
Sentry project สร้างสำหรับ application — DSN ใส่ใน app config แล้ว
App
Sentry alert rules กำหนดแล้ว — error rate, new issue notification
App
Source maps / release tracking configured — errors link กลับไปที่ source code
App
PII scrubbing rules กำหนดแล้ว ใน Sentry — ไม่ capture sensitive data
Security
7. Networking & Connectivity 0/0
ALL DNS & Endpoints
DNS record (A/CNAME) ชี้ไปถูก endpoint — propagation complete
dig +short yourdomain.com
InfraCritical
HTTPS endpoint ตอบสนองถูกต้อง — HTTP → HTTPS redirect ทำงาน
curl -I https://yourdomain.com
Infra
SSL certificate valid — chain ครบ, ไม่มี self-signed ใน production
openssl s_client -connect yourdomain.com:443
SecurityCritical
Security headers ครบ — HSTS, X-Frame-Options, CSP, X-Content-Type-Options
Security
ALL Service Connectivity Tests
Application → Database connectivity ทดสอบผ่าน
AppCritical
Application → Redis connectivity ทดสอบผ่าน
App
Application → External APIs / 3rd party services ทดสอบผ่าน
App
Inter-service communication ใน cluster ทำงานถูกต้อง
AppInfra
Firewall / Network Policy ไม่บล็อก traffic ที่จำเป็น
Infra
CLOUD Cloud Network
VPC peering / Transit Gateway / PrivateLink configured ถูกต้อง
Infra
Egress IP ที่ fixed — whitelist กับ 3rd party แล้ว (ถ้าจำเป็น)
Infra
ON-PREM On-Prem Network
Firewall rules (iptables/pfsense) verify ใน production network
SecurityInfra
VPN / Dedicated line พร้อม — latency ต่ำกว่า threshold ที่กำหนด
Infra
Network redundancy — bond/LACP configured สำหรับ production servers
Infra
8. Testing & QA 0/0
ALL Functional Testing
Smoke test ผ่าน — core features ทำงานใน production environment
AppCritical
Integration test ผ่าน — ทุก integration point ทดสอบกับ production APIs
App
UAT (User Acceptance Testing) ผ่านและ client sign off แล้ว
PMCritical
Regression test — existing functionality ไม่พัง
App
ALL Performance & Load
Load test ผ่าน — รับ concurrent users ตาม SLA โดยไม่มี error
App
Response time ตาม SLA — P95 latency ไม่เกิน threshold ที่กำหนด
AppCritical
Memory leak test — application ไม่มี memory growth ผิดปกติ
App
Database query performance — slow queries ระบุและแก้ไขแล้ว
AppInfra
ALL Failover & Recovery
Rollback procedure ทดสอบใน staging — สามารถ rollback ใน < 15 นาที
OPSCritical
Database failover ทดสอบ — application reconnect อัตโนมัติ
InfraCritical
Pod restart / crash recovery ทดสอบ — application กลับมาปกติอัตโนมัติ
OPS
Backup restore ทดสอบ — RPO/RTO ตาม SLA
OPSCritical
9. Documentation & Handover 0/0
ALL Technical Documentation
Architecture diagram updated — ตรงกับ current deployment
OPSPM
Runbook / SOP เขียนครบ — step-by-step สำหรับ ops team
OPSCritical
Credentials / access ทั้งหมดบันทึกใน password manager (Vault/Bitwarden)
SecurityOPS
Network diagram และ IP addressing scheme บันทึกแล้ว
OPS
Change log / deployment history บันทึกใน ClickUp หรือ GitLab
OPS
API documentation (Swagger/Postman Collection) updated และ share กับ client
AppPM
ALL Client Handover
Client ได้รับ access credentials ที่จำเป็น — พร้อม 2FA setup
PMSecurity
Monitoring dashboard URL และ login ส่งให้ client แล้ว
PMOPS
SLA document ลงนามแล้ว — response time, uptime guarantee ชัดเจน
PMCritical
Support channel (Line/Slack/Email) แจ้ง client และ on-call schedule ส่งแล้ว
PMOPS
Training / walkthrough กับ client team เสร็จสมบูรณ์
PM
10. Post-Deploy — Day-1 Watch 0/0
ALL ช่วงแรกหลัง Go-Live
Monitor Zabbix / Grafana ต่อเนื่อง 2 ชั่วโมงแรกหลัง deploy
OPSCritical
ตรวจ Sentry error rate — ไม่มี spike ผิดปกติ
OPS
ตรวจ Graylog — ไม่มี ERROR/CRITICAL log ที่ผิดปกติ
OPS
ตรวจ Pod status ทุก pod RUNNING — ไม่มี CrashLoopBackOff / OOMKilled
kubectl get pods -n <namespace> -w
OPSCritical
Resource usage หลัง go-live ปกติ — ไม่มี unexpected spike
OPS
Client confirm ระบบทำงานปกติ — ได้รับ verbal/written confirmation
PMCritical
Go/No-Go decision ทำ — deploy confirmed หรือ rollback executed
PMCritical
Post-deploy report เขียนและส่ง stakeholders แล้ว
PMOPS

Notes / Issues / Blockers