DevOps/CI | CD

[κ°œλ…] CI/CD

chaerlo127 2022. 3. 25. 15:21
728x90

CIμ—λŠ” 무엇이 ν•„μš”ν• κΉŒ?

 

1. 버전 관리 도ꡬ

CIμ—λŠ” gitκ³Ό 같은 버전 관리 도ꡬ가 ν•„μš”ν•˜λ‹€. 버전 관리 도ꡬ가 μ†ŒμŠ€μ½”λ“œμ˜ μˆ˜μ •κ³Ό 백업을 μžλ™ν™” ν•  수 있고, μ—¬λŸ¬λͺ…이 κ³΅λ™μœΌλ‘œ κ°œλ°œν•œ λ‚΄μš©μ„ 동기화할 수 μžˆλ„λ‘ 도와주기 λ•Œλ¬Έμ΄λ‹€.

 

버전 관리 μ‹œμŠ€ν…œμ΄ κ΄€λ¦¬ν•˜μ§€ μ•ŠλŠ” μ†ŒμŠ€μ½”λ“œλŠ”, 개발 λ‹¨κ³„μ—μ„œ μžλ™ν™”κ°€ λ˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— CIλ₯Ό μ‚¬μš©ν•˜λŠ” 것은 λ¬΄μ˜λ―Έν•˜κ²Œ λœλ‹€.

 

πŸ“ 예) git, Subversion, Mercurial λ“±

 

2. CI 도ꡬ(CI tool)

CI 도ꡬλ₯Ό μ‚¬μš©ν•˜λ©΄, 슀크립트 싀행을 톡해 λ‹€μ–‘ν•œ μž‘μ—…μ„ ν•  수 μžˆλ‹€. 버전 관리 μ‹œμŠ€ν…œμ—μ„œ μ†ŒμŠ€μ½”λ“œλ₯Ό 주기적으둜 폴링(polling)ν•˜κ³ , ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•˜κ±°λ‚˜, λΉŒλ“œλ₯Ό ν•˜λŠ” λ“± phthon, groovy, shellκ³Ό 같은 슀크립트 μ–Έμ–΄λ₯Ό μ‚¬μš©ν•˜μ—¬ CI 과정을 ν†΅μ œν•  수 μžˆλ‹€.

 

 

πŸ“μ  ν‚¨μŠ€(Jenkins)

: μžλ°” 기반의 μ˜€ν”ˆμ†ŒμŠ€ CI/CD Tool, 섀정도 μžλ™μœΌλ‘œ ν•΄μ£Όμ–΄ νŽΈλ¦¬ν•˜κ³  λ‹€μ–‘ν•œ ν”ŒλŸ¬κ·ΈμΈμ„ μ„€μΉ˜ν•  수 μžˆλ‹€.

 λ¬΄λ£Œ, λ‹€μ–‘ν•œ ν”ŒλŸ¬κ·ΈμΈ, μ‚¬μš©μœ μ €κ°€ λ§Žμ•„ 이슈 해결이 쉬움, νŒŒμ΄ν”„ 라인 ν”ŒλŸ¬κ·ΈμΈ(pipeline plugin) 이용, 슀크립트 μ½”λ“œλ₯Ό ν†΅ν•œ μ˜μ†μ μœΌλ‘œ μœ μ§€λ˜λŠ” CIλ₯Ό 톡해 반볡 μž‘μ—… μ΅œμ†Œν™”

πŸ“CircleCI

: ν΄λΌμš°λ“œμ™€ μ„œλ²„ λ²„μ „μœΌλ‘œ μ œκ³΅ν•˜κ³  있고, Window, Linux, macOSμ—μ„œλ„ ꡬ좕 κ°€λŠ₯ν•˜λ‹€.

πŸ“TeamCity

: JetBrainsμ—μ„œ κ°œλ°œν•œ CI/CD Tool, μžλ°” 기반으둜 μžλ°”κ°€ μ„€μΉ˜κ°€ λ˜μ–΄ μžˆμ–΄μ•Ό ν•œλ‹€.

ν΄λΌμš°λ“œμ™€ 직접 ν˜ΈμŠ€νŒ…μ„ μœ„ν•œ μ„œλ²„λ‘œ μ‚¬μš©μ΄ κ°€λŠ₯ν•˜κ³  λ¬΄λ£Œμ΄λ‹€.

πŸ“Buildkite

 

728x90

3. λΉŒλ“œ μžλ™ν™” 도ꡬ

BuildλŠ” μ†ŒμŠ€μ½”λ“œ νŒŒμΌμ„ μ‹€ν–‰κ°€λŠ₯ν•œ μ†Œν”„νŠΈμ›¨μ–΄ μ‚°μΆœλ¬Όλ‘œ λ§Œλ“œλŠ” 일련의 κ³Όμ •μœΌλ‘œ μ†ŒμŠ€μ½”λ“œλ₯Ό 컴파일 ν•˜κ³  였브젝트 νŒŒμΌμ„ μƒμ„±ν•˜μ—¬ 링킹 μž‘μ—…μ„ 톡해 jar, warκ³Ό 같은 라이브러리 파일둜 λ§Œλ“œλŠ” 것을 μ˜λ―Έν•œλ‹€.

 

λΉŒλ“œ μžλ™ν™”λ₯Ό 톡해, 컴파일 λΉŒλ“œ 쀑 λ°œμƒν•˜λŠ” 였λ₯˜λ₯Ό 예방

 

πŸ“ 예) Maven, Gradle, ANT와 같은 λΉŒλ“œ 툴

 

CIμ—μ„œλŠ” 버전 관리 μ‹œμŠ€ν…œμ—μ„œ μˆ˜μ • 사항이 생기면 주기적으둜 ν˜Ήμ€ λ³€ν™”κ°€ 생긴 μ‹œμ μ— λΉŒλ“œλ₯Ό λ‹€μ‹œ ν•¨μœΌλ‘œμ¨ 컴파일 였λ₯˜λ‚˜ λΉŒλ“œ 였λ₯˜ 등을 λ°œκ²¬ν•˜μ—¬ 신뒰성이 μœ μ§€λ˜λ„λ‘ ν•΄μ•Όν•œλ‹€.

 

 

4. ν…ŒμŠ€νŠΈ μžλ™ν™” 도ꡬ

λ‹¨μœ„ ν…ŒμŠ€νŠΈλ₯Ό 톡해 κ°œλ°œμžκ°€ μ˜λ„ν•˜λŠ” λ°©ν–₯으둜 κΈ°λŠ₯이 μˆ˜ν–‰λ˜λŠ”μ§€ 검증

 

예) JUnit, python, Selenium

 

 

 

[좜처]

https://tech.com2us.com/blog/3597

https://wooncloud.tistory.com/79 

https://hyuntaeknote.tistory.com/9

728x90