본문 바로가기
IT이야기

CI/CD

by evankim 2020. 2. 23.
728x90
반응형

1. 형상관리, CI/CD Flow

 

형상 관리란 (SCM, Software Configuration Management)

SW 개발 및 유지보수 과정에서 발생하는 소스코드, 문서 등 각종 결과물(형상)대한 변경사항을 체계적으로 관리하고 제어하기 위한 활동.

형상 관리의 필요성

기존의 파일 시스템으로 공유시 문제 발생시 복구 문제

프로젝트 진행중 과거의 특정 시점으로 돌아가야하는 경우

여러 사람이 같은 프로젝트에 참여할 경우, 각자가 수정한 부분을 팀원 전체가 동기화 하는 과정 자동화

소스코드의 변경 사항(diff) 및 누가 수정 했는지 추적.

브랜치를 통해 여러 프로젝트를 동시에 진행.

대규모 수정 작업을 더욱 안전하게 진행

 

 

 

중앙 집중식 (CVCS)

종류 : SVN (Subversion), CVS, Perforce, Source Safe …

 

버전 관리되는 모든 파일을 저장하는 하나의 원격 저장소가 있고, 다수의 클라이언트가 중앙 서버에서 파일을 받아서 사용.

데이터가 중앙 서버에 집중되는 형태이기 때문에 관리하기가 단순함.

중앙 서버가 다운될 경우 협업할수 없고 중앙 서버의 디스크에 문제가 생기면 프로젝트의 모든 히스토리를 잃을 수 있음.

 

분산 관리식 (DVCS)

종류 : Git (GitHub, GitLab, Bitbucket), Mercurial, Bazaar..

원격 저장소의 프로젝트를 통째로 로컬 저장소로 복사

중앙 서버가 다운되더라도 개발 작업자들은 작업이 가능하고 서버에 문제가 생겨도 클라이언트에서 받은 복제물을 통해 복원할 수 있음.

여러 버전을 동시에 작업할 경우 각 브랜치별로 작업하고 Merge가 쉬움으로 패치 및 배포 과정이 간단해진다.

 

 

Git 사용하는 대표적인 호스팅 서비스

GITHUB

가장 많은 오픈소스 저장소 보유.

가장 안정적인 서버 상태 제공

무료로 사용할 경우 저장소를 공개해야한다.

CI/CD 기능 제공

 

GITLAB

설치형 GitHub을 목표로 나온서비스로 Private 한 형태의 깃을 운영할 때 효율적

인원제한 없이 Private 저장소를 무료로 제공

CI/CD 기능 제공

 

BITBUCKET

JIRA, Hipchat과 연동이 편하다

5명의 사용자 까지는 Private 저장소를 무료로 제공

CI/CD 기능 제공

 

변경 관리 VS 버전 관리 VS 형상 관리 차이점

u변경 관리

단순히 소스의 변경 상황만을 관리한다. (변경 이력과 복원 기능 제공)

u버전 관리

변경을 관리하기 위한 효과적인 방법으로 버전을 통해 관리한다. 단순히 이 프로그램이 언제 어떻게 변경되었다 를 넘어 체크인, 체크아웃 부터

릴리즈, 퍼블리싱의 과정을 버전으로 관리할 수 있다.

u형상관리

위 모든 관리 개념을 모두 포함하고 프로젝트 진행상황, 빌드와 릴리즈, 배포 까지 모두 관리할 수 있는 통합 시스템

 

브랜치(Branch)

독립적으로 작업을 진행하기 위한 개념으로 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에 여러 작업을 동시에
진행할 수 있다.

 

브랜치 종류

 

 

 

 

 

 

 

 

 

 

 

반응형