๋ณธ๋ฌธ

CI/CD (์ง€์†์  ํ†ตํ•ฉ/์ง€์†์  ๋ฐฐํฌ)

๋ฐ˜์‘ํ˜•

 

๐Ÿ’ก CI/CD๋ž€?
- ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ๋‹จ๊ณ„๋ฅผ ์ž๋™ํ™”ํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ณด๋‹ค ์งง์€ ์ฃผ๊ธฐ๋กœ ๊ณ ๊ฐ์—๊ฒŒ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ๋ฒ•
- ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ†ตํ•ฉ ๋ฐ ํ…Œ์ŠคํŠธ ๋‹จ๊ณ„์—์„œ๋ถ€ํ„ฐ ์ œ๊ณต ๋ฐ ๋ฐฐํฌ์— ์ด๋ฅด๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ผ์ดํ”„์‚ฌ์ดํด ์ „์ฒด์— ๊ฑธ์ณ ์ง€์†์ ์ธ ์ž๋™ํ™”์™€ ์ง€์†์ ์ธ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์ œ๊ณต
- ์ด๋Ÿฌํ•œ ๊ตฌ์ถ• ์‚ฌ๋ก€๋ฅผ ์ผ๋ฐ˜์ ์œผ๋กœ "CI/CD ํŒŒ์ดํ”„๋ผ์ธ"์ด๋ผ ๋ถ€๋ฅด๋ฉฐ ๊ฐœ๋ฐœ ๋ฐ ์šด์˜์˜ ์• ์ž์ผ ๋ฐฉ์‹ ํ˜‘๋ ฅ์„ ํ†ตํ•ด ์ง€์›
- ์ง€์†์ ์ธ ํ†ตํ•ฉ(Continuous Integration), ์ง€์†์ ์ธ ์„œ๋น„์Šค ์ œ๊ณต(Continuous Delivery), ์ง€์†์ ์ธ ๋ฐฐํฌ(Continuous Deployment)์œผ๋กœ ๊ตฌ์„ฑ

 

1. CI: ์ง€์†์  ํ†ตํ•ฉ(Continuous Integration)
๊ฐœ๋ฐœ์„ ํ•˜๋ฉด์„œ ์ง€์†์ ์œผ๋กœ ์ฝ”๋“œ์— ๋Œ€ํ•œ ํ†ตํ•ฉ์„ ์ง„ํ–‰ํ•จ์œผ๋กœ์จ ํ’ˆ์งˆ์„ ์œ ์ง€ํ•˜์ž๋Š” ๊ฒƒ
- ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์ž๋™ํ™” ํ”„๋กœ์„ธ์Šค(๊ฐœ๋ฐœ์ž๊ฐ„์˜ ์ฝ”๋“œ ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ )
- ์ •๊ธฐ์ ์ธ ๋นŒ๋“œ ๋ฐ ํ…Œ์ŠคํŠธ(์œ ๋‹›ํ…Œ์ŠคํŠธ ๋ฐ ํ†ตํ•ฉํ…Œ์ŠคํŠธ)๋ฅผ ๊ฑฐ์ณ ๊ณต์œ  ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ์— ๋ณ‘ํ•ฉ๋˜๋Š” ๊ณผ์ •
- ํด๋ž˜์Šค์™€ ๊ธฐ๋Šฅ์—์„œ๋ถ€ํ„ฐ ์ „์ฒด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์„ฑํ•˜๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋ชจ๋“ˆ์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ๋ชจ๋“  ๊ฒƒ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰
- ์ž๋™ํ™”๋œ ํ…Œ์ŠคํŠธ์—์„œ ๊ธฐ์กด ์ฝ”๋“œ์™€ ์‹ ๊ทœ ์ฝ”๋“œ ๊ฐ„์˜ ์ถฉ๋Œ์ด ๋ฐœ๊ฒฌ๋˜๋ฉด CI๋ฅผ ํ†ตํ•ด ์ด๋Ÿฌํ•œ ๋ฒ„๊ทธ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ˆ˜์ • ๊ฐ€๋Šฅ
 
2. CD: ์ง€์†์ ์ธ ์„œ๋น„์Šค์ œ๊ณต(Continuous Delivery)
- CI ํ”„๋กœ์„ธ์Šค๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ค‘์— ์ง€์†์ ์œผ๋กœ ๋นŒ๋“œ์™€ ์œ ๋‹› ๋ฐ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ , ์ด๋ฅผ ํ†ต๊ณผํ•œ ์ฝ”๋“œ์— ๋Œ€ํ•˜์—ฌ ํ…Œ์ŠคํŠธ์„œ๋ฒ„์™€ ์šด์˜์„œ๋ฒ„์— ์ž๋™์œผ๋กœ Release
- ์šด์˜ํŒ€์ด ๋ณด๋‹ค ๋น ๋ฅด๊ณ  ์†์‰ฝ๊ฒŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ Production์œผ๋กœ ๋ฐฐํฌ ๊ฐ€๋Šฅ
- Production ํ™˜๊ฒฝ์œผ๋กœ ๋ฐฐํฌํ•  ์ค€๋น„๊ฐ€ ๋˜์–ด ์žˆ๋Š” ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ํ™•๋ณดํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ

3. CD: ์ง€์†์ ์ธ ๋ฐฐํฌ(Continuous Deployment)
- Production ์ค€๋น„๊ฐ€ ์™„๋ฃŒ๋œ ๋นŒ๋“œ๋ฅผ Source Repository์— ์ž๋™์œผ๋กœ Releaseํ•˜๋Š” ์ง€์†์  ์ œ๊ณต์˜ ํ™•์žฅ๋œ ํ˜•ํƒœ
- ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ•˜๋‚˜์˜ Production์œผ๋กœ Releaseํ•˜๋Š” ์ž‘์—…์„ ์ž๋™ํ™”
- Continuous Delivery๋กœ ํ†ต์นญํ•˜์—ฌ ์–ธ๊ธ‰ํ•˜๊ธฐ๋„ ํ•จ
- ๊ฐœ๋ฐœ์ž๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ž‘์„ฑํ•œ ํ›„ ๋ช‡ ๋ถ„ ์ด๋‚ด์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž๋™์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ์˜๋ฏธ
- ํ…Œ์ŠคํŠธ์™€ ๋นŒ๋“œ๊ฐ€ ‘์ง€์†์ ’์œผ๋กœ ์ด๋ฃจ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์—, ๋ฐฐํฌ ๋˜ํ•œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ‘์ง€์†์ ’์œผ๋กœ ์ด๋ฃจ์–ด์ง€๊ฒŒ ๋จ

 

 

๐Ÿ’ก Jenkins

- ๋ฌด๋ฃŒ๋‹ค.

- ์ง€์›ํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ๋งŽ๋‹ค.

- Reference ๋ฐ ์‚ฌ์šฉ์ž๊ฐ€ ๋งŽ๊ณ  ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด๊ฐ€ ๋งŽ๋‹ค.

- ์„ค์น˜ ๋ฐ ์‚ฌ์šฉ์ด ๊ฐ„๋‹จํ•˜๋‹ค.

- Remote Access API ๋ฅผ ์ œ๊ณตํ•˜๋ฏ€๋กœ ๋‹ค๋ฅธ ์†”๋ฃจ์…˜์—์„œ ์—ฐ๊ณ„ํ•˜์—ฌ ๊ธฐ๋Šฅ ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๐Ÿ’ก Jenkins ์„ค์น˜ํ•˜๋Ÿฌ ๊ฐ€๊ธฐ

https://server-engineer.tistory.com/763

 

 

 

๋ฐ˜์‘ํ˜•

๊ณต์œ 

๋Œ“๊ธ€