์ดˆ๋ณด์ž ๊ฐ€์ด๋“œ: ์˜คํ”ˆ ์†Œ์Šค ๋„๊ตฌ๋กœ DevOps ์ฒด์ธ ๊ตฌ์ถ•

์ดˆ๋ณด์ž ๊ฐ€์ด๋“œ: ์˜คํ”ˆ ์†Œ์Šค ๋„๊ตฌ๋กœ DevOps ์ฒด์ธ ๊ตฌ์ถ•
์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ XNUMX๋‹จ๊ณ„๋กœ ์ฒซ ๋ฒˆ์งธ DevOps ์ฒด์ธ์„ ๊ตฌ์ถ•ํ•˜์„ธ์š”.

DevOps๋Š” ๋„ˆ๋ฌด ๋Š๋ฆฌ๊ณ  ์—ฐ๊ฒฐ์ด ๋Š๊ฒผ์œผ๋ฉฐ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ๋งŒ๋ณ‘ํ†ต์น˜์•ฝ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ DevOps์— ๋Œ€ํ•œ ์ตœ์†Œํ•œ์˜ ์ง€์‹์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. DevOps ์ฒด์ธ๊ณผ ๊ฐ™์€ ๊ฐœ๋…๊ณผ XNUMX๋‹จ๊ณ„๋กœ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์™„์ „ํ•œ ์•ˆ๋‚ด์„œ๊ฐ€ ์•„๋‹ˆ๋ผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋Š” "๋ฌผ๊ณ ๊ธฐ"์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ์—ญ์‚ฌ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ฉ์‹œ๋‹ค.

DevOps ์†Œ๊ฐœ

์ €๋Š” Citi Group์—์„œ ํด๋ผ์šฐ๋“œ ์ž‘์—…์„ ํ•˜๊ณ  Citi์˜ ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด IaaS ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ–ˆ์ง€๋งŒ ํ•ญ์ƒ ๊ฐœ๋ฐœ ์ฒด์ธ์„ ์ตœ์ ํ™”ํ•˜๊ณ  ๊ฐœ๋ฐœ์ž ๊ฐ„์˜ ๋ฌธํ™”๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๊ด€์‹ฌ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. Cloud Architecture and Infrastructure์˜ CTO์ธ Greg Lavender๊ฐ€ ์ด ์ฑ…์„ ์ถ”์ฒœํ–ˆ์Šต๋‹ˆ๋‹ค. ํ”ผ๋‹‰์Šค ํ”„๋กœ์ ํŠธ. DevOps ์›์น™์„ ์•„๋ฆ„๋‹ต๊ฒŒ ์„ค๋ช…ํ•˜๊ณ  ์†Œ์„ค์ฒ˜๋Ÿผ ์ฝ์Šต๋‹ˆ๋‹ค.

๋’ท๋ฉด์˜ ํ‘œ๋Š” ํšŒ์‚ฌ์—์„œ ์ƒˆ ๋ฒ„์ „์„ ์ถœ์‹œํ•˜๋Š” ๋นˆ๋„๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์ดˆ๋ณด์ž ๊ฐ€์ด๋“œ: ์˜คํ”ˆ ์†Œ์Šค ๋„๊ตฌ๋กœ DevOps ์ฒด์ธ ๊ตฌ์ถ•

Amazon, Google ๋ฐ Netflix๋Š” ์–ด๋–ป๊ฒŒ ๊ทธ๋ ‡๊ฒŒ ๋งŽ์€ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๊นŒ? ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๊ฑฐ์˜ ์™„๋ฒฝํ•œ DevOps ์ฒด์ธ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ƒˆ์Šต๋‹ˆ๋‹ค.

DevOps๋กœ ์ „ํ™˜ํ•˜๊ธฐ ์ „๊นŒ์ง€ Citi์—์„œ๋Š” ์ƒํ™ฉ์ด ๋งค์šฐ ๋‹ฌ๋ž์Šต๋‹ˆ๋‹ค. ๊ทธ๋•Œ ์šฐ๋ฆฌ ํŒ€์€ ํ™˜๊ฒฝ์ด ๋‹ฌ๋ž์ง€๋งŒ ๊ฐœ๋ฐœ ์„œ๋ฒ„์— ์ˆ˜๋™์œผ๋กœ ์ „๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋Š” IBM WebSphere Application Server Community Edition์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ํ•˜๋‚˜์˜ ๊ฐœ๋ฐœ ์„œ๋ฒ„์—๋งŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐฐ๋‹ฌ์„ ๋™์‹œ์— ์‹œ๋„ํ•˜๋ฉด์„œ ์„œ๋ฒ„๊ฐ€ "๋–จ์–ด์กŒ๊ณ " ๋งค๋ฒˆ "๊ณ ํ†ต์Šค๋Ÿฝ๊ฒŒ" ์šฐ๋ฆฌ๋ผ๋ฆฌ ํ˜‘์ƒํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•œ ์ฝ”๋“œ ์ ์šฉ ๋ฒ”์œ„๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์•˜๊ณ , ์‹œ๊ฐ„์ด ๋งŽ์ด ์†Œ์š”๋˜๋Š” ์ˆ˜๋™ ์ „๋‹ฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ์—ˆ์œผ๋ฉฐ, ์ผ๋ถ€ ์ž‘์—… ๋˜๋Š” ํด๋ผ์ด์–ธํŠธ ์š”๊ตฌ ์‚ฌํ•ญ์˜ ๋„์›€์œผ๋กœ ์ฝ”๋“œ ์ „๋‹ฌ์„ ์ถ”์ ํ•  ๋ฐฉ๋ฒ•์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

๊ธ‰ํžˆํ•ด์•ผ ํ•  ์ผ์ด ๋ถ„๋ช…ํ–ˆ๊ณ  ๊ฐ™์€ ์ƒ๊ฐ์„ ๊ฐ€์ง„ ๋™๋ฃŒ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ•จ๊ป˜ ์ฒซ ๋ฒˆ์งธ DevOps ์ฒด์ธ์„ ๋งŒ๋“ค๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ๊ฐ€์ƒ ๋จธ์‹ ๊ณผ Tomcat ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋ฅผ ์„ค์ •ํ–ˆ๊ณ  ์ €๋Š” Jenkins, Atlassian Jira ๋ฐ BitBucket๊ณผ์˜ ํ†ตํ•ฉ, ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•œ ์ฝ”๋“œ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ์ฒ˜๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋Š” ์„ฑ๊ณต์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ฐœ๋ฐœ ์ฒด์ธ์„ ์™„์ „ํžˆ ์ž๋™ํ™”ํ•˜๊ณ  ๊ฐœ๋ฐœ ์„œ๋ฒ„์—์„œ ๊ฑฐ์˜ 100% ๊ฐ€๋™ ์‹œ๊ฐ„์„ ๋‹ฌ์„ฑํ–ˆ์œผ๋ฉฐ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ ์ ์šฉ ๋ฒ”์œ„๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ  Git ๋ธŒ๋žœ์น˜๋ฅผ Jira ์ œ๊ณต ๋ฐ ๋ฌธ์ œ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. DevOps ์ฒด์ธ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•œ ๊ฑฐ์˜ ๋ชจ๋“  ๋„๊ตฌ๋Š” ์˜คํ”ˆ ์†Œ์Šค์˜€์Šต๋‹ˆ๋‹ค.

์‚ฌ์‹ค Jenkins๋‚˜ Ansible์„ ์‚ฌ์šฉํ•œ ๊ณ ๊ธ‰ ๊ตฌ์„ฑ๋„ ์ ์šฉํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฒด์ธ์ด ๋‹จ์ˆœํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๋Š” ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ด๊ฒƒ์€ ์›์น™์˜ ๊ฒฐ๊ณผ ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค ํŒŒ๋ ˆํ†  (์ผ๋ช… 80/20 ๊ทœ์น™).

DevOps ๋ฐ CI/CD ์ฒด์ธ์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์„ค๋ช…

DevOps์—๋Š” ๋‹ค๋ฅธ ์ •์˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Agile๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ DevOps์—๋Š” ๋‹ค์–‘ํ•œ ๋ถ„์•ผ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋Œ€๋ถ€๋ถ„์€ ๋‹ค์Œ ์ •์˜์— ๋™์˜ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. DevOps๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์˜ ๋ฐฉ๋ฒ• ๋˜๋Š” ์ˆ˜๋ช… ์ฃผ๊ธฐ์ด๋ฉฐ, ์ฃผ์š” ์›์น™์€ ๊ฐœ๋ฐœ์ž์™€ ๋‹ค๋ฅธ ์ง์›์ด "๋™์ผํ•œ ํŒŒ์žฅ์— ์žˆ๋Š”" ๋ฌธํ™”๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์ž์‹ ์ด ๊ฐ€์žฅ ์ž˜ํ•˜๋Š” ์ผ์„ ํ•˜๊ณ , ๋ฐฐ์†ก ๋นˆ๋„๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ณ , ์ž‘์—… ์ƒ์‚ฐ์„ฑ์ด ์ฆ๊ฐ€ํ•˜๊ณ , ์œ ์—ฐ์„ฑ์ด ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

๋„๊ตฌ๋งŒ์œผ๋กœ๋Š” DevOps ํ™˜๊ฒฝ์„ ๋งŒ๋“ค๊ธฐ์— ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์ง€๋งŒ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. ์ด ์ค‘ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์ง€์†์  ํ†ตํ•ฉ ๋ฐ ์ง€์†์  ์ œ๊ณต(CI/CD)์ž…๋‹ˆ๋‹ค. ๊ฐ ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ์ฒด์ธ์—๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋‹จ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: DEV(๊ฐœ๋ฐœ), INT(ํ†ตํ•ฉ), TST(ํ…Œ์ŠคํŠธ), QA(ํ’ˆ์งˆ ๋ณด์ฆ), UAT(์‚ฌ์šฉ์ž ์ˆ˜์šฉ ํ…Œ์ŠคํŠธ), STG(์ค€๋น„), PROD(์‚ฌ์šฉ)). , ์ˆ˜๋™ ์ž‘์—…์ด ์ž๋™ํ™”๋˜๊ณ  ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ณ ํ’ˆ์งˆ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ œ๊ณตํ•˜๋ฉฐ ์‰ฝ๊ฒŒ ๋‹ค์‹œ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋…ธํŠธ๋Š” ์˜คํ”ˆ ์†Œ์Šค ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด XNUMX๋‹จ๊ณ„๋กœ DevOps ์ฒด์ธ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ดˆ๋ณด์ž ๊ฐ€์ด๋“œ: ์˜คํ”ˆ ์†Œ์Šค ๋„๊ตฌ๋กœ DevOps ์ฒด์ธ ๊ตฌ์ถ•

์‚ฌ์—…์„ ์‹œ์ž‘ํ•ฉ์‹œ๋‹ค.

1๋‹จ๊ณ„: CI/CD ํ”Œ๋žซํผ

๋จผ์ € CI/CD ๋„๊ตฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Jenkins๋Š” DevOps ์šด๋™์„ ๋Œ€์ค‘ํ™”ํ•˜๊ณ  CICD์˜ ์‚ฌ์‹ค์ƒ์˜ ํ‘œ์ค€์ด ๋œ Java๋กœ ์ž‘์„ฑ๋œ MIT ๋ผ์ด์„ ์Šค ์˜คํ”ˆ ์†Œ์Šค CI/CD ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

์  ํ‚จ์Šค๋ž€? ๋‹ค์–‘ํ•œ ์„œ๋น„์Šค์™€ ๋„๊ตฌ๋ฅผ ์œ„ํ•œ ๋งˆ๋ฒ• ๊ฐ™์€ ์ œ์–ดํŒ์ด ์žˆ๋‹ค๊ณ  ์ƒ์ƒํ•ด ๋ณด์‹ญ์‹œ์˜ค. Jenkins์™€ ๊ฐ™์€ CI/CD ๋„๊ตฌ๋Š” ๊ทธ ์ž์ฒด๋กœ๋Š” ์“ธ๋ชจ๊ฐ€ ์—†์ง€๋งŒ ๋‹ค๋ฅธ ๋„๊ตฌ์™€ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ•๋ ฅํ•ด์ง‘๋‹ˆ๋‹ค.

Jenkins ์™ธ์—๋„ ๋‹ค๋ฅธ ๋งŽ์€ ์˜คํ”ˆ ์†Œ์Šค ๋„๊ตฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ฌด๊ฑฐ๋‚˜ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค.

์ดˆ๋ณด์ž ๊ฐ€์ด๋“œ: ์˜คํ”ˆ ์†Œ์Šค ๋„๊ตฌ๋กœ DevOps ์ฒด์ธ ๊ตฌ์ถ•

CI/CD ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•œ DevOps ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ดˆ๋ณด์ž ๊ฐ€์ด๋“œ: ์˜คํ”ˆ ์†Œ์Šค ๋„๊ตฌ๋กœ DevOps ์ฒด์ธ ๊ตฌ์ถ•

localhost์— CI/CD ๋„๊ตฌ๊ฐ€ ์žˆ์ง€๋งŒ ์•„์ง ํ•  ์ผ์ด ๋งŽ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐ‘์‹œ๋‹ค.

2๋‹จ๊ณ„: ๋ฒ„์ „ ๊ด€๋ฆฌ

CI/CD ๋„๊ตฌ์˜ ๋งˆ๋ฒ•์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฐ€์žฅ ์ข‹๊ณ  ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ ์†Œ์Šค ์ œ์–ด ๊ด€๋ฆฌ(SCM) ๋„๊ตฌ์™€ ํ†ตํ•ฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์‹ ์ฒญ์„œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Java, Python, C++, Go, Ruby, JavaScript ๋˜๋Š” ๋งˆ์ฐจ์™€ ์ž‘์€ ์ˆ˜๋ ˆ์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์„ ์†Œ์Šค ์ฝ”๋“œ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ํŠนํžˆ ํ˜ผ์ž ์ž‘์—…ํ•˜๋Š” ๊ฒฝ์šฐ ๋ชจ๋“  ๊ฒƒ์„ ๋กœ์ปฌ ๋””๋ ‰ํ† ๋ฆฌ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ”„๋กœ์ ํŠธ๊ฐ€ ์„ฑ์žฅํ•˜๊ณ  ๋” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ฐธ์—ฌํ•จ์— ๋”ฐ๋ผ ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ณต์œ ํ•˜๋ฉด์„œ๋„ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ณ‘ํ•ฉํ•  ๋•Œ ์ถฉ๋Œ์„ ํ”ผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฐฑ์—…์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ฝ”๋“œ ํŒŒ์ผ์— ๋Œ€ํ•œ ๋ณต์‚ฌ-๋ถ™์—ฌ๋„ฃ๊ธฐ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์–ด๋–ป๊ฒŒ๋“  ์ด์ „ ๋ฒ„์ „์„ ๋ณต์›ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ SCM์€ ์–ด๋””์—๋„ ์—†์Šต๋‹ˆ๋‹ค. SCM์€ ์ฝ”๋“œ๋ฅผ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ €์žฅํ•˜๊ณ  ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•˜๋ฉฐ ๊ฐœ๋ฐœ์ž ๊ฐ„์— ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

๋งŽ์€ SCM ๋„๊ตฌ๊ฐ€ ์žˆ์ง€๋งŒ Git์€ ๋‹น์—ฐํžˆ ์‚ฌ์‹ค์ƒ์˜ ํ‘œ์ค€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์ง€๋งŒ ๋‹ค๋ฅธ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ดˆ๋ณด์ž ๊ฐ€์ด๋“œ: ์˜คํ”ˆ ์†Œ์Šค ๋„๊ตฌ๋กœ DevOps ์ฒด์ธ ๊ตฌ์ถ•

๋‹ค์Œ์€ SCM์„ ์ถ”๊ฐ€ํ•œ ํ›„์˜ DevOps ํŒŒ์ดํ”„๋ผ์ธ ๋ชจ์Šต์ž…๋‹ˆ๋‹ค.

์ดˆ๋ณด์ž ๊ฐ€์ด๋“œ: ์˜คํ”ˆ ์†Œ์Šค ๋„๊ตฌ๋กœ DevOps ์ฒด์ธ ๊ตฌ์ถ•

CI/CD ๋„๊ตฌ๋Š” ์†Œ์Šค ์ฝ”๋“œ ์—…๋กœ๋“œ ๋ฐ ๋‹ค์šด๋กœ๋“œ์™€ ํŒ€ ํ˜‘์—…์„ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜์˜์ง€ ์•Š๋‹ค? ๊ทธ๋Ÿฌ๋‚˜ ์ด์ œ ์ˆ˜์‹ญ์–ต ๋ช…์˜ ์‚ฌ์šฉ์ž์—๊ฒŒ ์‚ฌ๋ž‘๋ฐ›๋Š” ์ž‘๋™ํ•˜๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

3๋‹จ๊ณ„: ์ž๋™ํ™” ๋„๊ตฌ ๊ตฌ์ถ•

๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ ์œผ๋กœ ์ง„ํ–‰๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ์—…๋กœ๋“œํ•˜๊ณ  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์†Œ์Šค ์ œ์–ด์— ์ปค๋ฐ‹ํ•˜๊ณ  ํ•จ๊ป˜ ์ž‘์—…ํ•  ์นœ๊ตฌ๋ฅผ ์ดˆ๋Œ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์•„์ง ์•ฑ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋˜๋ ค๋ฉด ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด ์ปดํŒŒ์ผ ๋ฐ ํŒจํ‚ค์ง•ํ•˜๊ฑฐ๋‚˜ ์‹คํ–‰ ํŒŒ์ผ๋กœ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (JavaScript๋‚˜ PHP์™€ ๊ฐ™์€ ํ•ด์„๋œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ์ปดํŒŒ์ผํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.)

๋นŒ๋“œ ์ž๋™ํ™” ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ์–ด๋–ค ๋„๊ตฌ๋ฅผ ์„ ํƒํ•˜๋“  ์˜ฌ๋ฐ”๋ฅธ ํ˜•์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์กฐํ•ฉํ•˜๊ณ  ์ •๋ฆฌ, ์ปดํŒŒ์ผ, ํ…Œ์ŠคํŠธ ๋ฐ ์ „๋‹ฌ์„ ์ž๋™ํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋นŒ๋“œ ๋„๊ตฌ๋Š” ์–ธ์–ด๋งˆ๋‹ค ๋‹ค๋ฅด์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜คํ”ˆ ์†Œ์Šค ์˜ต์…˜์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ดˆ๋ณด์ž ๊ฐ€์ด๋“œ: ์˜คํ”ˆ ์†Œ์Šค ๋„๊ตฌ๋กœ DevOps ์ฒด์ธ ๊ตฌ์ถ•

์™„๋ฒฝํ•œ! ์ด์ œ CI/CD ๋„๊ตฌ๊ฐ€ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ๋นŒ๋“œ ์ž๋™ํ™” ๋„๊ตฌ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์†Œ์Šค ์ œ์–ด์— ์‚ฝ์ž…ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ดˆ๋ณด์ž ๊ฐ€์ด๋“œ: ์˜คํ”ˆ ์†Œ์Šค ๋„๊ตฌ๋กœ DevOps ์ฒด์ธ ๊ตฌ์ถ•

๊ธฐ๋ถ„์ด ์ข‹์•„. ํ•˜์ง€๋งŒ ์ด ๋ชจ๋“  ๊ฒƒ์ด ์ง€๊ธˆ ์–ด๋””์—์„œ ํŽผ์ณ์งˆ๊นŒ์š”?

4๋‹จ๊ณ„: ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„

๋”ฐ๋ผ์„œ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ๋กค์•„์›ƒํ•  ์ˆ˜ ์žˆ๋Š” ํŒจํ‚ค์ง€ ํŒŒ์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์ •๋ง ์œ ์šฉํ•˜๋ ค๋ฉด ์ผ์ข…์˜ ์„œ๋น„์Šค๋‚˜ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์žˆ์–ด์•ผ ํ•˜์ง€๋งŒ ๋ชจ๋“  ๊ฒƒ์„ ์–ด๋”˜๊ฐ€์— ๋‘์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์›น ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ์›น ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์„œ๋ฒ„์—์„œ ํ˜ธ์ŠคํŒ…๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋Š” ํŒจํ‚ค์ง€๋œ ๋…ผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๊ณ , ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ Œ๋”๋งํ•˜๊ณ , ์†Œ์ผ“์„ ํ†ตํ•ด ์›น ์„œ๋น„์Šค๋ฅผ ๋…ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋ฅผ ์„ค์น˜ํ•˜๋ ค๋ฉด HTTP ์„œ๋ฒ„์™€ ๋ช‡ ๊ฐ€์ง€ ๋‹ค๋ฅธ ํ™˜๊ฒฝ(์˜ˆ: ๊ฐ€์ƒ ๋จธ์‹ )์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์ด ๋ชจ๋“  ๊ฒƒ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค(์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•ด์„œ๋Š” ์•„๋ž˜์—์„œ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค).

์—ฌ๋Ÿฌ ๊ฐœ๋ฐฉํ˜• ์›น ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์„œ๋ฒ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ดˆ๋ณด์ž ๊ฐ€์ด๋“œ: ์˜คํ”ˆ ์†Œ์Šค ๋„๊ตฌ๋กœ DevOps ์ฒด์ธ ๊ตฌ์ถ•

์ด๋ฏธ ๊ฑฐ์˜ ์ž‘๋™ํ•˜๋Š” DevOps ์ฒด์ธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ž˜ ํ–ˆ์–ด!

์ดˆ๋ณด์ž ๊ฐ€์ด๋“œ: ์˜คํ”ˆ ์†Œ์Šค ๋„๊ตฌ๋กœ DevOps ์ฒด์ธ ๊ตฌ์ถ•

์›์น™์ ์œผ๋กœ ์—ฌ๊ธฐ์—์„œ ๋ฉˆ์ถ”๊ณ  ์ง์ ‘ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ฝ”๋“œ ํ’ˆ์งˆ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

5๋‹จ๊ณ„: ์ปค๋ฒ„๋ฆฌ์ง€ ํ…Œ์ŠคํŠธ

ํ…Œ์ŠคํŠธ์—๋Š” ๋งŽ์€ ์‹œ๊ฐ„๊ณผ ๋…ธ๋ ฅ์ด ํ•„์š”ํ•˜์ง€๋งŒ ๋ฒ„๊ทธ๋ฅผ ๋ฐ”๋กœ ์ฐพ์•„ ์ตœ์ข… ์‚ฌ์šฉ์ž๊ฐ€ ๋งŒ์กฑํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฝ”๋“œ๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ํ…Œ์ŠคํŠธํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ฝ”๋“œ๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์กฐ์–ธ๋„ ์ œ๊ณตํ•˜๋Š” ๊ณต๊ฐœ ๋„๊ตฌ๊ฐ€ ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ CI/CD ๋„๊ตฌ๋Š” ์ด๋Ÿฌํ•œ ๋„๊ตฌ์— ์—ฐ๊ฒฐํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ๋Š” ํ…Œ์ŠคํŠธ ์ž‘์„ฑ ๋ฐ ์‹คํ–‰์„ ์œ„ํ•œ ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ์ฝ”๋“œ ํ’ˆ์งˆ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•œ ํžŒํŠธ๊ฐ€ ํฌํ•จ๋œ ๋„๊ตฌ์˜ ๋‘ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ

์ดˆ๋ณด์ž ๊ฐ€์ด๋“œ: ์˜คํ”ˆ ์†Œ์Šค ๋„๊ตฌ๋กœ DevOps ์ฒด์ธ ๊ตฌ์ถ•

ํ’ˆ์งˆ ํŒ์ด ํฌํ•จ๋œ ๋„๊ตฌ

์ดˆ๋ณด์ž ๊ฐ€์ด๋“œ: ์˜คํ”ˆ ์†Œ์Šค ๋„๊ตฌ๋กœ DevOps ์ฒด์ธ ๊ตฌ์ถ•

์ด๋Ÿฌํ•œ ๋„๊ตฌ์™€ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋Œ€๋ถ€๋ถ„์€ Java, Python ๋ฐ JavaScript์šฉ์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด C++ ๋ฐ C#์€ ๋…์ ์ ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค(GCC๋Š” ์˜คํ”ˆ ์†Œ์Šค์ด์ง€๋งŒ).

ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€ ๋„๊ตฌ๋ฅผ ์ ์šฉํ–ˆ์œผ๋ฉฐ ์ด์ œ DevOps ํŒŒ์ดํ”„๋ผ์ธ์€ ํŠœํ† ๋ฆฌ์–ผ ์‹œ์ž‘ ๋ถ€๋ถ„์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ๋‹จ๊ณ„

์ปจํ…Œ์ด๋„ˆ

์•ž์„œ ๋งํ–ˆ๋“ฏ์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋Š” ๊ฐ€์ƒ ๋จธ์‹ ์ด๋‚˜ ์„œ๋ฒ„์—์„œ ํ˜ธ์ŠคํŒ…๋  ์ˆ˜ ์žˆ์ง€๋งŒ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋” ๋งŽ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ปจํ…Œ์ด๋„ˆ๋ž€?? ์ฆ‰, ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ ์šด์˜ ์ฒด์ œ๋Š” ์ข…์ข… ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋ณด๋‹ค ๋” ๋งŽ์€ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•˜๊ณ  ์ปจํ…Œ์ด๋„ˆ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋ช‡ ๊ฐœ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๊ตฌ์„ฑ์œผ๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ๊ฒฝ์šฐ์—๋Š” ๊ฐ€์ƒ ๋จธ์‹ ์ด ํ•„์ˆ˜๋ถˆ๊ฐ€๊ฒฐํ•˜์ง€๋งŒ ์ปจํ…Œ์ด๋„ˆ๋Š” ์ถ”๊ฐ€ ๋น„์šฉ ์—†์ด ์„œ๋ฒ„์™€ ํ•จ๊ป˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ปจํ…Œ์ด๋„ˆ์˜ ๊ฒฝ์šฐ ๋‹ค๋ฅธ ์˜ต์…˜์ด ์žˆ์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ Docker ๋ฐ Kubernetes๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ดˆ๋ณด์ž ๊ฐ€์ด๋“œ: ์˜คํ”ˆ ์†Œ์Šค ๋„๊ตฌ๋กœ DevOps ์ฒด์ธ ๊ตฌ์ถ•

๋‹ค์Œ์—์„œ Docker ๋ฐ Kubernetes์— ๋Œ€ํ•œ ๊ธฐ์‚ฌ ์ฝ๊ธฐ Opensource.com:

๋ฏธ๋“ค์›จ์–ด ์ž๋™ํ™” ๋„๊ตฌ

๋‹น์‚ฌ์˜ DevOps ์ฒด์ธ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ˜‘์—… ๊ตฌ์ถ• ๋ฐ ์ œ๊ณต์— ์ค‘์ ์„ ๋‘๊ณ  ์žˆ์ง€๋งŒ DevOps ๋„๊ตฌ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ํฅ๋ฏธ๋กœ์šด ์ž‘์—…์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฏธ๋“ค์›จ์–ด ์ž๋™ํ™” ๋„๊ตฌ๋ผ๊ณ ๋„ ํ•˜๋Š” IaC(Infrastructure as Code) ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋„๊ตฌ๋Š” ๋ฏธ๋“ค์›จ์–ด์˜ ์„ค์น˜, ๊ด€๋ฆฌ ๋ฐ ๊ธฐํƒ€ ์ž‘์—…์„ ์ž๋™ํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ž๋™ํ™” ๋„๊ตฌ๋Š” ์˜ฌ๋ฐ”๋ฅธ ๊ตฌ์„ฑ์œผ๋กœ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ(์›น ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์„œ๋ฒ„, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ๋ชจ๋‹ˆํ„ฐ๋ง ๋„๊ตฌ)์„ ๊ฐ€์ ธ์™€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์„œ๋ฒ„๋กœ ํ‘ธ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐœ๋ฐฉํ˜• ๋ฏธ๋“ค์›จ์–ด ์ž๋™ํ™” ๋„๊ตฌ์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ดˆ๋ณด์ž ๊ฐ€์ด๋“œ: ์˜คํ”ˆ ์†Œ์Šค ๋„๊ตฌ๋กœ DevOps ์ฒด์ธ ๊ตฌ์ถ•

๊ธฐ์‚ฌ์˜ ์„ธ๋ถ€ ์‚ฌํ•ญ Opensource.com:

๊ทธ๋ฆฌ๊ณ  ์ง€๊ธˆ ๋ญ์•ผ?

์ด๊ฒƒ์€ ๋น™์‚ฐ์˜ ์ผ๊ฐ์— ๋ถˆ๊ณผํ•ฉ๋‹ˆ๋‹ค. DevOps ์ฒด์ธ์€ ํ›จ์”ฌ ๋” ๋งŽ์€ ์ผ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CI/CD ๋„๊ตฌ๋กœ ์‹œ์ž‘ํ•˜์—ฌ ์ž‘์—…์„ ๋” ์‰ฝ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ํ•ญ๋ชฉ์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ์žŠ์ง€๋งˆ ์—ด๋ฆฐ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋„๊ตฌ ํšจ๊ณผ์ ์ธ ํ˜‘์—…์„ ์œ„ํ•ด

์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ ๋” ์ข‹์€ DevOps ๊ธฐ์‚ฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ฐœ๋ฐฉํ˜• ์• ์ž์ผ ๋„๊ตฌ์™€ DevOps๋ฅผ ํ†ตํ•ฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€