2024. 8. 17. 18:18ㆍCICD
Hmall 업무에서 소스 통합 건으로 빌드가 21분 정도 소요되는게 이슈가 되어 빌드 속도 개선을 고려하였다.
결과적으로 21분-> 9분으로 속도를 개선했다.
AS_IS | TO_BE | |
전체 빌드 속도 | 21분 | 9분 |
방법
1. PV 변경 : git clone 위치 변경 (21분 ->12분)
2. Kaniko filesystem option 튜닝 : single snapshot (12분-> 9분)
1. PV 변경
tekton에서 소스를 gitclone 해오는 위치를 변경하였는데,
PV 를 NAS(Network Attached Storage)에서 워커노드 내의 파일시스템으로 변경 하였다.
pv 종류 | yaml | 설명 |
nfs | name: tekton-pv-nfs spec: nfs: path: /vol-test/tekton server: 123.123.123.123 |
nfs(네트워크 파일시스템) NAS (Network Attached Storage) : 네트워크에 연결된 파일 스토리지 |
hostpath | name: tekton-pv-host spec: hostPath: path: /var/home/xxx type: DirectoryOrCreate |
워커노드 내의 파일시스템 |
원리:
nfs 에 비해 워커노드내의 pv를 사용하면
매번 읽고쓰는 작업마다 훨씬 적은 지연으로 작업이 가능하다.
참고 출처: 로컬디스크에 캐시하면 빌드 속도 개선이 가능함 : Tekton Pipelines에서 컨테이너 이미지 빌드 가속화 | 철턴
2. Kaniko filesystem option 튜닝 (Single Snapshot 적용)
tekton docker build-and-push task 실행시
--single-snapshot 옵션을 추가해주면
여러 레이어를 쌓는게 아닌 베이스이미지에 하나의 레이어만 쌓는다고 한다.
참고 출처: GoogleContainerTools/kaniko: Build Container Images In Kubernetes (github.com)
결과
AS_IS : pv NAS 사용
TO_BE: pv hostpath적용 + single snapshot 적용
Task | AS_IS 5회 평균 | TO_BE 5회 평균 |
git-clone | 2분 10초 | 21초 |
yarn-install | 3분 10초 | 40초 |
yarn-build | 5분 35초 | 5분 4초 |
dockerfile-create | 9초 | 22초 |
docker-build | 9분 42초 | 2분 45초 |
총 Task-run Time | 20분 46초 | 9분 12초 |
추후 테스트 및 조정할 내용
3. CPU / 메모리 조정
적정은 산정하여, cpu: 2~4G 메모리도 2~4G 로 설정돼있으나,
자주 사용하는 파이프라인은 메모리상황을 봐서 제한 상한을 더 높이는 방안을 고려중이다.
4.yarn build 와 docker build 가 튜닝할 요소가 더 보이니 추후 연구 및 스크립트를 조정해볼 예정이다.
'CICD' 카테고리의 다른 글
submodule 빌드 프로세스 개선 ( conflict 수 줄이는법! ) (0) | 2024.08.30 |
---|---|
새로운 repo 에 git commit이력까지 복사하기 (0) | 2023.05.02 |
AWS- Bamboo 솔루션 별 개념 비교 (0) | 2023.05.02 |