인공물 (또는 인공물)이란 무엇입니까?


17

" 아티팩트 저장소 란 무엇입니까? "에 대한 질문 에는 저장소 부분에 대한 흥미로운 설명 이 들어 있습니다. 그리고 전체 답변을 읽음으로써 DevOps의 맥락에서 정확히 " 아티팩트 "가 무엇을 의미 하는지 잘 모르겠습니다 .

어떤 제안?

추신 : 대답 중 하나에서 아마도 인공물 이 내가 궁금해하는 것 (혼란?) 이라는 것을 이해하는 것 같습니다 ...


2
English SE의 친구들은 "artifact"와 "artefact"에 대한 견해를 작성했습니다 : english.stackexchange.com/questions/37903/…
7ochem

답변:


19

Wikipedia에는이 질문에 대한 답이 아주 좋습니다. 파생 객체 라고도하는 아티팩트코드 리포지토리에 적용된 일부 프로세스 의 제품입니다 . 원래 그것들은 Build Artifacts 라고 불렸지만 , 그것들을 만들기 위해 빌드 이외의 프로세스가 더 많이 적용됨에 따라 첫 단어는 간단하게 삭제되었습니다.

주요 차이점은 동일한 프로세스를 사용하여 코드 저장소에서 아티팩트를 재 작성할 수 있다는 것입니다. 프로세스가 적용된 환경을 보존 한 경우입니다. 이 프로세스는 시간이 많이 걸리고 환경을 완벽하게 보존하여 아티팩트를 똑같은 방식으로 다시 만들 수 있으므로 아티팩트 리포지토리 에 저장하기 시작했습니다 .

아티팩트 리포지토리 에서 코드 리포지토리 와 별도로 저장하는 것은 DevOps 엔지니어가 결정할 디자인 결정입니다. 일부 기업, 즉 퍼포 , 제안 뿐만 아니라 유물 저장소로 자신의 코드 저장소를 사용합니다. 각 저장소 의 액세스 , 감사 , 객체 크기 , 객체 태그 지정확장 성 측면에서 서로 다른 요구 사항이 있으므로 상황에 따라 두 가지 다른 제품을 사용하는 것이 더 좋습니다. 예를 들어 Git리포지토리는 전체 개발 시스템에 전체적으로 복사되므로 코드 리포지토리에 아티팩트를 저장하면 최근에이를 완화 할 수있는 방법이 있지만 모든 이유를 넘어서서 크기가 증가합니다. 또 다른 결정은 저장할 아티팩트입니다. 일부 회사는 중간 아티팩트를 개별 오브젝트 파일로 저장하여 재 구축 속도를 높이고 다른 회사는 단순히 최종 바이너리 만 저장합니다. 모든 아티팩트가 동일한 값을 갖는 것은 아닙니다. 릴리스 빌드로 인한 아티팩트는 개발자 빌드로 인한 아티팩트와 다른 요구 사항을 가질 수 있습니다.

가장 일반적인 아티팩트는 구성 , 전처리 , 컴파일 , 링크 , 자동화 된 테스트 , 아카이빙 , 패키징 , 미디어 파일 생성 및 처리 , 데이터 파일 생성 , 문서 파싱 , 코드 분석 , QA 등의 프로세스 결과입니다 .


자식 크기에 대한 문장은 완전히 정확하지 않습니다 .git lfs 를 사용 하면이 문제를 완화시킬 수 있습니다. (작은 정밀도)
Tensibai

흥미 롭습니다. 심지어 내 생각 (추측)을 훨씬 더 확증합니다. 두 가지 : perforce-link는 수정 및 추가 질문이 필요합니다. "테스트 데이터 추적"(사용한 입력 및 얻은 출력)도 그러한 인공물로 간주 될 수 있다는 데 동의하십니까? 그리고 BTW,이 답변은 "소프트웨어 에스크로"영역에 사용 된 "확인 수준"에 대해 상기시켜줍니다. 나는 소프트웨어 에스크로 주제가 DevOps에 대한 주제로 간주되어야하는지 궁금해하기 시작합니다.
Pierre.Vriens

1
테스트 데이터를위한 @ Pierre.Vriens. 테스트 데이터가 DB라면 아티팩트 개념에 맞지 않는 경우는 어렵습니다. 에스크로의 경우, 질문이 나에게 잘 들리도록 충분히 집중되어 있다면, 나는 전혀 모른다.
Tensibai

@ Pierre.Vriens 나는 '테스트 데이터'(단순한 수에서 샘플 DB 레코드를 통한 수백만 파일에 이르기까지)라는 이름에 맞는 것이 너무 많아서 문맥없이 너무 광범위하다는 것을 의미합니다.
Tensibai

@ Pierre.Vriens (및 알림에 대해 죄송한 Jiri) 나는 귀하의 공급자와의 계약 협상이 주제라고 생각하지 않으며, 귀하가 설명하는 것은 내가 추측 한 것에 대한 법적 협상 일뿐입니다.
Tensibai

7

"아티팩트"라는 단어의 두 가지 사용법이 있으며 하나는 소스 코드를 아티팩트로 만드는 반면 두 번째는 아티팩트가 아닌 것으로 만듭니다. 실제로 이것은 매우 혼란 스러울 수 있습니다!

구체적인 것, 이상적인 것으로서의“인공물” –이 의미는“사람이 만든 물건, 일반적으로 문화적 또는 역사적 관심사 중 하나”라는 단어의 일반적인 의미이며 기술적 전문 용어가 아닙니다. 다음은 기술적 인 맥락의 예입니다 . 소프트웨어를 디버깅 할 때 소프트웨어에 대해 알아 봅니다. 이 학습을 회귀 테스트와 같은 소프트웨어 아티팩트로 전환하는 것은 종종 귀중한 투자입니다. 그렇지 않으면이 학습은 잊혀지고 학습을위한 노력은 낭비 될 것입니다. 이러한 의미에서 소스 코드는 인공물로 간주됩니다.

레시피에 의해 생성 된 것으로서 "아티팩트" –이 의미는 일부 난해한 레시피를 사용하여 연금술사의 대중적인 이미지를 사용하여 종종 아티팩트라고하는 마법 장치를 생성합니다. 연금술사의 은유의 레시피에 해당하는 소스 코드와 연금술사의 은유의 인공물에 해당하는 해당 소스 코드에서 파생 된 것을 구별하는 데 사용되는 전문 용어입니다. 예를 들어 plop-fizz 프로그램의 인공물 제작을 자동화했습니다. 이제 소스 tarball, 서명 파일, DEB 및 RPM 패키지를 모두 하나의 명령으로 인스턴스화 할 수 있습니다! 이 의미는 소스 코드에서 생성 된 용어를 나타내는 데 사용되는 용어이므로 소스 코드를 인공물로 인식하지 않습니다.


3

답은 장소마다 다를 수 있다고 생각합니다. 현재 내가 일하는 곳에서 아티팩트는 개발에 사용되는 소스 코드를 제외하고 다른 엔티티가 소비하는 것입니다. 이것은 소스 제어에 들어갑니다.

여기에는 제품 바이너리 또는 기타 필요한 제품, 라이브러리, 객체 파일, 미디어 파일 또는 테스트 데이터와 같은 테스트 아티팩트가 포함됩니다.

소스 코드는 아티팩트로 간주되지 않습니다. "소비자"의 정의와 일치하지 않는 한, 타사 라이브러리, 테스트에 사용되는 스크립트 코드 또는 기타 목적 (개발 버전 자체는 아님)을 포함합니다.


흠, 흥미 롭군요. 내가 추측 한 것을 확인하고 있습니다. 우리가 이야기하는 플랫폼이나 OS가 중요하지 않다는 데 동의하십니까? 예를 들어, 메인 프레임의 경우에도이 용어를 "사용할 수있는"용어도 사용합니다. 그렇다면 대답에 그 내용을 포함시킬 수 있습니까?
Pierre.Vriens

버전 관리의 실제 코드조차도 소비되면 아티팩트로 간주 될 수 있습니다. 예를 들어 웹 사이트에있는 그대로 배포 할 템플릿 기반 HTML 페이지 예를 들어 실제 배치를 위해 임시 위치에 다른 빌드 된 아티팩트와 함께 명시 적으로 복사해야하는 배치 아티팩트입니다. 그러나 항상 소스 코드 저장소에서 얻을 수 있기 때문에 아티팩트 저장소에 저장하는 것은 의미 없습니다.
Dan Cornilescu

@Pierre 어떤 OS가 아티팩트인지 직교인지 확인한 후 왜 다른 OS가 응답에 포함되어야하는지 잘 모르겠습니다.
Rsf

0

문화 측면에 대한 참고 사항. DevOps에서는 "아티팩트 저장소"라는 개념을 주어진 상황으로 간주하지만 조직 프로세스와 관련이없는 것 같습니다.

문화 문제 : 조직에서 ITIL을 사용하는 경우 인증 된 직원은 "우리가 생산 한 소프트웨어 구성 항목을 배치하기위한 저장소와 같은 명확한 미디어 라이브러리가 필요합니다"라고 말합니다. 따라서 체계적으로 구성된 IT 프로세스에 관심이있는 사람들은이를 지원하고 사용중인 (관리되지 않는) 도구를 모릅니다. 반대로, Nexus 또는 Artifactory 언어에 대한 타당성이 필요한 경우 조직에 따라 설명하기가 어려울 수 있습니다.

추가 자료 : https://en.wikipedia.org/wiki/Definitive_Media_Library


1
안녕하세요. 사이트에 오신 것을 환영합니다. 답변에 더 많은 정보를 추가하십시오. 현재 상태에서 링크 전용이며 플래그가 지정됩니다. :)
Dawny33

DevOps가 문화에 관한 것이라면 ITIL에 대한 링크가 중요하다고 생각합니다. 때로는 IT 조직이 더 높은 조직 수준에서 지배하기 때문입니다. 이 무지의 대칭성을 명확히하기 위해 더 많은 설명을 추가했습니다.
Peter

1
나는 그것이 실제로 인공물이 무엇인지에 대한 질문을 다루지 않는다고 생각하지만, 적어도 지금 정직한 시도처럼 보입니다.
Tensibai

나는 @ Tensibai (현재)에 동의하고 내 이전 의견을 삭제했습니다 (더 이상 의심하지 않음). 이 답변에 모두가하는 말이 그리고에도 불구하고, 나는 아직도 그것을 얻을하지 않습니다 어떻게 내 나는 또한 내 질문에 제목, 즉 "에 요약하려고 질문, 주소 -answer이"사이드 노트 " 유물은 무엇 (또는 가공품 )? ". 새로운 시도를 환영합니다.
Pierre.Vriens
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.