본문 바로가기
코드프레소 체험단

[라이브 강의] 2022-01-19

by 의정부핵꿀밤 2022. 2. 28.
728x90

주제 : 형상 관리


▶ 형상 관리를 하게 되면 기획부터 고객에게 릴리즈될 때까지의 모든 과정을 볼 수 있다

 

CI (Continuous Integration)

  • 소프트웨어 개발을 위한 라이프 사이클 전체에 걸쳐 지속적인 통합, 자동화, 모니터링 등을 제공하는 sw 개발 방식
  • 개발자들이 작업한 내용을 빠른 주기로 master 브랜치에 통합 및 빌드함으로써, 통합 과정에서 발생하는 이슈의 조기 발견이 가능

 

Jenkins (젠킨스)

  • 대표적인 소프트웨어 CI 도구
  • 2004년 썬 마이크로시스템즈에서 허드슨 프로젝트를 통해 시작
  • 사실상 형상관리 쪽으로 입사하지 않는 이상 다루지 않아서 미리 공부할 필요는 없다
  • 그냥 기업에서 CI를 할 때 가장 많이 사용하는 도구인 것만 알아두면 될 듯!

 

▶ CD (Continuous Delivery)

  • 지속적인 배포
  • Coninupus Delivery or Continuous Deployment
  • 소프트웨어가 항상 신뢰 가능한 수준에서 배포될 수 있도록 지속적으로 관리 및 배포하는 과정
  • 소프트웨어를 더 빠르고 주기적으로 빌드 및 테스트, 출시하는 것을 목표로 한다

 

▶ CD를 왜 도입해야 하는가?

  • 이슈의 조기 발견
    • 지속적이고 빠른 통합은 이슈를 조기에 발견하게 한다
  • 개발자 생산성 향상 
    • 통합, 빌드, 테스트, 배포 등의 과정이 자동화되면 개발자들은 개바에 더 집중할 수 있게 된다
    • 원래는 개발자가 위의 과정을 모두 해야 하지만, 이 과정이 생략된다
  • 빠른 개발 및 빈번한 업데이트
    • 통합, 빌드, 테스트, 배포 자동화가 지속적으로 반복되며, 개발 및 배포 주기가 빈번해진다

 

▶ 도커와 쿠버네티스가 CI/CD를 하는 도구인 것만 알면 된다! (굳이 따로 공부할 필요 X)

 

 

▶ Docker (도커)

  • 컨테이너 기반의 오픈소스 가상화 플랫폼
  • 다양한 프로그램, 실행 환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공한다
  • 프로그램의 배포 및 관리를 단순하게 해준다

 

▶ 실제 CI/CD 프로세스

  • 보통 젠킨스로 CI 정도만 설정하고, 그 뒤에 도커나 쿠버네티스를 붙힌다
  • 젠킨스 : 나의 원격 저장소에 올라오는 커밋들을 실시간으로 감시한다
  • 젠킨스는 원격 저장소에 커밋들이 모이면, 감지하고 자동으로 빌드한다
  • 만약 빌드 시 오류가 발생하면, 젠킨스가 커밋을 올린 담당자에게 자동으로 메일을 보낸 후 해당 커밋은 반영하지 않는다
  • 그리고 문제가 없는 커밋들은 자동으로 반영을 해준다
  • 그럼 젠킨스가 만들어난 SW를 도커가 적잘한 형태로 만들어지도록 만든다
  • 그럼 이 도커는 젠킨스가 초치종 빌드해서 만든 소프트웨어를 미리 정해진 위치에 배포를 하는 역할을 하는 것이다
  • 보통 CI/CD를 따로 나누지 않고 하나의 팀에서 전반적으로 관리한다
728x90

댓글