แนวคิดที่คุณอธิบายคือการจัดการการกำหนดค่า วิธีนี้เป็นวิธีในการระบุบันทึกรุ่น / ติดตามและรายงานสภาพแวดล้อม มักจะเป็นงานที่เกี่ยวข้องอย่างยิ่งกับการควบคุมเวอร์ชันและการจัดการการสร้าง แต่ก็มีความแตกต่างมากพอที่มักจะต้องใช้กลยุทธ์ที่แยกต่างหากแม้ว่าจะใช้แนวคิดเดียวกันและกลไกการประมวลผลและการจัดเก็บเดียวกัน
การจัดการการกำหนดค่านอกจากช่วยรักษาสภาพแวดล้อมการทำงานภายใต้การควบคุมยังช่วยสร้างบันทึกสภาพแวดล้อมการทำงานที่แตกต่างกันซึ่งใช้ซอฟต์แวร์ (การพัฒนาดังกล่าวรวมถึงการทดสอบ / QA การปรับใช้กับลูกค้าประจำการปรับใช้ให้กับลูกค้า หรือสร้างคุณสมบัติเป็นต้น)
ดังที่ฉันได้กล่าวมาบ่อยครั้งนี่เป็นงานที่เกิดขึ้นพร้อมกับการควบคุมเวอร์ชันต้นทางและบ่อยครั้งที่ข้อมูลการจัดการการกำหนดค่าอยู่ถัดจากซอร์สโค้ดทั้งในเอกสารและที่เก็บซอร์ส มันไม่จำเป็นต้องเป็น แต่มักจะเป็นเรื่องของความสะดวกสบาย
การทำงานอัตโนมัติของการจัดการการกำหนดค่าบางด้านได้รับการปรับปรุงอย่างมากในช่วงไม่กี่ปีที่ผ่านมา บางคำตอบและความคิดเห็นที่แนะนำสคริปต์เป็นวิธีในการส่งเสริมการจัดการการกำหนดค่าและสคริปต์เป็นคำตอบที่ดีที่จะช่วยให้บรรลุผลลัพธ์ที่ทำซ้ำได้ แต่บ่อยครั้งที่สคริปต์ที่สร้างขึ้นด้วยตนเองนั้นไม่สอดคล้องกันและไม่สมบูรณ์ วิธีการหนึ่งที่ได้รับการปรับปรุงนี้คือการจัดสรรอัตโนมัติ ระบบเช่นหุ่นเชิดหรือเชฟช่วยระบุส่วนประกอบซอฟต์แวร์และระบบสำหรับผู้ใช้หรือเครื่องโดยเฉพาะหรือสำหรับงานเฉพาะและจัดทำ 'สูตรอาหาร' ที่ช่วยให้สามารถตั้งค่าเครื่องหรือสภาพแวดล้อมได้อย่างสมบูรณ์ โดยทั่วไปจะใช้แนวคิดของพื้นที่เก็บข้อมูลการกระจายซอฟต์แวร์และขยายและทำให้เป็นรูปธรรมไม่เพียง แต่ชุดของซอฟต์แวร์ที่จำเป็นสำหรับระบบเท่านั้น แต่ยังรวมถึงโปรไฟล์การกำหนดค่าเฉพาะสำหรับแต่ละแพ็คเกจเพื่อให้พร้อมใช้งานในแบบที่เหมาะสมกับคุณ สถานการณ์.
Vagrantใช้วิธีนี้ในทิศทางที่แตกต่างกันเล็กน้อยและให้วิธีการหมุนนิยามเครื่องเสมือนอย่างรวดเร็วเช่น VM สามารถมีซอฟต์แวร์เสมือนและฮาร์ดแวร์เสมือนได้โดยอัตโนมัติและสามารถพิสูจน์ได้ว่าเป็นวิธีที่สะดวกในการทำซ้ำการเป็นตัวแทนของฮาร์ดแวร์ สภาพแวดล้อมที่ผู้ใช้ซอฟต์แวร์ของคุณใช้
แต่ละระบบ (และชุดรูปแบบ) ใช้เวลาเล็กน้อยในการตั้งค่า แต่มีค่าที่ชัดเจนบางอย่างหากคุณพบว่าภารกิจของการโหลดซ้ำและตั้งค่าใหม่เป็นงานทั่วไป