본문 바로가기
기타

[스킬업] Docker 기반 CI/CD 파이프라인 구축하기 1주차

by 자몽먹은토끼 2024. 12. 3.
728x90
반응형

GitLab CI/CD 소개 및 학습 환경 구축

 

 

 

CI/CD 란?

 

: 지속적인 통합, 지속적인 배포

> 소프트웨어 개발 협업의 중심에 있다. CI/CD를 이용해서 개발, 빌드, 테스트, 프로덕트 배포의 전체 과정을 자동화된 파이프라인으로 구축하고, 이 파이프라인을 통해서 각 팀이 협업을 한다.

 

CI/CD 학습을 위해서는 운영체제, 개발환경, Docker, AWS Cloud 등 여러가지 것들이 준비되어야 한다.

 

 

CI/CD환경은 협업의 기본적인 환경이다.
CI/CD는 통합하고 배포하기 위한 프로세스이다.
핵심은 자동화!

 

 

코드 개발 및 배포 과정

코드를 작성  >  하나로 패키징  >  검증 및 QA  >  배포

 

 

CI/CD 관점에서의 개발 및 배포 과정

CI : 지속적인 통합 - 코드 개발 및 패키징

CD : 지속적인 배포 - 통합 패키지를 배포, 사용자에게 제공 (cloud나 k8s(쿠버네티스)에 배포)

 

 

이 모든 과정을 예전에는 수작업 > 현재는 자동화(continuous)

> 이 전체 과정을 조율하는 소프트웨어 : Git Lab

 

 

 

CI (Continuous Integration)
  • 자동 빌드 : 새로운 변경사항이 있을 때, 자동으로 빌드를 수행
  • 자동 테스트 : 빌드 후에는 자동으로 테스트가 실행

 

 

CD (Continuous Delivery)
  • 자동 테스트 : 배포 전 품질을 보장하기 위한 자동화된 테스트
  • 자동 베포 : 테스트 후 자동으로 목표지점으로 배포

> tar.gz, docker image, install file 등을 하나로 패키징하여 성능/보안 검사(테스트) 후 cloud/ data_center/ kubernetes 등으로 배포

 

 

 

GitLab

 

: CI/CD 프로세스를 자동화하기 위한 오픈소스 자동화 도구.

  • 자동 빌드
  • 자동 테스트
  • 자동 배포
  • 웹 기반 사용자 인터페이스
  • 자동화 스크립트 제공

build - test - deploy 각 스테이지 파이프라인을 보여줌 (시각화)

 

 

왜 깃랩 이어야 하는가?
  • 오픈소스
  • 자체 git 저장소를 제공
  • 통합된 환경 제공
  • 다양한 플러그인 제공 (쿠버네티스, 보안 요구사항 점검 플러그인, gcp, aws 등)
  • 활성화된 커뮤니티 (안정성, 안전성)
  • 자체 호스팅(데이터센터에 직접 설치하여 사용가능) 가능
  • Issue 관리 툴
728x90
반응형