인프런 커뮤니티 질문&답변

kingbj0429님의 프로필 이미지
kingbj0429

작성한 질문수

[2024] [DevOps] 빠르고 안전한 어플리케이션 배포 파이프라인(CI/CD) 만들기

artifacts 에 대한 질문이 있습니다!

해결된 질문

작성

·

177

·

수정됨

1

안녕하세요 지식공유자님

 

수준 높은 강의를 제공해주셔서 감사합니다!

 

gitlab-sast 같은 내용을 artifacts 로 업로드에서 사용하시던데,

artifacts 에 업로드 되는 내용으로 라이브러리 같은 것도 괜찮은가요?

 

artifacts 를 cache 처럼 사용해도 되는건가요?

 

예를들어 python3.8 를 CI/CD 가 실행될 때마다 직접 빌드를 하게되는데, 10분 정도가 소요된다고 했을때,

오래 걸리니, 한번 빌드 후 artifacts 에 업로드한 것을 다운 받아 사용하는 겁니다. (라이브러리 캐싱 처럼)

 

답변 1

1

천강민님의 프로필 이미지
천강민
지식공유자

안녕하세요.

좋은 질문 감사드립니다.

 

결론부터 말씀드리면, 아티팩트는 MR에 통합되는 보고서를 생성하거나 후속 작업(job)에서 사용이 필요한 경우에 보통 사용하게 되고(무조건 존재 해야함), 캐시는 있으면 좋고 없어도 효율이 조금 낮아질 뿐이지 작업이 동작하는데 문제 없는 경우에 사용하시면 좋습니다.(당연히 상황마다 달라질 순 있습니다.)

또한, 아티팩트는 현재 파이프라인에서만 유효하지만, 캐시는 언제든 사용할 수 있다는 장점도 있습니다.

 

위의 기준을 통해 답변 드리면, 파이프라인 내에서 빌드 후 생성한 아티팩트를 후속 작업에서 사용하고 싶다면 아티팩트를 사용하셔도 무방하고, 그게 아니라 파이프라인이 동작할 때 마다 가져오고 싶다면 캐시를 선택하시면 될 것으로 보입니다.

 

추가로, 빌드라는게 컨테이너 빌드를 말씀하시는 거면 뒤에서 배울 kaniko 파트에서 빌드 간 발생하는 레이어들을 컨테이너 레지스트리에 캐시하는 방법도 있으니 참고 하시면 좋을 것 같습니다.(컨테이너 이미지가 커질수록 전체를 아티팩트나 캐시에 보관하는 것은 정말 비효율적입니다!)

kingbj0429님의 프로필 이미지
kingbj0429
질문자

아하 이해했습니다 !!

CI/CD 워크플로우는 딱 정해진 정답이 없는거 같네요..

 

친절한 설명 감사합니다 :)

kingbj0429님의 프로필 이미지
kingbj0429

작성한 질문수

질문하기