-
จัดระบบขั้นตอนแบบประกาศชัดเจน (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 เป็นโปรเซสแบบครั้งเดียว
ยังไม่มีความคิดเห็น