IT General
น้องๆ เคยเจอไหม? ระบบล่มตอนตีสาม ลูกค้าโวยวายทั้งที่ทีมงานหลับกันหมด... นั่นแหละคือฝันร้ายของคนทำ IT สมัยผมทำร้านเน็ต SiamCafe ก็เคยเจอ server เจ๊งตอนเที่ยงคืน ต้องรีบตื่นมาแก้กันจ้าละหวั่น Incident Management On Call Guide เนี่ยแหละคือคู่มือช่วยให้เราจัดการสถานการณ์ฉุกเฉินพวกนี้ได้อย่างเป็นระบบ ไม่ปล่อยให้ทุกอย่างวุ่นวายเหมือน "ลิงแก้แห"
พูดง่ายๆ คือมันเป็นเหมือนแผนฉุกเฉินที่เราเตรียมไว้ล่วงหน้า ว่าถ้าเกิดเหตุร้ายแรงขึ้น (Incident) ใครต้องทำอะไรบ้าง ใครเป็นคนรับผิดชอบหลัก (On Call) ติดต่อใครได้บ้าง และต้องแก้ไขปัญหายังไงให้เร็วที่สุด
ทำไมถึงสำคัญน่ะเหรอ? ลองคิดดูสิ ถ้าระบบ e-commerce ล่มตอน Black Friday จะเสียเงินเท่าไหร่? หรือถ้าโรงพยาบาลเข้าถึงข้อมูลคนไข้ไม่ได้ จะเกิดอะไรขึ้น? Incident Management ที่ดีช่วยลดความเสียหาย ลด Downtime และรักษาสถานะ "ฮีโร่" ของทีม IT เอาไว้ได้ไงล่ะ
Incident คือเหตุการณ์ที่ไม่คาดฝันที่ทำให้ระบบหรือบริการของเราไม่สามารถทำงานได้ตามปกติ หรือทำงานได้แต่ประสิทธิภาพลดลง เช่น Server ล่ม, Website เข้าไม่ได้, Database Error, Security Breach พวกนี้คือ Incident ทั้งนั้น
สมัยผมทำร้านเน็ต Incident ที่เจอบ่อยสุดคือ ไฟดับ! รองลงมาก็คือ Server แฮงค์ เพราะเด็กๆ โหลดบิทกันกระจาย (สมัยนั้นยังไม่มี Streaming นะน้อง)
On Call คือการจัดเวรให้ทีมงาน IT สลับกันเฝ้าระวังระบบ นอกเวลางานปกติ คนที่ On Call จะต้องพร้อมรับมือกับ Incident ที่เกิดขึ้นได้ตลอดเวลา ต้องมี Laptop, Internet และความรู้เพียงพอที่จะแก้ไขปัญหาเบื้องต้นได้
จำได้ว่าตอนทำ SiamCafe ผมต้อง On Call เองบ่อยมาก เพราะลูกน้องยังไม่เก่งเท่าเรา ต้องคอย Standby ตอบคำถามทางโทรศัพท์ตลอดเวลา
SLA หรือ Service Level Agreement คือข้อตกลงระหว่างผู้ให้บริการ (เรา) กับลูกค้า (ผู้ใช้งาน) ที่ระบุถึงระดับคุณภาพของบริการที่เราจะมอบให้ เช่น uptime 99.9%, Response Time ภายใน 1 ชั่วโมง เป็นต้น Incident Management ที่ดีจะต้องช่วยให้เราทำตาม SLA ได้ หรืออย่างน้อยก็ไม่ทำให้ SLA แย่ลงกว่าเดิม
SLA สำคัญมาก เพราะมันคือ "สัญญาใจ" ที่เราให้ไว้กับลูกค้า ถ้าทำไม่ได้ตามสัญญา ลูกค้าก็อาจจะหนีไปใช้บริการของคนอื่นได้
การทำ Incident Management On Call Guide ไม่ใช่เรื่องยาก แต่ต้องอาศัยการวางแผนและการเตรียมตัวที่ดี เริ่มจาก...
ใครเป็นคนรับผิดชอบอะไรบ้าง? ใครเป็นคน On Call? ใครเป็นคน Escalation? ต้องกำหนดให้ชัดเจน และสื่อสารให้ทุกคนในทีมเข้าใจตรงกัน
สมัยผมทำ SiamCafe ผมจะกำหนดเลยว่าใครเป็นคนดูแล Server, ใครดูแล Network, ใครดูแล Database แล้วก็ทำตาราง On Call สลับกันไป
Playbook คือคู่มือการแก้ไขปัญหาสำหรับ Incident ที่พบบ่อย เช่น "Server ล่มต้องทำยังไง?", "Website เข้าไม่ได้ต้องเช็คอะไรบ้าง?" Playbook จะช่วยให้คน On Call สามารถแก้ไขปัญหาได้อย่างรวดเร็วและมีประสิทธิภาพ
Playbook ที่ดีต้องมี Step-by-Step Instructions, Screenshot (ถ้าจำเป็น) และช่องทางการติดต่อผู้เชี่ยวชาญ (ถ้าแก้ไขเองไม่ได้) ลองเข้าไปดูตัวอย่าง Playbook ได้ที่ SiamCafe Blog นะครับ
ปัจจุบันมี Tools มากมายที่ช่วยให้การทำ Incident Management ง่ายขึ้น เช่น Monitoring Tools (เฝ้าระวังระบบ), Alerting Tools (แจ้งเตือนเมื่อเกิดปัญหา), Collaboration Tools (ใช้สื่อสารและประสานงานกัน) เลือกใช้ Tools ที่เหมาะสมกับขนาดและความต้องการของทีมเรา
สมัยผมทำ SiamCafe ผมใช้ Nagios ในการ Monitoring Server และใช้ IRC ในการสื่อสารกับทีมงาน (สมัยนั้นยังไม่มี Slack)
การทำ Incident Management ไม่ใช่แค่สร้างเอกสารแล้วจบ แต่ต้องมีการฝึกซ้อมเป็นประจำ เพื่อให้ทีมงานคุ้นเคยกับขั้นตอนการทำงาน และสามารถแก้ไขปัญหาได้อย่างรวดเร็วและมีประสิทธิภาพ
การฝึกซ้อมอาจจะทำเป็น Simulation หรือ Tabletop Exercise ก็ได้ ลองจำลองสถานการณ์ Incident ต่างๆ แล้วดูว่าทีมงานสามารถรับมือได้ดีแค่ไหน
หลังจากเกิด Incident จริง หรือหลังจากฝึกซ้อม ต้องมีการ Review เพื่อดูว่าอะไรทำได้ดี อะไรที่ต้องปรับปรุง และนำข้อเสนอแนะไปปรับปรุง On Call Guide และ Playbook ให้ดีขึ้นเรื่อยๆ
Incident Management เป็น Process ที่ต้องพัฒนาอย่างต่อเนื่อง ไม่ใช่แค่ทำครั้งเดียวแล้วจบ ลองเข้าไปอ่านบทความอื่นๆ เกี่ยวกับ IT ได้ที่ SiamCafe Blog นะครับ
Incident Management On Call Guide ไม่ใช่ทางเลือกเดียวในการจัดการกับ Incident แต่ก็เป็นทางเลือกที่ได้รับความนิยมมากที่สุด เพราะ...
ลองดูตารางเปรียบเทียบด้านล่างนี้ จะเห็นภาพชัดเจนยิ่งขึ้น
| Feature | Reactive | Proactive | On Call Guide |
|---|---|---|---|
| Preparation | None | High | Medium |
| Response Time | Slow | N/A | Fast |
| Cost | High (Downtime) | High (Prevention) | Medium |
| Complexity | Low | High | Medium |
สรุปคือ On Call Guide เป็นทางเลือกที่ Balance ที่สุด เหมาะสำหรับทีม IT ที่ต้องการจัดการ Incident อย่างมีประสิทธิภาพ โดยไม่ต้องลงทุนมากเกินไป
# ตัวอย่าง Code Snippet (Python) สำหรับการ Send Alert
import requests
def send_slack_alert(message):
webhook_url = "YOUR_SLACK_WEBHOOK_URL"
payload = {
"text": message
}
response = requests.post(webhook_url, json=payload)
if response.status_code != 200:
print(f"Error sending alert: {response.status_code}")
# Example Usage
send_slack_alert("Alert: Server CPU usage is high!")
Code นี้เป็นตัวอย่างง่ายๆ ในการส่ง Alert ไปยัง Slack เมื่อเกิดปัญหาขึ้นจริง (เช่น CPU usage สูงเกินไป) สามารถนำไปปรับใช้กับ Tools อื่นๆ ได้ตามต้องการ
# ตัวอย่าง Inventory แบบง่ายๆ (Text File)
Server: web01
IP: 192.168.1.10
OS: Ubuntu 20.04
Applications: Apache, PHP
Owner: devops@siamcafe.net
2. **Monitor ให้เป็นนิสัย:** อย่ารอให้ User โทรมาบ่น! ติดตั้ง Monitoring Tools ซะ CPU Usage สูงเกินไป, Disk ใกล้เต็ม, Network Latency เยอะ ตั้ง Alert ให้มันเตือนเราก่อนที่ User จะรู้ตัว Zabbix, Nagios, Prometheus มีให้เลือกเยอะแยะ
3. **"ฝึกซ้อมดับเพลิง":** ทำ Incident Simulation จำลองสถานการณ์ปัญหา เช่น Database Down, Web Server โดน Hack แล้วให้ทีม On Call ลองแก้ปัญหาดู จะได้รู้ว่าใครต้องทำอะไร ใช้เวลานานแค่ไหน มีช่องโหว่ตรงไหนที่ต้องปรับปรุง
4. **Post-Incident Review:** หลังจากแก้ปัญหาเสร็จ อย่าปล่อยผ่าน! มานั่งคุยกันในทีม อะไรที่ทำได้ดี อะไรที่ทำพลาด อะไรที่ต้องปรับปรุง เขียนเป็นเอกสารเก็บไว้ ครั้งหน้าจะได้ไม่พลาดซ้ำ