Skip to main content

Design principles

  • จัดระเบียบทีมตามผลลัพธ์ทางธุรกิจ (Organize teams around business outcomes): ความสามารถของทีมในการบรรลุผลลัพธ์ทางธุรกิจมาจากวิสัยทัศน์ของผู้นำ การปฏิบัติงานที่มีประสิทธิภาพ และโมเดลการดำเนินงานที่สอดคล้องกับธุรกิจ ผู้นำควรทุ่มเทและมุ่งมั่นอย่างเต็มที่ในการทำ CloudOps Transformation ด้วยโมเดลการดำเนินงานบนคลาวด์ที่เหมาะสม ซึ่งจะจูงใจให้ทีมทำงานได้อย่างมีประสิทธิภาพสูงสุดและตอบโจทย์ธุรกิจ โมเดลที่ถูกต้องจะใช้ศักยภาพของบุคลากร กระบวนการ และเทคโนโลยีเพื่อขยายขนาด เพิ่มผลิตภาพ และสร้างความแตกต่างด้วยความคล่องตัว การตอบสนองที่รวดเร็ว และการปรับตัว วิสัยทัศน์ระยะยาวขององค์กรจะถูกเปลี่ยนเป็นเป้าหมายที่สื่อสารไปทั่วทั้งองค์กร รวมถึงผู้มีส่วนได้ส่วนเสียและผู้ใช้บริการคลาวด์ของคุณ โดยเป้าหมายและ KPI ด้านการปฏิบัติงานต้องสอดประสานกันในทุกระดับ แนวปฏิบัตินี้จะช่วยรักษาคุณค่าระยะยาวที่ได้รับจากการใช้หลักการออกแบบในข้อถัดๆ ไป

  • นำระบบสังเกตการณ์มาใช้เพื่อข้อมูลเชิงลึกที่นำไปปฏิบัติได้จริง (Implement observability for actionable insights): สร้างความเข้าใจที่ครอบคลุมเกี่ยวกับพฤติกรรมของเวิร์กโหลด ทั้งในด้านประสิทธิภาพ ความน่าเชื่อถือ ต้นทุน และสุขภาพของระบบ กำหนดดัชนีชี้วัดความสำเร็จ (KPIs) และใช้ข้อมูลจากระบบสังเกตการณ์ (Telemetry) เพื่อประกอบการตัดสินใจและดำเนินการอย่างรวดเร็วเมื่อผลลัพธ์ทางธุรกิจมีความเสี่ยง ปรับปรุงประสิทธิภาพ ความน่าเชื่อถือ และต้นทุนในเชิงรุกโดยอิงจากข้อมูลที่นำไปปฏิบัติได้จริง

  • ใช้ระบบอัตโนมัติอย่างปลอดภัยในทุกจุดที่ทำได้ (Safely automate where possible): บนคลาวด์ คุณสามารถใช้ระเบียบวินัยทางวิศวกรรมแบบเดียวกับที่ใช้เขียนโค้ดแอปพลิเคชันกับสภาพแวดล้อมทั้งหมดของคุณได้ คุณสามารถกำหนดเวิร์กโหลดและการปฏิบัติงานทั้งหมด (แอปพลิเคชัน, โครงสร้างพื้นฐาน, การตั้งค่า และขั้นตอนการทำงาน) ให้อยู่ในรูปแบบโค้ด (Code) และทำการอัปเดตได้ จากนั้นคุณสามารถทำให้การปฏิบัติงานเป็นอัตโนมัติโดยสั่งให้ทำงานตอบสนองต่อเหตุการณ์ต่างๆ นอกจากนี้คุณยังสามารถใช้ระบบความปลอดภัยอัตโนมัติโดยการกำหนด Guardrails เช่น การควบคุมอัตราการทำงาน (Rate control), เกณฑ์การเกิดข้อผิดพลาด (Error thresholds) และการอนุมัติ การใช้ระบบอัตโนมัติที่มีประสิทธิภาพจะช่วยให้การตอบสนองต่อเหตุการณ์มีความสม่ำเสมอ ลดความผิดพลาดจากมนุษย์ และลดภาระงานที่ซ้ำซากของผู้ดูแลระบบ (Operator toil)

  • ทำการเปลี่ยนแปลงบ่อยๆ แต่ละครั้งให้เล็กลง และย้อนกลับได้ (Make frequent, small, reversible changes): ออกแบบเวิร์กโหลดให้ขยายขนาดได้และแยกส่วนจากกัน (Loosely coupled) เพื่อให้สามารถอัปเดตส่วนประกอบต่างๆ ได้อย่างสม่ำเสมอ การใช้เทคนิคการ Deploy แบบอัตโนมัติควบคู่ไปกับการเปลี่ยนแปลงทีละน้อยจะช่วยลดขอบเขตผลกระทบ (Blast radius) และช่วยให้ย้อนกลับได้เร็วขึ้นเมื่อเกิดความล้มเหลว สิ่งนี้จะช่วยเพิ่มความมั่นใจในการส่งมอบการเปลี่ยนแปลงที่เป็นประโยชน์ต่อเวิร์กโหลด ในขณะที่ยังรักษาคุณภาพและปรับตัวเข้ากับสภาวะตลาดที่เปลี่ยนแปลงไปได้อย่างรวดเร็ว

  • ปรับปรุงขั้นตอนการปฏิบัติงานบ่อยๆ (Refine operations procedures frequently): เมื่อเวิร์กโหลดวิวัฒนาการไป การปฏิบัติงานก็ต้องวิวัฒนาการตามไปด้วย ในขณะที่ใช้ขั้นตอนการปฏิบัติงาน ให้มองหาโอกาสในการปรับปรุงอยู่เสมอ จัดให้มีการรีวิวอย่างสม่ำเสมอและตรวจสอบว่าขั้นตอนทั้งหมดมีประสิทธิภาพและทีมงานมีความคุ้นเคย หากพบช่องว่างให้รีบอัปเดตขั้นตอนเหล่านั้นทันที สื่อสารการอัปเดตขั้นตอนไปยังผู้มีส่วนได้ส่วนเสียและทีมงานทั้งหมด รวมถึงอาจใช้แนวทาง Gamification ในการปฏิบัติงานเพื่อแบ่งปันแนวทางปฏิบัติที่ดีที่สุดและให้ความรู้แก่ทีม

  • คาดการณ์ความล้มเหลว (Anticipate failure): เพิ่มโอกาสความสำเร็จในการปฏิบัติงานให้สูงสุดโดยการจำลองสถานการณ์ความล้มเหลว เพื่อทำความเข้าใจความเสี่ยงของเวิร์กโหลดและผลกระทบต่อธุรกิจ ทดสอบประสิทธิภาพของขั้นตอนการทำงานและการตอบสนองของทีมต่อความล้มเหลวจำลองเหล่านี้ เพื่อตัดสินใจจัดการความเสี่ยงที่ตรวจพบจากการทดสอบอย่างเหมาะสม

  • เรียนรู้จากเหตุการณ์และตัวชี้วัดการปฏิบัติงานทั้งหมด (Learn from all operational events and metrics): ขับเคลื่อนการปรับปรุงผ่านบทเรียนที่ได้รับจากเหตุการณ์และความล้มเหลวทางการปฏิบัติงานทั้งหมด แบ่งปันสิ่งที่เรียนรู้ไปยังทีมต่างๆ และทั่วทั้งองค์กร การเรียนรู้ควรเน้นไปที่ข้อมูลและเรื่องราว (Anecdotes) ว่าการปฏิบัติงานส่งผลต่อความสำเร็จทางธุรกิจอย่างไร

  • ใช้บริการจัดการสำเร็จรูป (Use managed services): ลดภาระในการปฏิบัติงานโดยใช้บริการจัดการสำเร็จรูปของ AWS (AWS Managed Services) ในทุกที่ที่ทำได้ และสร้างขั้นตอนการปฏิบัติงานโดยอิงจากการโต้ตอบกับบริการเหล่านั้น