아티팩트 저장소 란 무엇입니까? 파일을 저장하는 장소 인 경우 소스 제어 시스템을 사용할 수 없나요?
답변
중 개발은 상당한 양의 다른 인공물을 생성합니다. 여기에는 다음이 포함될 수 있습니다.
- 소스 코드
- 컴파일 된 애플리케이션
- 배포 가능한 패키지
- 문서
및 잠재적으로 다른 사용자도
소스 제어 시스템을 사용하여 모두 저장할 수는 있지만 소스 제어 시스템은 일반적으로 텍스트 기반을 처리하도록 설계 되었기 때문에 일반적으로 매우 비효율적입니다. 대부분의 릴리스가 텍스트 기반이고 많은 이진 데이터를 저장할 필요가없는 경우 간단한 저장 메커니즘으로 사용할 수 있습니다.
그러나 아티팩트 저장소는 바이너리 파일을 포함한 모든 종류의 파일을 저장하도록 설계되었습니다. 여기에는 압축 된 소스 코드부터 빌드 결과, 도커 이미지와 같은 것까지 모든 것이 포함됩니다. 또한 일반적으로 이러한 아티팩트를 저장할뿐만 아니라 다양한 추가 기능을 사용하여 관리하는 데 도움이됩니다. 예 :
- 버전 관리 지원 : 각 아티팩트가 빌드 된시기, 버전 등 일부 메타 데이터를 적절하게 저장합니다. 숫자는 해시 저장 등입니다.
- 보관 : 중요한 아티팩트 만 유지하고, 설정할 수있는 다양한 기준에 따라 스냅 샷일 뿐이거나 더 이상 필요하지 않은 것 등을 자동으로 삭제합니다.
- 액세스 제어 : 게시 할 수있는 사람과 다양한 아티팩트를 다운로드 할 수있는 사람을 설정합니다.
- 프로모션 : 아티팩트를 홍보하는 기능. 예를 들어 코더 근처의 서버에 짧은 보존 기간이있는 스냅 샷 아티팩트와 배포 가능한 것으로 간주되는 아티팩트 만 나타나는 라이브 서버 근처에 별도의 저장소가있을 수 있습니다. 여기에는 다양한 버전 채널에 대한 지원과 이들 간의 아티팩트 이동 (예 : 특정 버전을 베타에서 안정적인 버전으로 승격)이 포함됩니다.
- 아티팩트의 기본 저장소 역할을합니다. 즉, maven, rubygems, docker 등의 기본 저장소로 사용할 수 있습니다. 여기에는 공식 저장소의 아티팩트 캐싱도 포함될 수 있습니다.
댓글
- 버전 관리 지원에 ' 채널 ' 기능을 추가 할 가치가 있습니다. 채널 " develop "에서 최신 버전을 타겟팅하는 머신 및 채널 " stable ".
- @ Pierre.Vriens가 몇 가지 작은 댓글을 추가했지만 별도의 질문에서도 해결할 수 있습니다.
- merci,하지만 만일의 경우를 대비해 여기 가 제 추가 의견을 추가로 언급 할 기회입니다 …
- 또한 이러한 종류의 저장소에서 구성 파일이나 고정 장치를 추적합니까?
Answer
저장소 관리자와 UPM (범용 패키지 저장소 관리자)이 있습니다.
UPM은 Jenkins, teamcity 등에 대한 모든 빌드 아티팩트를 저장할 수 있으며 일반적으로 Maven, npm, NuGet 등 다양한 유형의 바이너리 아티팩트에 대한 저장소 관리자 역할을 할 수 있습니다.
이러한 도구는 Jfrog Artifactory , Inedo ProGet , 및 Sonatype Nexus .
꽤 괜찮은 비교 : https://binary-repositories-comparison.github.io/