TIL(Today I Learned)

TIL-230823(CI/CD)

코코예원 2023. 8. 23. 23:25
728x90

📝오늘 공부한 것

  • CI/CD

 

알게 된 점

애플리케이션 개발과정을 자동화하고 지속적으로 개발된 코드를 안정적으로 배포하는 데 사용되는 개념과 접근 방법을 나타낸다.

 - 주로 사용되는 툴 : Jenkins, Tekton Pipelines, GoCD

 

장점 :

 - 빠른 피드백 : 코드 변경에 대한 테스트와 피드백을 신속하게 받아 개발자들이 문제를 빠르게 수정할 수 있다.

 - 자동화된 릴리스 : 코드 변경 사항을 자동으로 배포하므로 릴리스 프로세스가 더 효율적이고 안정적으로 이루어진다.

 - 더 낮은 버그 비율 : 자동화된 테스트와 지속적인 통합으로 인해 버그 발생 가능성이 줄어든다.

 - 작업의 용이성 : 작은 변경 사항도 주기적으로 통합되므로 병합 작업이 줄어들어 개발자 간의 협업이 용이해진다.

 

[ CI : Continuous Integration ]

 - 개발자들을 위한 자동화 프로세스

 - 개발자들이 작성한 코드를 일정 주시로 통합하면서, 이 과정에서 변경된 사항과 기존 코드 간의 충돌이나 버그를 빠르게 발견할 수 있다.

 - 빌드와 테스트를 자동화하여 통합 및 검증 단계의 효율성을 향상시킬 수 있다.

 - 주로 사용되는 툴 : Jenkins, Travis, CircleCi

 

[ CD : Continuous Deployment / Continuous Delivery ]

 - 지속적인 서비스 제공 및 지속적인 배포

 - 개발자들이 애플리케이션에 적용한 변경사항이 버그 테스트를 거쳐 리포지토리에 자동으로 업로드되는 것을 뜻함.

 - 개발자의 변경사항을 리포지토리에서 고객이 사용 가능한 프로덕션 환경까지 자동으로 릴리스하는 것을 의미. 이는 애플리케이션 제공 속도를 저해하는 수동 프로세스로 인한 운영팀의 프로세스 과부하 문제를 해결

- 단계별 테스트, 코드 리뷰, 시스템 검증 등을 자동화하고, 운영 환경과 유사한 환경에서 코드를 테스트하여 배포 준비. 배포는 개발자 혹은 관리자의 승인을 거쳐 수행

 - 사용자에게 실시간으로 업데이트 및 새로운 기능을 제공할 수 있다.

 - 지속적인 배포를 위해서는 배포 전 검증 및 테스트 자동화가 철저히 이루어져야 한다.

개발된 코드를 자동으로 운영 환경으로 배포하는 프로세스를 의미

 - 모든 테스트를 통과한 코드 변경 사항이 자동으로 운영 환경으로 배포되는 것을 의미하며, CD는 테스트를 통과한 코드가 승인 단계를 거쳐 배포되는 것을 의미한다.

 - CD시스템은 코드를 배포하는 작업을 자동화하고, 운영환경에 안정적으로 변경 사항을 반영하여 빠르게 소프트웨어를 개발 및 업데이트할 수 있도록 돕는다.

 - 주로 사용되는 툴 : Jenkins,Spinnaker, Screwdriver

 

 

https://www.redhat.com/ko/topics/devops/what-is-ci-cd

 

CI/CD(CI CD, 지속적 통합/지속적 배포): 개념, 툴, 구축, 차이

CI/CD는 애플리케이션의 통합 및 테스트 단계부터 제공 및 배포까지 애플리케이션 라이프사이클 전체에서 지속적인 자동화와 지속적인 모니터링을 제공하는 것을 뜻합니다.

www.redhat.com

https://unity.com/kr/solutions/what-is-ci-cd

 

CI/CD

CI/CD(지속적 통합/지속적 제공 및 배포)에는 저장소에서 이루어지는 코드 관련 변경 사항을 하루에 여러 차례 통합하는 작업이 포함됩니다. 자세히 읽고 CI/CD 복잡성에 대해 알아보세요.

unity.com

 

느낀 점🤔

CICD에서 항상 Github Actions, Codedeploy를 사용했었다.

이번에 CICD를 공부하면서 Jenkins를 가장 많이 봤다.

다음에는 Jenkins를 공부해보고 사용해봐야겠다.

728x90