설명하는 개념은 구성 관리입니다. 이는 환경을 식별, 기록, 버전 / 추적 및보고하는 방법입니다. 버전 관리 및 빌드 관리와 밀접한 관련이있는 작업이지만, 동일한 개념과 동일한 처리 및 저장 메커니즘을 사용하더라도 별도의 전략이 필요한 경우가 많습니다.
작업 환경을 통제 할 수 있도록하는 것 외에 구성 관리는 소프트웨어가 사용되는 다양한 작업 환경 (설명 된대로 개발, 테스트 / QA, 일상적인 고객에 대한 배포, 특별한 고려 또는 특별한 구성이 필요한 고객에 대한 배포)에 대한 기록을 수립하는 데 도움이됩니다. 또는 속성 등을 빌드 할 수 있습니다.
내가 말했듯이, 이것은 종종 소스 버전 제어와 일치하는 작업이며 종종 구성 관리 데이터는 문서와 소스 저장소 모두에서 소스 옆에 있습니다. 반드시 그럴 필요는 없지만 종종 편의상의 문제입니다.
최근 몇 년 동안 구성 관리의 일부 측면의 자동화가 크게 개선되었습니다. 일부 답변과 의견은 구성 관리를 촉진하기위한 방법으로 스크립트를 제안했으며, 스크립트는 재현 가능한 결과를 얻는 데 도움이되는 좋은 대답이지만 종종 수작업으로 작성된 스크립트 자체가 일관성이없고 불완전합니다. 이러한 개선 된 방법 중 하나는 자동 프로비저닝을 사용하는 것입니다. 꼭두각시 또는 요리사 와 같은 시스템특정 사용자 또는 시스템 또는 특정 작업 프로필에 대한 소프트웨어 구성 요소 및 시스템을 지정하고 완전한 시스템 또는 환경을 설정하는 데 도움이되는 '레시피'를 제공합니다. 기본적으로 소프트웨어 배포 저장소의 개념을 취하여 시스템에 필요한 소프트웨어 패키지뿐만 아니라 각 패키지에 특정한 구성 프로파일을 제공하여이를 확장하고 일반화하여 사용자에게 적합한 방식으로 사용할 수 있도록합니다. 상태.
Vagrant 는이를 약간 다른 방향으로 가져 와서 가상 머신 정의를 신속하게 스핀하는 방법을 제공하여 VM이 가상 소프트웨어 및 하드웨어를 자동으로 프로비저닝 할 수 있고 특정 하드웨어 표현을 재현 할 수있는 편리한 방법이 될 수 있습니다 소프트웨어 사용자가 사용하는 환경.
각 시스템 (및 변형)은 설정하는 데 약간의 시간이 걸리지 만 다시로드하고 재구성하는 작업이 일반적인 작업 인 경우 분명한 가치가 있습니다.