Posted on August 15, 2021 by minimallife
Leave a Comment
Architectural Driver คือ ปัจจัยขับเคลื่อนการออกแบบและการทำงานในส่วนสถาปัตยกรรมระบบ เน้นที่ Quality Attribute หรือ คุณภาพระบบ
คุณภาพของสถาปัตยกรรมระบบที่ออกแบบขึ้น มุ่งเน้นไปที่คุณภาพหลักดังนี้
- Reliability – ทุกส่วนการทำงานต้องน่าเชื่อถือ มีเสถียรภาพ มีความแม่นยำ
- Availability – ระบบห้ามล่ม หากส่วนหนึ่งส่วนใดล่มหรือหยุดการทำงาน ให้พังเฉพาะส่วนนั้น (partial failure) ห้ามฉุดส่วนอื่นล่มหรือเสียหายไปด้วย
- Modifiability – ระบบทุกส่วนต้องยืดหยุ่น แก้ไข ปรับปรุง เพิ่มเติม ง่าย โดยเฉพาะการพัฒนาโมเดลใหม่ๆ ใส่เข้าไปในระบบ
- Usability – ระบบใช้งานง่าย เซ็ตค่าง่าย เขียนโค้ดแก้ไขโค้ดเพิ่มเติมเข้าไปง่าย ดูสถานะการทำงานและผลการเทรดง่าย ทุกอย่างต้องง่าย
- Interoperability – สามารถทำงานร่วมกับเทคโนโลยี แพลตฟอร์ม ต่างๆ ที่จำเป็นได้ โดยปราศจากข้อจำกัด
- Testability – สามารถทดสอบได้ทุกจุดที่สงสัย หากเอาไลบรารี่หรือเฟรมเวิร์กอื่นมาใช้ ต้องทดสอบได้ในระดับ grey box และกลไกการทำงานสำคัญต้องใช้ OpenSource เท่านั้น กลไกการทำงานสำคัญห้ามเป็น black box เด็ดขาด ถ้าไม่อย่างนั้นต่อให้ดีแค่ไหนก็ไม่ใช้ จะต้องพัฒนาใช้เองเท่านั้น
- Manageability – ดูแลระบบง่าย มีช่องทางในการดูแลระบบได้สะดวก ปรับแต่งค่าต่างๆ ได้โดยมี downtime ต่ำที่สุด ไม่กระทบผลการเทรด
- Performance – ใช้ทรัพยากรระบบคุ้มค่า ไม่ทำให้เปลืองค่าบริการ cloud และต้องทำงานได้เร็วในระดับหนึ่ง
เป้าหมายในการออกแบบ, สร้าง และดูแล สถาปัตยกรรมระบบ จึงต้องบริหารสมดุลคุณภาพทั้ง 8 ด้านนี้ให้ได้