반응형
지속적 통합(Continuous Integration, CI)
코드 통합을 위한 단계의 자동화
CI 장점
- 코드 통합을 위한 단계들의 중복을 최소화함으로서 개발 생산성 향상
- 주기적인 실행으로인해 문제점을 빠르게 발견 → 버그 수정 용이
- ⇒ 코드의 퀄리티 향상 도출
- 자동 빌드
- CI는 새로운 코드 변경 사항이나 커밋이 이루어질 때 자동으로 빌드 프로세스를 실행 → 소스 코드를 컴파일하고 필요한 실행 파일 또는 라이브러리를 생성하는 것을 의미
- 자동 테스트
- 빌드 후 정의된 테스트 스위트*를 실행하여 코드 변경이 이전 코드와 호환되며 예상대로 작동하는지 확인
- 주기적인 실행
- CI는 코드 변경이 이루어질 때마다 주기적으로 실행됨 → 빠르게 피드백을 받고 문제를 빠르게 감지하고 수정할 수 있도록 도와줌
- 버전 관리 시스템과 통합
- 주로 버전 관리 시스템(예: Git,SVN)과 통합되어 작업 중인 코드 변경을 감지하고 자동으로 CI 프로세스를 시작함
- 팀 협업 강화
- 다수의 개발자가 동시에 작업하는 경우 코드의 통합 문제를 최소화하므로 팀의 협업을 강화할 수 있음
*테스트 스위트
소프트웨어 개발에서 테스트를 수행하는 데 사용되는 테스트 케이스나 테스트 스크립트의 모음
지속적인 배포(Continuous Deployment) , 지속적인 제공(Continuous Delivery)
지속적 배포를 위한 방식
- 지속적인 배포
- 지속적인 배포는 개발자가 코드를 커밋하면 해당 코드가 자동으로 빌드, 테스트를 거친 후 프로덕션 환경에 자동으로 배포되는 것을 의미 → 빠른 피드백과 더 빠른 소프트웨어 출시를 가능하게 함
- 그러나 모든 변경 사항이 즉시 프로덕션 환경에 배포되므로 조심스럽게 사용해야 함
- 지속적인 제공
- 지속적인 제공은 개발자가 코드를 커밋하면 해당 코드가 자동으로 빌드, 테스트를 거친 후 스테이징 또는 테스트 환경에 배포되는 것을 의미
- 프로덕션 환경에는 수동으로 배포 → 이는 지속적인 배포와 비교하여 안정성을 강조하는 방식으로 사용됨
- 개발자들은 테스트 환경에서의 결과를 확인하고, 필요한 경우 수동으로 프로덕션 환경에 배포를 진행할 수 있음
docker hub
- 도커 컨테이너 이미지를 공유하고 관리하기 위한 온라인 서비스
- 도커 허브는 도커 이미지를 중앙에서 관리하고 배포하기 위한 저장소 역할을 함
- 도커 허브는 도커 생태계에서 중요한 요소로, 개발자 및 운영팀이 컨테이너 이미지를 효과적으로 공유하고 관리할 수 있게 해줌
도커 허브의 주요 기능과 특징
- 도커 이미지 저장소의 역할
- 도커 이미지를 저장하고 공유할 수 있는 저장소 → 이미지를 중앙에서 관리하고 필요한 경우에 다른 사용자와 공유할 수 있음
- 저장소의 공개 및 비공개 처리
- 공개 저장소의 경우 누구나 이미지를 검색하고 다운로드할 수 있음
- 비공개 저장소는 접근 권한이 있는 사용자만 이미지에 액세스할 수 있도록 보호됨
- 이미지 버전 관리
- 도커 허브는 이미지의 다양한 버전을 관리할 수 있음 → 이를 통해 애플리케이션의 여러 릴리스나 업데이트를 효과적으로 관리할 수 있습니다.
- 자동 빌드 및 테스트
- 도커 허브는 GitHub 또는 Bitbucket과 같은 소스 코드 저장소와 연동하여 자동 빌드 및 테스트를 지원함 → 코드 변경 사항이 발생할 때마다 자동으로 이미지를 빌드하고 테스트할 수 있음
- Web 기반 인터페이스 (=GUI를 지원)
- 도커 허브는 웹 기반 인터페이스를 제공하여 사용자가 이미지를 검색하고 관리할 수 있도록 함
docker compose
- 도커 컨테이너 기반 애플리케이션을 정의하고 실행하기 위한 도구
- 독립적인 프로그램이 아닌 도커 환경에서 사용되는 도구
- yaml 파일을 사용하여 여러 컨테이너 간의 관계와 구성을 정의
docker compose를 사용하는 프로세스
- Dockerfile 작성
- 각 컨테이너에 대한 Dockerfile을 작성
- Dockerfile : 컨테이너를 빌드하는 데 사용되는 명령어와 설정을 정의하는 파일
- docker-compose.yml 작성
- 애플리케이션의 전체 구성을 정의하는 YAML 파일을 작성 → 각 컨테이너의 이미지, 환경 변수, 네트워크 설정, 볼륨 마운트 등이 포함됨
- Compose 실행
- 작성한 docker-compose.yml 파일을 사용하여 docker-compose up 명령을 실행하면, 정의한 모든 컨테이너가 시작됨
- 필요에 따라 docker-compose down 명령을 사용하여 컨테이너를 중지하고 삭제할 수 있음
반응형
'DevOps > Docker' 카테고리의 다른 글
Dockerfile이란 무엇인가 (1) | 2024.02.05 |
---|---|
배포 자동화에 들어가기 앞서 - Docker mysql container 생성, IDE에 docker DB container 연동 (0) | 2023.12.27 |
배포 자동화에 들어가기 앞서 - Docker 기초 (0) | 2023.12.27 |
댓글