Frugal Architecture

ในงาน AWS re:Invent 2023 ที่ทาง Amazon Web Services ได้จัดขึ้นในทุกๆปี นั้น จะมี Keynote Session ที่น่าสนใจอยู่เป็นประจำ โดย หนึ่งในนั้น ก็คือ Keynote ของ Dr. Werner Vogels, VP และ CTO ของ Amazon.com ที่ได้พูดถึง The Frugal Architecture ซึ่งเป็นหลักการที่พูดถึงการออกแบบ Cloud Architecture โดยมุ่งเน้นไปในเรื่องของ การตระหนักถึงต้นทุน (Cost Awareness) และ การออกแบบและพัฒนาอย่างยั่งยืน (Sustainable) โดย Dr. Werner ได้ใช้ประสบการณ์ของเขาตลอด 20 ปี ในการเรียบเรียงขึ้นมา 

ทาง Dr. Werner ได้แบ่งหัวข้อออกเป็นทั้งหมด 7 ข้อ โดยได้เรียกว่า Laws ซึ่งเราสามารถใช้หลักการนี้เหมือนเป็น Framework ที่ใช้ในการออกแบบ Architecture โดยจะมีการแบ่ง Laws ออกเป็นทั้งหมด 3 ประเภท เรียง ตาม ขั้นตอนในการออกแบบ Architecture ดังนี้ 

  • Design 
  • Measure 
  • Optimize 

โดยทาง Dr. Werner ได้แบ่งแต่ละ Laws ไว้ในแต่ละ ขั้นตอนดังนี้ 

DESIGN 

LAW I. Make Cost a Non-functional Requirement. การรวมต้นทุนเข้าไปใน Non-functional Requirement เพื่อให้คำนึงถึงเรื่อง ของการคำนวณต้นทุนตั้งแต่ การออกแบบ, การพัฒนา และ Operation. 

LAW II. Systems that Last Align Cost to Business. การมีทิศทางของธุรกิจที่ชัดเจนจะช่วยให้เรากำหนดทิศทางของ Architecture เพื่อรองรับการเติบโตของธุรกิจ ได้ 

LAW III. Architecting is a Series of Trade-offs. การออกแบบทุกสิ่งล้วนตามมาด้วยการแลกเปลี่ยนเสมอ หากต้องการเพิ่ม High Availability ก็มักจะตามมาด้วยค่าใช้จ่าย ที่เพิ่มมากขึ้น LAW ในข้อนี้จึงบอกว่าเราควรจะหาตรงกลางระหว่าง จุดที่เรารับความเสี่ยง  กับ งบประมาณ ได้และ ต้องเราต้องตระหนักเอาไว้เสมอว่า: 

“Frugality is about maximizing value, not just minimizing spend.”  

“Frugality ไม่ใช่แค่การประหยัดต้นทุนให้ได้มากที่สุด แต่คือการสร้างคุณค่าจาก Architecture ให้ได้มากที่สุด” 

MEASURE 

LAW IV. Unobserved Systems Lead to Unknown Costs. การที่ไม่มี Observation Model ที่ดีสามารถส่งผลให้เกิด ค่าใช้จ่ายที่ไม่จำเป็นขึ้นได้ จึงควรที่จะให้ความสำคัญในการ ติดตาม การใช้งาน, ค่าใช้จ่าย  หรือ ข้อผิดพลาดต่างๆ ที่เกิดขึ้นภายใน Architecture ของเรา เพื่อป้องกัน และ ลด ค่าใช้จ่ายที่ไม่จำเป็นได้ 

LAW V. Cost Aware Architectures Implement Cost Controls. แก่นแท้ของ Frugal Architecture คือ ระบบ Monitoring ที่ดี และ ความสามารถในการทำ Cost Optimization การออกแบบที่ดีตั้งแต่ต้น จะช่วยให้เราสามารถหาหนทางในการทำ Cost Optimization ได้มากขึ้น โดยแนวทางปกติที่ใช้กันก็คือการแบ่งระบบของเราออกเป็นระดับ ซึ่งจะแบ่งออกเป็น 3 ระดับดังนี้ ระดับ 1 คือ ระบบที่สำคัญที่สามารถทำการพัฒนาประสิทธิภาพได้โดยไม่ต้องคำนึงถึง ค่าใช้จ่ายมากนัก ระดับ 2 คือ ระบบที่สำคัญ แต่สามารถ ที่จะ ลดประสิทธิภาพการทำงานลงชั่วคราวได้โดยไม่เกิด ผลกระทบ Tier 3 คือ ระบบที่ไม่ได้มีความสำคัญมากนัก สามารถออกแบบให้มีค่าใช้จ่ายที่น้อยที่สุดได้  การกำหนด ระดับของระบบทำให้สามารถลดค่าใช้จ่ายและเพิ่มประสิทธิภาพในการทำงานได้ง่ายยิ่งขึ้น 

OPTIMIZE 

LAW VI. Cost Optimization is Incremental. การทำ Cost  Optimization นั้นไม่มีที่สิ้นสุด เราสามารถกลับมาตรวจสอบ และ หาจุดที่สามารถทำ Cost  Optimization ได้ตลอด เพื่อกำจัดส่วนที่ไม่จำเป็น และ หาจุดที่สามารถประหยัดค่าใช้จ่ายได้ 

LAW VII. Unchallenged Success Leads to Assumptions. การที่เราสามารถ การขึ้นระบบ หรือ การบริหารจัดการ ระบบ มาได้ดีตลอดไม่ได้หมายความว่ามันคือ เทคโนโลยี หรือ ขั้นตอนการทำงานที่ดีที่สุด เราไม่ควรที่จะติดกับดัก และ อย่าหยุดที่จะพัฒนาตัวเอง รวมไปถึงการพัฒนา Architecture ด้วย เทคโนโลยีหรือภาษาใหม่ๆอยู่ตลอดเวลา 

โดยทาง Dr. Werner ได้ใช้หลักการนี้ในการประกาศ AWS Services และ Feature ใหม่ๆ อ้างอิงตาม Laws ต่างๆ อีกมากมายใน  Keynote Session เช่น 

หรือหากท่านใด อยากจะศึกษาหรืออ่านบทความที่ทาง Dr. Werner Vogels ได้เขียนเอาไว้ สามารถเข้าไปอ่านได้ที่ The Frugal Architect 

Let’s build “THE FRUGAL ARCHITECTURE”. 

เรื่องโดย : Thakorn Vuthayapatirakul