ความแตกต่างหลักระหว่าง SRE กับการดำเนินงานแบบดั้งเดิมคืออะไร?
ความแตกต่างหลักคือ SRE นำหลักการวิศวกรรมซอฟต์แวร์มาประยุกต์ใช้กับงานด้านปฏิบัติการ โดยเน้นหนักไปที่การทำงานอัตโนมัติ การวัดผล และการลดงานที่ต้องทำด้วยมือ งานปฏิบัติการแบบดั้งเดิมมักจะใช้แรงงานคนมากกว่าและเน้นการแก้ไขปัญหาเฉพาะหน้า โดยมุ่งเน้นที่การรักษาระบบให้ทำงานได้อย่างต่อเนื่องมากกว่าการออกแบบระบบให้มีความน่าเชื่อถือมากขึ้น นอกจากนี้ SRE ยังนำเสนอแนวคิดที่เป็นทางการ เช่น SLOs และงบประมาณข้อผิดพลาด ซึ่งงานปฏิบัติการแบบดั้งเดิมมักขาดไป
ทีมขนาดเล็กสามารถนำ SRE มาใช้ได้จริงหรือไม่?
แน่นอน ทีมขนาดเล็กสามารถนำหลักการ SRE มาใช้ได้โดยไม่จำเป็นต้องมีแผนก SRE โดยเฉพาะ เริ่มต้นด้วยการกำหนด SLO สำหรับบริการที่สำคัญที่สุดของคุณ การใช้งานระบบตรวจสอบและแจ้งเตือนขั้นพื้นฐาน การเขียนคู่มือการแก้ไขปัญหาสำหรับเหตุการณ์ทั่วไป และค่อยๆ ทำให้งานที่ทำซ้ำๆ เป็นไปโดยอัตโนมัติ เป้าหมายคือการฝังแนวคิดด้านความน่าเชื่อถือเข้าไปในทีมที่มีอยู่ของคุณ แทนที่จะสร้างแผนกแยกต่างหาก
ใน SRE งบประมาณข้อผิดพลาดคืออะไร?
งบประมาณข้อผิดพลาดคืออัตราความล้มเหลวสูงสุดที่ยอมรับได้สำหรับบริการ โดยคำนวณจาก 100% ลบด้วยเป้าหมาย SLO ของคุณ ตัวอย่างเช่น หาก SLO ของคุณคือความพร้อมใช้งาน 99.9% งบประมาณข้อผิดพลาดของคุณคือ 0.1% ซึ่งหมายความว่าคุณสามารถยอมรับเวลาหยุดทำงานได้ประมาณ 43 นาทีต่อเดือน เมื่องบประมาณหมดลง การปรับใช้บริการอาจต้องหยุดชั่วคราวเพื่อมุ่งเน้นไปที่ความน่าเชื่อถือจนกว่าบริการจะเสถียรขึ้น
เหตุใดการบำรุงรักษาแบบเฉพาะกิจจึงถือว่ามีความเสี่ยง?
การบำรุงรักษาแบบเฉพาะกิจมีความเสี่ยง เพราะขาดโครงสร้างที่จำเป็นในการป้องกันความล้มเหลวที่เกิดขึ้นซ้ำๆ และตอบสนองต่อเหตุการณ์ต่างๆ ได้อย่างสม่ำเสมอ หากไม่มีเอกสาร คู่มือการปฏิบัติงาน หรือการวิเคราะห์หลังเกิดเหตุ ปัญหาเดิมๆ ก็มักจะเกิดขึ้นซ้ำอีก และความรู้ภายในองค์กรก็จะติดอยู่ในหัวของวิศวกรแต่ละคน เมื่อเวลาผ่านไป สิ่งนี้จะสร้างระบบที่เปราะบางซึ่งขึ้นอยู่กับความพร้อมของบุคคลเฉพาะกลุ่ม
การชันสูตรศพโดยปราศจากข้อกล่าวหาทำงานอย่างไร?
การวิเคราะห์หลังเกิดเหตุโดยไม่กล่าวโทษบุคคลใดบุคคลหนึ่ง จะเน้นที่ความล้มเหลวของระบบและกระบวนการ มากกว่าความผิดพลาดของบุคคล หลังเกิดเหตุการณ์ ทีมงานจะบันทึกสิ่งที่เกิดขึ้น สาเหตุที่เกิดขึ้น และการเปลี่ยนแปลงที่จะป้องกันไม่ให้เกิดซ้ำอีก โดยไม่กล่าวโทษบุคคลใดบุคคลหนึ่ง แนวทางนี้ส่งเสริมการรายงานอย่างตรงไปตรงมา และช่วยให้องค์กรเรียนรู้จากความล้มเหลว แทนที่จะปกปิดมัน
ในบริบทของ SRE นั้น "งานหนัก" หมายถึงอะไร?
งานที่ต้องทำซ้ำๆ ด้วยมือ (Toil) หมายถึงงานปฏิบัติการที่ต้องทำซ้ำๆ ด้วยมือ ซึ่งจะเพิ่มขึ้นตามขนาดของระบบ เช่น การรีสตาร์ทบริการ การตอบสนองต่อการแจ้งเตือนตามปกติ หรือการปรับใช้การเปลี่ยนแปลงด้วยตนเอง SRE มีเป้าหมายที่จะลดงานที่ต้องทำซ้ำๆ ด้วยมือเหล่านี้ผ่านระบบอัตโนมัติ เพื่อให้วิศวกรสามารถใช้เวลามากขึ้นกับโครงการที่ช่วยปรับปรุงความน่าเชื่อถือในระยะยาว Google มีคำแนะนำที่ชัดเจนว่าควรจำกัดงานที่ต้องทำซ้ำๆ ด้วยมือเหล่านี้ให้ต่ำกว่า 50% ของเวลาทำงานของวิศวกร
บริษัทควรเปลี่ยนจากการบำรุงรักษาแบบเฉพาะกิจไปเป็นการบำรุงรักษาเชิงโครงสร้าง (SRE) เมื่อใด?
การเปลี่ยนผ่านมักมีความเหมาะสมเมื่อเวลาหยุดทำงานเริ่มส่งผลกระทบต่อลูกค้าหรือรายได้ เมื่อทีมใช้เวลาแก้ไขปัญหามากกว่าการพัฒนา หรือเมื่อเหตุการณ์ผิดปกติเกิดขึ้นบ่อยครั้งจนทำลายความไว้วางใจ ปัจจัยกระตุ้นอื่นๆ ได้แก่ ข้อกำหนดด้านกฎระเบียบเกี่ยวกับเวลาการใช้งาน ระบบมีความซับซ้อนมากขึ้นอย่างรวดเร็ว หรือความยากลำบากในการฝึกอบรมวิศวกรใหม่เนื่องจากกระบวนการทำงานไม่ได้มีการบันทึกไว้
SRE กับ DevOps เหมือนกันหรือไม่?
SRE และ DevOps มีเป้าหมายคล้ายกัน คือการทำลายกำแพงกั้นระหว่างการพัฒนาและการปฏิบัติงาน แต่ทั้งสองวิธีนั้นแตกต่างกัน DevOps เป็นปรัชญาทางวัฒนธรรมที่กว้างกว่า โดยเน้นการทำงานร่วมกันและการส่งมอบอย่างต่อเนื่อง ในขณะที่ SRE เป็นการนำไปใช้เฉพาะด้านด้วยแนวปฏิบัติที่เป็นรูปธรรม เช่น SLO และงบประมาณข้อผิดพลาด หลายองค์กรใช้ SRE เป็นการนำหลักการของ DevOps มาใช้ในทางปฏิบัติ
โดยทั่วไปแล้วทีม SRE ใช้เครื่องมืออะไรบ้าง?
เครื่องมือ SRE ทั่วไป ได้แก่ Prometheus และ Grafana สำหรับการตรวจสอบ, PagerDuty หรือ Opsgenie สำหรับการแจ้งเตือนและการจัดการการเข้าเวร, Terraform หรือ Ansible สำหรับการทำงานอัตโนมัติของโครงสร้างพื้นฐาน และเครื่องมือต่างๆ เช่น แพลตฟอร์ม Chaos Engineering สำหรับการทดสอบความยืดหยุ่น ชุดเครื่องมือที่ใช้จะแตกต่างกันไป แต่เป้าหมายพื้นฐานนั้นเหมือนกันเสมอ คือ การมองเห็นสถานการณ์ การทำงานอัตโนมัติ และการตอบสนองต่อเหตุการณ์อย่างรวดเร็ว
การบำรุงรักษาแบบเฉพาะหน้าจะเป็นทางเลือกที่เหมาะสมได้หรือไม่?
ใช่ ในบางบริบทที่เฉพาะเจาะจงมาก ๆ เช่น สำหรับต้นแบบ เครื่องมือภายในที่มีผู้ใช้น้อย หรือผลิตภัณฑ์ในระยะเริ่มต้นที่ความเร็วมีความสำคัญมากกว่าความน่าเชื่อถือ การบำรุงรักษาแบบเฉพาะกิจอาจเป็นทางเลือกที่สมเหตุสมผล สิ่งสำคัญคือต้องซื่อสัตย์ต่อข้อดีข้อเสีย และวางแผนที่จะเพิ่มโครงสร้างมากขึ้นเมื่อระบบมีความสำคัญและซับซ้อนมากขึ้น