• จัดระบบขั้นตอนแบบประกาศชัดเจน (declarative) เพื่อทำให้เวลาและค่าใช้จ่ายที่ต้องใช้ในการให้ผู้พัฒนาใหม่เข้าร่วมโปรเจ็กต์ลดลงเหลือน้อยที่สุด

  • ทำให้ส่วนที่แตกต่างกันตาม OS ชัดเจน และเพิ่มความสามารถในการพกพาระหว่างสภาพแวดล้อมการรันให้สูงสุด

  • เหมาะกับการนำขึ้นใช้งานบนคลาวด์แพลตฟอร์มที่เพิ่งได้รับความนิยมในช่วงหลัง และทำให้ไม่จำเป็นต้องดูแลเซิร์ฟเวอร์และระบบ

  • สามารถทำ continuous deployment ได้เพื่อให้ความแตกต่างระหว่างสภาพแวดล้อมพัฒนาและสภาพแวดล้อมใช้งานจริงน้อยที่สุด และเพิ่มความคล่องตัวให้สูงสุด

  • สามารถขยายระบบ (scale up) ได้โดยไม่ต้องเปลี่ยนเครื่องมือ สถาปัตยกรรม หรือแนวทางการพัฒนาไปมากนัก

** The Twelve Factors **

I. Codebase - โค้ดเบสเดียวที่ถูกจัดการด้วยเวอร์ชันคอนโทรลและมีการ deploy ได้หลากหลายแบบ

II. Dependencies - dependencies ที่ประกาศไว้อย่างชัดเจนและถูกแยกออกจากกัน

III. Config - การตั้งค่าที่เก็บไว้ใน environment

IV. Backing services - มองบริการ backend เป็นทรัพยากรที่เชื่อมต่ออยู่

V. Build, release, run - ขั้นตอน build และ run ที่แยกออกจากกันอย่างเด็ดขาด

VI. Processes - รันแอปพลิเคชันเป็นโปรเซสแบบ stateless หนึ่งตัวหรือหลายตัว

VII. Port binding - เปิดเผยบริการด้วยการใช้ port binding

VIII. Concurrency - การขยายระบบด้วยการใช้ process model

IX. Disposability - เพิ่มเสถียรภาพให้สูงสุดด้วยการเริ่มต้นที่รวดเร็วและ graceful shutdown

X. Dev/prod parity - รักษาให้สภาพแวดล้อม development, staging และ production ใกล้เคียงกันมากที่สุด

XI. Logs - ปฏิบัติต่อ logs ในฐานะ event stream

XII. Admin processes - รันงาน admin/maintenance เป็นโปรเซสแบบครั้งเดียว

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น