πŸ“– [Theory] πŸ’» μžλ™ν™”... CI / CD λž€ 무엇인가 ??

πŸ’» CI / CD

μ•ˆλ…•ν•˜μ„Έμš”. πŸ‘‹

μ˜€λŠ˜μ€ CI / CD 에 λŒ€ν•΄

μ•Œμ•„λ³΄λ €κ³  ν•©λ‹ˆλ‹€.

πŸ’» CI / CD λž€ 무엇인가?

CI/CDλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 개발 단계λ₯Ό μžλ™ν™”ν•˜μ—¬ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ 보닀 짧은 주기둜 κ³ κ°μ—κ²Œ μ œκ³΅ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€.
CI/CD의 κΈ°λ³Έ κ°œλ…μ€ 지속적인 톡합, 지속적인 μ„œλΉ„μŠ€ 제곡, 지속적인 λ°°ν¬μž…λ‹ˆλ‹€.
CI/CDλŠ” μƒˆλ‘œμš΄ μ½”λ“œ ν†΅ν•©μœΌλ‘œ 인해 개발 및 μš΄μ˜νŒ€μ— λ°œμƒν•˜λŠ” 문제(일λͺ… "μΈν…Œκ·Έλ ˆμ΄μ…˜ ν—¬(integration hell)")을 ν•΄κ²°ν•˜κΈ° μœ„ν•œ μ†”λ£¨μ…˜μž…λ‹ˆλ‹€.

κ°„λ‹¨νžˆ λ§ν•˜μžλ©΄ μ‚¬μš©μžκ°€ 직접 ν…ŒμŠ€νŠΈλ₯Ό ν•˜κ±°λ‚˜ 직접 λΉŒλ“œλ₯Ό ν•΄μ„œ μ„œλ²„μ— λ°°ν¬ν•˜λŠ” μž‘μ—…λ“€μ„
λ²ˆκ±°λ‘­μ§€ μ•Šκ²Œ μžλ™ν™”λ₯Ό ν•΄μ£ΌλŠ” 것 μž…λ‹ˆλ‹€.

ci-cd

1. 지속적 ν†΅ν•©μ΄λž€ (CI) ?

Continuous Integration(μ΄ν•˜ CI)λŠ” 개발자λ₯Ό μœ„ν•œ μžλ™ν™” ν”„λ‘œμ„ΈμŠ€μΈ 지속적인 톡합을 μ˜λ―Έν•©λ‹ˆλ‹€.
CIλ₯Ό μ„±κ³΅μ μœΌλ‘œ κ΅¬ν˜„ν•  경우 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— λŒ€ν•œ μƒˆλ‘œμš΄ μ½”λ“œ λ³€κ²½ 사항이 μ •κΈ°μ μœΌλ‘œ λΉŒλ“œ 및 ν…ŒμŠ€νŠΈλ˜μ–΄
곡유 리포지토리에 λ³‘ν•©λ˜λ―€λ‘œ μ—¬λŸ¬λͺ…μ˜ κ°œλ°œμžκ°€ λ™μ‹œμ— μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 개발과 κ΄€λ ¨λœ μ½”λ“œ μž‘μ—…μ„ ν•  경우
μ„œλ‘œ μΆ©λŒν•  수 μžˆλŠ” 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λΉŒλ“œμ™€ ν…ŒμŠ€νŠΈλ₯Ό μžλ™ν™”ν•΄μ€λ‹ˆλ‹€.

2. 지속적 μ „λ‹¬μ΄λž€ (CD)?

CI κ°€ λΉŒλ“œ 및 ν…ŒμŠ€νŠΈ μžλ™ν™”λΌλ©΄ CD λŠ” 배포 μžλ™ν™”λ₯Ό ν•΄μ£ΌλŠ” κ²ƒμž…λ‹ˆλ‹€.
CDλŠ” 배포 μˆ˜μ€€μ— 따라 Continuous Delivery / Continuous Deployment 둜 λ‚˜λ‰©λ‹ˆλ‹€.

Continuous Delivery

- μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— μ μš©ν•œ 변경사항이 버그 ν…ŒμŠ€νŠΈλ₯Ό 거쳐 λ ˆν¬μ§€ν„°λ¦¬μ— μžλ™μœΌλ‘œ μ—…λ‘œλ“œ λ˜λŠ” 것
    
- μš΄μ˜νŒ€μ€ μ–Έμ œλ“  μ‹€μ‹œκ°„μœΌλ‘œ 이 λ ˆν¬μ§€ν„°λ¦¬μ—μ„œ μ‹€μ‹œκ°„μœΌλ‘œ ν”„λ‘œλ•μ…˜ ν™˜κ²½μœΌλ‘œ 배포 κ°€λŠ₯
    
    
Continuous Deployment

- μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ ν”„λ‘œλ•μ…˜ ν™˜κ²½μœΌλ‘œ λ°°ν¬ν•˜λŠ” μž‘μ—…μ„ μžλ™ν™” ν•˜λŠ” 것

- μ„œλ²„κ°€ μ—¬λŸ¬ λŒ€ 일 경우 λ”μš± μ€‘μš”

- Continuous Delivery둜 ν†΅μΉ­ν•˜μ—¬ μ–ΈκΈ‰ν•˜κΈ°λ„ 함


Continuous Delivery 와 Continuous Deployment λŠ” 
ν”„λ‘œλ•μ…˜ ν™˜κ²½ λ°°ν¬κΉŒμ§€ μžλ™ν™”λ₯Ό 해주냐 λ§ˆλƒμ˜ 차이λ₯Ό κ°–λŠ” 것 λ§κ³ λŠ”    
μƒλ‹Ήνžˆ λΉ„μŠ·ν•˜μ—¬ λ‘˜μ„ λ¬Άμ–΄μ„œ CD (Continuous Delivery)둜 ν†΅μΉ­ν•˜κΈ°λ„ ν•©λ‹ˆλ‹€.

cd

끝

CI / CD (지속적 톡합 / 지속적 전달) 에 λŒ€ν•΄ μ•Œμ•„λ³΄μ•˜μŠ΅λ‹ˆλ‹€.  

κ°μ‚¬ν•©λ‹ˆλ‹€. πŸ™

Reference

https://www.atlassian.com/continuous-delivery/principles/continuous-integration-vs-delivery-vs-deployment

https://onlywis.tistory.com/9

https://itholic.github.io/qa-cicd/

Written on June 19, 2020