티스토리 뷰
CI(Continuous Integration)/CD(Continuous Delivery)란?
애플리케이션 개발 단계를 자동화하여 애플리케이션을 더욱 짧은 주기로 고객에게 제공하는 방법.
CI/CD의 기본 개념은 지속적인 통합, 지속적인 서비스 제공, 지속적인 배포이다.
CI/CD는 새로운 코드 통합으로 인해 개발 및 운영팀에 발생하는 문제(일명 통합 지옥 "integration hell")를 해결하기 위한 솔루션이다.
특히 CI/CD는 애플리케이션의 통합 및 테스트 단계에서부터 제공 및 배포에 이르는 애플리케이션의 라이프사이클 전체에 걸쳐 지속적인 자동화와 지속적인 모니터링을 제공한다.
이러한 구축 사례를 일반적으로 "CI/CD 파이프라인"이라 부르며, 개발 및 운영팀의 애자일 방식 협력을 통해 DevOps 또는 SRE(사이트 신뢰성 엔지니어링) 방식으로 지원된다.
https://www.redhat.com/ko/topics/devops/what-is-ci-cd
CI/CD(CI CD, 지속적 통합/지속적 배포): 개념, 툴, 구축, 차이
CI/CD는 애플리케이션의 통합 및 테스트 단계부터 제공 및 배포까지 애플리케이션 라이프사이클 전체에서 지속적인 자동화와 지속적인 모니터링을 제공하는 것을 뜻합니다.
www.redhat.com
어플리케이션 개발시 계획부터 운영배포까지 그리고 그 후 진행되는 버그 및 개선건 분석까지 진행되는 절차이다.
어플리케이션을 서버에 배포하였다고 해서 끝난것이 아닌 시스템 운영에따라 버그가 발생되면 해당 버그를 수정하여 테스트 후 배포하는 작업이 반복적으로 이루어지는데 시간과 비용을 절약하기 위해 자동화 방법을 고민한 것이 CI/CD 이다.
개발과 테스트, 배포까지 작업을 자동화하기 위해 GitLab이나 Jenkins를 사용하여 구현한다.
운영에 배포할 때는 Dokcer 이미지로 배포하며 실제 GitLab이나 Jenkins 에서 소스 빌드를 진행하면서 Docker 이미지를 생성하여 컨테이너로 실행한다.
실행 시 기존 프로세스가 살아있을 경우 죽이고 실행한다.
GitLab에서 운영서버로 배포진행 방법
GitLab내 소스 저장소에 개발된 소스를 Commit And Push를 진행하고 그 후 GitLab을 통해 테스트와 빌드 및 배포를 진행하는데 이 때 지원하는게 GitLab-Runner라는 프로그램이 별도로 존재하여 테스트와 배포를 진행하도록 도와준다.
그 후 빌드하면서 생성된 Docker Image를 Docker Registry 서버로 업로드 하고 운영서버에서 Docker Registry 서버에 올라간 이미지를 받아오고 그 이미지를 컨테이너로 실행하는 과정을 통하여 간략한 CI/CD에 대해 이해할 수 있도록 한다.
Java 마이크로서비스(MSA) 프로젝트 실습 강의 - 인프런
Java SpringCloud와 여러 오픈소스를 연동하여 마이크로서비스를 구축하는 세미 프로젝트를 경험해보실 수 있습니다. 마이크로서비스 구축 경험을 해보고 싶으시다면 이 강의를 추천할게요!, 마이
www.inflearn.com
'자바 > MSA' 카테고리의 다른 글
Docker Window 설치 (1) | 2024.01.04 |
---|---|
Docker 개념 (0) | 2024.01.04 |
JUnit으로 간단한 단위테스트 개발 (0) | 2024.01.03 |
Microservice로 사용자 ID 전달 (0) | 2024.01.02 |
Gateway를 이용한 인증 (0) | 2024.01.02 |