CI/CD
✔ 용어 정리
📕 CI/CD는 애플리케이션의 개발 단계를 자동화하여 짧은 주기로 사용자에게 제공하는 방법이다.
📄 CI(Continuous Integration)는 프로젝트를 할 때 "각각의 작업을 어떻게 잘 통합할 수 있는가?"이다.
📌 방법은 빌드 자동화 및 각 작업을 공유 브랜치에 수월하게 병합할 수 있게 하는 테스트 자동화 등이 있다.
📄 CD(Continuous Deliver)는 빌드된 애플리케이션 코드를 배포를 위한 저장소에 저장하는 것이다.
📄 CD(Continous Deployment)는 빌드된 애플리케이션 코드를 배포 자동화 하는 것이다.
📌 Continous Deliver와 Continous Deployment 두 용어는 자동화가 어느 정도까지 되었는가에 따라 사용이 된다.
✔ 장점
1. 소스 코드를 통합하는 과정에서 불필요하고 반복적인 작업을 줄일 수 있다.
2. 프로젝트에 여러 개발자가 참여하는 경우 각자의 코드 변경 상항 병합 있어 충돌을 방지할 수 있다.
3. 애플리케이션 개발부터 배포까지 빠르게 진행할 수 있다.
프로젝트에 적용
✔ 우리가 선택한 CI/CD
Jenkins, Docker, Git을 사용해서 CI/CD를 구성하기로 했다. Jenkins는 빌드 자동화부터 배포까지 CI/CD를 한 번에 처리가 가능하다. Docker는 Jenkins 서버와 Production 서버 두 개에서 애플리케이션 실행을 위한 동일한 환경을 제공해 준다. Git은 우리의 코드를 저장해 주고 특정 이벤트를 통해 Jenkins으로 코드를 보내준다.
✔ 공부해봤으면 하는 것
❓Jenkins은 서버에 바로 설치하는 것이 좋을까? Docker 환경에서 설치해서 사용하는 것이 좋을까?
What are the advantages of running Jenkins in a docker container
I've found quite a few blogs on how to run your Jenkins in Docker but none really explain the advantages of doing it. These are the only reasons I found:reasons to use Docker. 1) I want most of...
stackoverflow.com
참고
What is CI/CD?
CI/CD introduces ongoing automation and continuous monitoring throughout the lifecycle of apps, from integration and testing phases to delivery and deployment.
www.redhat.com
생각
CI/CD는 너무나 어렵다. 정의가 어렵다기보다는 CI/CD 전체 흐름에서 어디서부터 어디까지가 CI이고 CD인지 구분하기가 어려웠다. 자동화를 어떤 방식으로 어느 정도까지 해야 하는지도 어려웠다. 그래도 이번에 찾아보면서 어느 정도 감은 잡지 않았나 싶다. 이후에는 검색을 통해 CI/CD 구성해 보면서 구체적으로 그림을 그려봐야겠다.
'개발일지 > TIL' 카테고리의 다른 글
[230717] [미니] 모여봐요 인생네컷 CI/CD 구성 (3) (0) | 2023.07.17 |
---|---|
[230716] [미니] 모여봐요 인생네컷 CI/CD 구성 (2) (0) | 2023.07.16 |
[230714] [미니] 모여봐요 인생네컷 S.A (0) | 2023.07.14 |
[230713] Record 적용해보기 (0) | 2023.07.13 |
[230712] Filter에서 400 상태코드 내려주기 (0) | 2023.07.12 |