인공물이란 무엇입니까?


53

" 아티팩트 " 를 언급하는 꽤 많은 질문답변 이 있습니다.

그것이 과 어떻게 관련되어 있는지 놀라지 않을 것입니다 .

내 질문 :

  • 실제로 "인공 식"이란 무엇입니까 (DevOps의 맥락에서)?
  • 인공물이 왜 사용됩니까?

내가 기본 질문으로 생각한 것에 대한 몇 가지 흥미로운 답변. 재미있게도 그들은 모두 오래된 메인 프레임 환경 (나의 DevOps 루트가있는 곳과 많은 DevOps 개념이 나온 곳)에서 비슷한 개념에 대해 생각 나게합니다.
Pierre.Vriens

답변:


66

Artifactory바이너리 저장소 관리자 역할을하는 JFrog의 제품 입니다. 많은 사람들이 Frigidaire 브랜드인지 여부에 관계없이 냉장고를 표시하기 위해 Frigidaire 또는 냉장고를 사용하는 것처럼 훨씬 일반적인 바이너리 저장소의 동의어로 '아티팩트'를 사용할 것이라고 말했습니다.

이진 저장소는 빌드 프로세스의 결과를 종종 아티팩트로 표시한다는 점에서 소스 코드 저장소의 자연스러운 확장입니다. 대부분의 경우 바이너리 저장소를 직접 사용하지 않고 선택한 기술과 함께 제공되는 패키지 관리자를 사용합니다.

대부분의 경우 이들은 나중에 전체 제품으로 조립할 수있는 개별 응용 프로그램 구성 요소를 저장하므로 더 작은 청크로 빌드를 중단 할 수있어 리소스를보다 효율적으로 사용하고 빌드 시간을 단축하며 바이너리 디버그 데이터베이스를 더 잘 추적 할 수 있습니다.

바이너리 저장소를 사용하여 관리 할 수있는 가장 인기있는 패키지 관리자는 다음과 같습니다.

  • 자바 : 항아리, 귀, 전쟁 등에는 Maven 과 공식 MavenCentral이 있습니다. maven 바이너리 저장소 형식 ( ivy , gradle 등) 을 사용하는 다른 많은 패키지 관리자가 있습니다 .
  • .Net : .NET 구성 요소 (DLL 및 EXE)에 대한 nuget 이지만 Chocolatey 와 같은 Windows 시스템에서 배포 메커니즘으로 사용할 수도 있습니다 . 최신 버전의 Powershell은이 기능을 사용하여 이진 저장소 및 Nuget 형식의 저장소로 로컬 배포를 구축 할 수있는 Powershell 갤러리 를 통해 Powershell 모듈을 배포 할 수 있습니다 . Windows 배포 관리에 관심이 있다면 OneGet을 확인하십시오 .
  • JavaScript에서 : 가장 인기있는 npm 이 있으며 nodejs 가 필요 합니다 .
  • 파이썬에는 pip 및 공식 패키지 인덱스 pypi가 있으며이 형식을 지원하는 바이너리 저장소를 통해 로컬 인스턴스를 만들 수도 있습니다.

이 목록은 완전하지 않습니다. 단지 무엇이 있는지에 대한 아이디어를 제공합니다.

이진 저장소를 사용하면 이러한 모든 저장소를 한 지붕 아래에서 호스팅 할 수 있으므로 팀의 관리가 훨씬 간단 해집니다. 이진 패키지 관리의 이점을 누리기 위해 대규모 팀이 필요하지 않습니다. 초기 투자는 그다지 크지 않으며 혜택은 즉시 느껴집니다. 특히 점점 더 많은 플랫폼, 프레임 워크 및 언어가 이러한 종속성 관리를 직접 통합하고 있습니다. 그러나 내가 찾은 가장 큰 장점은 프로그래머가 자연스럽고 편안한 환경을 만들어 필수 환경을 만드는 것입니다. 이는 견고한 툴체인을 만드는 데 도움이되며 전체 경험을 선택 스택에 자연스럽게 맞출 수 있도록 도와줍니다.

앞서 언급했듯이 바이너리 패키지 관리자 역할을 할 수 있는 많은 제품 이 있으며 , 대상 사용에있어 다른 제품보다 일반적이며, 접근성 및 가격도 매우 다양합니다.

개인적으로 바이너리 리포지토리는 소스 코드 리포지토리 또는 지속적인 통합과 같이 잘 설계된 devops 설정의 핵심 요소라고 생각합니다.


이 흥미로운 답변에 대한 감사합니다. 어떤 이유로 든,이 모든 것이 저를 "hm처럼 생각합니다. 따라서 이것은 오래된 메인 프레임 환경에서 실행 파일을 포함하는로드 라이브러리 (CICS / IMS / IDMS 리젼을 실행하는 데 사용되는 로드 라이브러리 와 같은 것)와 같은 것입니다 ." .
Pierre.Vriens

1
추가 할 한 가지 중요한 점은 메이븐 중앙 등과 같은 공공 저장소의 상승이다 modulecounts.com -이 종종하게 소프트웨어 프로젝트의 공급원이다 점점 더 많은 조립 srores 이러한 구성 요소 플러스 사용자 정의 접착제 / 프론트 엔드 코드 물론 고객의 특정 비즈니스의 논리.
피터

1
modulecounts.com에 대해 들어 본 적이 없지만 사이트는 다운되었지만 나중에 확인하겠습니다.
Newtopian

1
냉장고와 냉장고의 흥미로운 비유 :)
Ravi Tiwari

6

소스 코드 저장소와 바이너리 저장소의 차이점은 처음에 이해하는 데 도움이되는 방식으로 다음과 같이 생각했습니다. * Github 또는 Bitbucket은 모든 '코드'를 유지하는 데 유용합니다. 이 용어에 익숙해 질 때까지!

또한, Artifactory의 중요성은 DevOps의 철학과 관련하여 "한 번 빌드하고 항상 배포"라는 의미에서 이해할 수 있습니다. Continuous Integration에서 바이너리를 한 번 빌드하고 Artifactory에 넣은 다음 거기서 호출하여 다른 모든 환경에 배치하는 데는 먼 길을갑니다. 그렇게하면, 우리는 Dev에서 작동하는 코드가 Prod로 푸시 된 코드이고 작동 할 것입니다.


재미있는 설명, merci!
Pierre.Vriens

5

Artifactory는 JfrogBinary Repository Manager 제품입니다 .

이진 저장소 관리자 는 소프트웨어 개발 프로세스에서 생성되고 사용되는 저장소를 관리하는 데 주로 사용됩니다 .

에서 Artifactory의 주요 웹 페이지 :

JFrog Artifactory는 시중에서 판매되는 최초이자 유일한 유물 아티팩트 리포지토리 관리자로서 모든 언어 또는 기술로 만든 소프트웨어 패키지를 완벽하게 지원합니다.

...

... Artifactory는 개발에서 생산에 이르기까지 아티팩트를 추적 할 수있는 엔드 투 엔드 자동화 및 방탄 솔루션을 제공합니다.

언급 한 사용법 은 DevOps 의 일반 상표 에 대해 인기가있을 수 있음을 시사합니다 .


1
메르 단, 당신은 어떻게 든 Artifactory 단어의 조합 같은 것을 확인하고 Artifac Reposi의와 TS 토리 . 내가 궁금해하는 추가 질문은 이것입니다. 프로덕션에서 사용되지만 PHP 코드, CSS 파일, bash 스크립트 등과 같은 바이너리가 아닌 아티팩트는 어떻습니까?
Pierre.Vriens

1
응용 프로그램 코드에는 cvs, svn, git, mercurial과 같은 소스 코드 버전 관리 시스템이 있습니다. 또한 구성 코드의 경우 꼭두각시, 요리사, ansible, salt와 같은 구성 관리 및 배포 시스템이 있습니다.
Peter

@ Pierre.Vriens 나는 이런 식으로 생각하지 않았지만 어떻게 든 "공장"이 항상 먼저 떠올랐다. 감사!
Dan Cornilescu

메인 프레임에서는 "ChangeMan ZMF", "Endevor SCM"등과 같은 툴이 있습니다.이 툴은 사용자가 언급 한 모든 기능 (버전 관리, 배포 등을 포함하지만 워크 플로, 보안 등 모든 관련).
Pierre.Vriens

만약 우리가 단지 msinframes을 재창조한다면 그것들에 어떤 문제가 있을까요?!
피터

4

복잡한 일이 오늘날 모든 사람들에게 높이 평가되고 있다고 생각합니다. 나는이 질문에 간단히 대답하려고 노력할 것이다.

소스 리포지토리는 코드 및 해당 버전을 저장하는 데 사용되는 반면 아티팩트는 해당 코드의 출력 인 실행 프로그램을 저장하는 데 사용됩니다 (바이너리-dll, jar, war, ear, msi, exe 파일 등).

이제 코드와 다른 저장소에 개별적으로 배치하려는 이유는 보안 액세스, 해킹 위협, 악성 코드 체크인 또는 단순히 필요한 클라이언트에게 별도의 길을 갖는 것 등 여러 가지가 될 수 있습니다. 이진.

SCM의 기술은 2 가지 종류의 사용자 (하나는 소스 코드에 액세스 할 수있는 개발자 권한을 갖고 있고 다른 하나는 바이너리에 액세스 할 수있는 클라이언트로서)를 만드는 것으로 스스로를 밝힐 수있었습니다. 그러나 그것은 그 길을 잡지 않았다! 이제 인공물이 생겼습니다.


2

유물

특정 프로세스에서 생산 / 생성 / 제작 된 것

Java 프로젝트 빌드에서 자르십시오.

당신의 마음에서 질문

공장에서 차

새로운 노래

저장소

사물이 지속되는 리셉터클

자바 프로젝트를위한 Github.

어려운 질문에 대한 StackExchange

이론에서는, 유물 - ORY은 그들이 지속 및 수명주기 전반에 걸쳐 관리하는 유물의 저장소가 될 것입니다.

DevOps와 관련하여 Artifactory는 이진 아티팩트를 관리하는 제품입니다. 빌드에서 생성하고 컴파일 또는 배포시 재사용하는 다양한 유형 (Jar, Python 및 npm 패키지 등)을 저장하고 관리합니다.


재미있는 설명, merci!
Pierre.Vriens

ca me fais plaisir!
gumol
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.