2020๋…„์— ๋ชจ๋‘๊ฐ€ ๋ฐฐ์›Œ์•ผ ํ•  DevOps ๋„๊ตฌ

์ง€๊ธˆ ์ตœ๊ณ ์˜ DevOps ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”!

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

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

DevOps ๋„๊ตฌ๋ฅผ ๋ฒ”์ฃผ๋กœ ๋‚˜๋ˆ„๊ณ  ์ด๋ฅผ ์œ ์‚ฌ ๋„๊ตฌ์™€ ๋น„๊ตํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  • ๊ฐœ๋ฐœ ๋ฐ ๋นŒ๋“œ ๋„๊ตฌ
  • ํ…Œ์ŠคํŠธ ์ž๋™ํ™” ๋„๊ตฌ
  • ๋ฐฐํฌ ๊ตฌ์„ฑ ๋„๊ตฌ
  • ๋Ÿฐํƒ€์ž„ ๋„๊ตฌ
  • ํ˜‘์—… ๋„๊ตฌ.

์„ฑ๊ณต์ ์ด๊ณ  ์‚ฌ๋ ค ๊นŠ์€ ๊ตฌํ˜„ DevOps ์‹ค๋ฌด์ž ์œ„์— ๋‚˜์—ด๋œ XNUMX๊ฐœ ๊ทธ๋ฃน์˜ ์•…๊ธฐ๊ฐ€ ๋ชจ๋‘ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. CI/CD ํŒŒ์ดํ”„๋ผ์ธ์˜ ์ค‘์š”ํ•œ ์š”์†Œ๋ฅผ ๋†“์น˜์ง€ ์•Š๋„๋ก ํ”„๋กœ์ ํŠธ์˜ ํ˜„์žฌ ๋„๊ตฌ ์„ธํŠธ๋ฅผ ๋ถ„์„ํ•˜์„ธ์š”.

๊ฐœ๋ฐœ ๋ฐ ๋นŒ๋“œ ๋„๊ตฌ

2020๋…„์— ๋ชจ๋‘๊ฐ€ ๋ฐฐ์›Œ์•ผ ํ•  DevOps ๋„๊ตฌ
์ด๋Š” CI/CD ํŒŒ์ดํ”„๋ผ์ธ ์Šคํƒ์˜ ๊ธฐ์ดˆ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์ด ๋ฐ”๋กœ ์—ฌ๊ธฐ์„œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค! ์ด ์นดํ…Œ๊ณ ๋ฆฌ์˜ ์ตœ๊ณ ์˜ ๋„๊ตฌ๋Š” ์—ฌ๋Ÿฌ ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆผ์„ ๊ด€๋ฆฌํ•˜๊ณ  ๋‹ค๋ฅธ ์ œํ’ˆ๊ณผ ์‰ฝ๊ฒŒ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ ๋ผ์ดํ”„์‚ฌ์ดํด์˜ ์ด ๋‹จ๊ณ„์—๋Š” ์„ธ ๊ฐ€์ง€ ๋„๊ตฌ ๊ทธ๋ฃน์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(SCM)
  • ์ง€์†์  ํ†ตํ•ฉ(CI)
  • ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ

GIT๋Š” 2020๋…„์— ๊ธ์ •์ ์ธ ๊ฒƒ์œผ๋กœ ์ž…์ฆ๋˜์—ˆ์œผ๋ฏ€๋กœ SCM ๋„๊ตฌ๋Š” GIT๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. CI์˜ ์ „์ œ์กฐ๊ฑด์€ ๊ฒฉ๋ฆฌ๋œ ์ปจํ…Œ์ด๋„ˆ ํ™˜๊ฒฝ์—์„œ ๋นŒ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ์— ์žˆ์–ด์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฒ„์ „์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

SCM + CI ๋„๊ตฌ #1

์ˆ˜์ƒ์ž : GitLab ๋ฐ GitLab-CI

2020๋…„์— ๋ชจ๋‘๊ฐ€ ๋ฐฐ์›Œ์•ผ ํ•  DevOps ๋„๊ตฌ
2020๋…„ DevOps ์ฃผ๊ธฐ์˜ ์ตœ๊ณ ์˜ ๋„๊ตฌ๋Š” ์˜์‹ฌํ•  ์—ฌ์ง€ ์—†์ด GitLab์ด๋ฉฐ ๊ฐ€๊นŒ์šด ๋ฏธ๋ž˜์—๋„ ๊ณ„์†ํ•ด์„œ ํ˜์‹ ์„ ์ฃผ๋„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

GitLab์˜ ์ฃผ์š” ๊ธฐ๋Šฅ์€ Git ์ €์žฅ์†Œ๋ฅผ ํŽธ์•ˆํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์›น ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ง๊ด€์ ์ด๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. GitLab์€ ๋ฌด๋ฃŒ ๋ฒ„์ „์œผ๋กœ ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์„ ์ œ๊ณตํ•˜๋ฉฐ SaaS ๋ฐ ์˜จํ”„๋ ˆ๋ฏธ์Šค(์ž์ฒด ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์†Œํ”„ํŠธ์›จ์–ด ํ˜ธ์ŠคํŒ…)๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์–ด๋–ค SCM ๋„๊ตฌ๋„ ์ €์žฅ์†Œ์—์„œ CI(์ง€์†์  ํ†ตํ•ฉ)๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ GitLab์€ ์˜ค๋žซ๋™์•ˆ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด ์™”์Šต๋‹ˆ๋‹ค. GitLab-CI๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์†Œ์Šค ์ฝ”๋“œ ๋ฃจํŠธ์— .gitlab-ci.yml ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋ฉฐ, ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ์ •ํ™•ํžˆ ์ง€์ •ํ•œ ๋‚ด์šฉ์— ๋”ฐ๋ผ ์ž‘์—…์„ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. GitLab๊ณผ GitLab-CI๋Š” ์ง€์†์  ํ†ตํ•ฉ(CI-as-code) ๋ถ„์•ผ์˜ ๋ฆฌ๋”๋กœ ๋‹น์—ฐํžˆ ์ธ์ •๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ์ด์ 

  • ์‹ ๋ขฐ์„ฑ - ์ด ์ œํ’ˆ์€ 2013๋…„๋ถ€ํ„ฐ ์‹œ์žฅ์— ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•ˆ์ •์ ์ธ; ์ž˜ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
  • ์˜คํ”ˆ ์†Œ์Šค - GitLab์˜ ๋ฌด๋ฃŒ ๋ฒ„์ „์€ ๊ฐœ๋ฐœ ํŒ€์— ํ•„์š”ํ•œ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ์ œํ•œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์œ ๋ฃŒ ์„œ๋น„์Šค ํŒจํ‚ค์ง€๋Š” ๋‹ค์–‘ํ•œ ๊ทœ๋ชจ์™€ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๊ฐ€์ง„ ํšŒ์‚ฌ์— ์œ ์šฉํ•œ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ๋ฐ˜ CI - ์‹œ์žฅ์— ๋‚˜์™€ ์žˆ๋Š” ๋‹ค๋ฅธ ์–ด๋–ค ๋„๊ตฌ๋„ GitLab-CI์ฒ˜๋Ÿผ SCM์— ์ง์ ‘ ์ง€์†์ ์ธ ํ†ตํ•ฉ์„ ๊ตฌ์ถ•ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. Docker๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฒˆ๊ฑฐ๋กœ์›€ ์—†์ด ๊ฒฉ๋ฆฌ๋œ ๋นŒ๋“œ๊ฐ€ ๋ณด์žฅ๋˜๋ฉฐ, ๋‚ด์žฅ๋œ ๋ณด๊ณ ์„œ๋ฅผ ํ†ตํ•ด ๋””๋ฒ„๊น…์ด ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค. ๋™์‹œ์— ์—ฌ๋Ÿฌ ๋„๊ตฌ๋ฅผ ๋ณต์žกํ•˜๊ฒŒ ํ†ตํ•ฉํ•˜๊ณ  ๊ด€๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
  • ๋ฌด์ œํ•œ ํ†ตํ•ฉ - GitLab์€ ํ•„์š”ํ•œ ๋ชจ๋“  DevOps ๋„๊ตฌ๋ฅผ ์‰ฝ๊ฒŒ ํ†ตํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ ํŒ€์€ ๋ชจ๋“  ํ™˜๊ฒฝ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ๋‹จ์ผ ์ •๋ณด ์†Œ์Šค๋ฅผ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๊ฒฝ์Ÿ

์ „ํˆฌ์— ์ฐธ๊ฐ€ํ–ˆ์œผ๋‚˜ ์Šน๋ฆฌํ•˜์ง€ ๋ชปํ•จ

์ด ๋ฒ”์ฃผ์—๋Š” ๋‹ค๋ฅธ ์ธ๊ธฐ ์žˆ๋Š” ๋„๊ตฌ๊ฐ€ ์žˆ์ง€๋งŒ GitLab๋งŒํผ ์ข‹์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

GitHub์˜ โ€” ์†Œ๊ทœ๋ชจ ๊ธฐ์—…๊ณผ ๊ฐœ๋ฐœ ์ดˆ๊ธฐ ๋‹จ๊ณ„๋ฅผ ์œ„ํ•œ ํƒ์›”ํ•œ SaaS ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ์ž์ฒด ๋„คํŠธ์›Œํฌ์— IP ์ฃผ์†Œ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•œ ๋Œ€๊ธฐ์—…์˜ ๊ฒฝ์šฐ GitHub์˜ ์œ ์ผํ•œ ์†”๋ฃจ์…˜์€ ๊ณ ๊ฐ€์šฉ์„ฑ ์‹œ์Šคํ…œ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” .OVA ๊ฐ€์ƒ ๋จธ์‹ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์˜จํ”„๋ ˆ๋ฏธ์Šค ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ค์›Œ์ง€๊ณ , ๊ฒŒ๋‹ค๊ฐ€ .OVA๋Š” ์ค‘๊ฐ„ ๊ทœ๋ชจ ๊ธฐ์—…์—๋งŒ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์„œ๋ฒ„๊ฐ€ ๋” ํฐ ๋ถ€ํ•˜๋กœ ์ธํ•ด ์ถฉ๋Œํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. GitHub Actions(์ตœ๊ทผ๊นŒ์ง€, ์•„์ง ์˜จํ”„๋ ˆ๋ฏธ์Šค ๋ฒ„์ „์€ ์•„๋‹˜) ๋˜๋Š” CI-as-code๊ฐ€ ๋ถ€์กฑํ•˜๋‹ค๋Š” ๊ฒƒ์€ ๋ณ„๋„์˜ CI ๋„๊ตฌ๋ฅผ ์„ ํƒํ•œ ๋‹ค์Œ ํ•ด๋‹น ํ†ตํ•ฉ์„ ๊ด€๋ฆฌํ•ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ GitHub๋Š” GitLab์˜ ๋‘ ๋ฒ„์ „๋ณด๋‹ค ํ›จ์”ฌ ๋น„์Œ‰๋‹ˆ๋‹ค.

์  ํ‚จ์Šค โ€” Jenkins๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์†์ ์ธ ํ†ตํ•ฉ ๋„๊ตฌ ์ค‘ ํ‘œ์ค€์œผ๋กœ ๊ฐ„์ฃผ๋˜์ง€๋งŒ ํ•ญ์ƒ ๋ฒ„์ „ ์ œ์–ด ๊ธฐ๋Šฅ์ด ๋ถ€์กฑํ–ˆ์Šต๋‹ˆ๋‹ค. Jenkins์™€ ์ผ์ข…์˜ SCM ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. GitLab์ด ๋‘ ๊ฐ€์ง€๋ฅผ ๋ชจ๋‘ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ๋„ˆ๋ฌด ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ํ‰๋ฒ”ํ•œ UX ๋””์ž์ธ์€ ์ตœ์‹  ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ ํ•ฉํ•˜์ง€ ์•Š์œผ๋ฉฐ ์•„์‰ฌ์šด ์ ์ด ๋งŽ์Šต๋‹ˆ๋‹ค.

BitBucket/๋Œ€๋‚˜๋ฌด โ€” ๋‚˜๋Š” ๊ทธ๋ฅผ ์ž๋™ ํŒจ์ž๋กœ ์ธ์‹ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. GitLab์ด ๋ชจ๋“  ๊ฒƒ์„ ์™„์ „ํžˆ ๋…๋ฆฝ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋„๊ตฌ๊ฐ€ ๋‘ ๊ฐœ์ธ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? BitBucket Cloud๋Š” GitLab-CI/GitHub Action ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜์ง€๋งŒ, ์Šคํƒ€ํŠธ์—…๋ณด๋‹ค ํฐ ํšŒ์‚ฌ๋Š” ์ด๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์˜จํ”„๋ ˆ๋ฏธ์Šค BitBucket ์„œ๋ฒ„๋Š” BitBucket ํŒŒ์ดํ”„๋ผ์ธ๋„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค!

#1 ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ๋„๊ตฌ

์ˆ˜์ƒ์ž : ํ”Œ๋ผ์ด์›จ์ดDB

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

์ฃผ์š” ์ด์ 

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒ„์ „ ๊ด€๋ฆฌ - Flyway๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ถ”๊ฐ€ ๋„๊ตฌ ์—†์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒ„์ „์„ ์ƒ์„ฑํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ถ”์ ํ•˜๊ณ , ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์‰ฝ๊ฒŒ ์ „์†กํ•˜๊ฑฐ๋‚˜ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฐ”์ด๋„ˆ๋ฆฌ ๋˜๋Š” ์ž„๋ฒ ๋””๋“œ - Flyway๋ฅผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ผ๋ถ€๋กœ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ์‹คํ–‰ ํŒŒ์ผ๋กœ ์‹คํ–‰ํ•˜๋„๋ก ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Flyway๋Š” ์‹œ์ž‘ ์‹œ ๋ฒ„์ „ ํ˜ธํ™˜์„ฑ์„ ํ™•์ธํ•˜๊ณ  ์ ์ ˆํ•œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์‹œ์ž‘ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฒ„์ „์„ ๋™๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค. cmd line ad-hoc ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด ์ „์ฒด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋‹ค์‹œ ๊ตฌ์ถ•ํ•˜์ง€ ์•Š๊ณ ๋„ ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ์Ÿ

์ „ํˆฌ์— ์ฐธ๊ฐ€ํ–ˆ์œผ๋‚˜ ์Šน๋ฆฌํ•˜์ง€ ๋ชปํ•จ

์ด ์˜์—ญ์—๋Š” ๋„๊ตฌ๊ฐ€ ๋งŽ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘ ์ผ๋ถ€๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค:

๋ฆฌํ€ด๋ฒ ์ด์Šค โ€” Liquibase๋Š” FlywayDB์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ํŒ€์— Liquibase์— ๋Œ€ํ•œ ๊ฒฝํ—˜์ด ๋” ๋งŽ์€ ์‚ฌ๋žŒ์ด ์žˆ๋‹ค๋ฉด Flyway ์œ„์— ์ด๋ฅผ ์„ค์ •ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

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

ํ…Œ์ŠคํŠธ ์ž๋™ํ™” ๋„๊ตฌ

2020๋…„์— ๋ชจ๋‘๊ฐ€ ๋ฐฐ์›Œ์•ผ ํ•  DevOps ๋„๊ตฌ
ํ…Œ์ŠคํŠธ ํ”ผ๋ผ๋ฏธ๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜์—ฌ ํ…Œ์ŠคํŠธ ์ž๋™ํ™” ๋„๊ตฌ์— ๋Œ€ํ•œ ๋…ผ์˜๋ฅผ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ํ”ผ๋ผ๋ฏธ๋“œ(ํ…Œ์ŠคํŠธ)์—๋Š” 4๊ฐ€์ง€ ์ˆ˜์ค€์ด ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๋ฐ ๊ตฌ์„ฑ ์š”์†Œ ํ…Œ์ŠคํŠธ๋Š” ๊ฐœ๋ฐœ์ž์— ์˜ํ•ด์„œ๋งŒ ์ˆ˜ํ–‰๋˜๊ณ  ์ข…์ข… ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ณ„๋กœ ์ˆ˜ํ–‰๋˜๋ฏ€๋กœ DevOps ๋„๋ฉ”์ธ์— ๋Œ€ํ•ด ์ด๋Ÿฌํ•œ ๋„๊ตฌ๋ฅผ ํ‰๊ฐ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

#1 ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ๋„๊ตฌ

์ˆ˜์ƒ์ž : ์˜ค์ด

2020๋…„์— ๋ชจ๋‘๊ฐ€ ๋ฐฐ์›Œ์•ผ ํ•  DevOps ๋„๊ตฌ
Cucumber๋Š” ์‚ฌ์–‘๊ณผ ํ…Œ์ŠคํŠธ ๋ฌธ์„œ๋ฅผ ํ•˜๋‚˜์˜ ์‚ด์•„์žˆ๋Š” ๋ฌธ์„œ๋กœ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์–‘์€ Cucumber์— ์˜ํ•ด ์ž๋™์œผ๋กœ ํ…Œ์ŠคํŠธ๋˜๋ฏ€๋กœ ํ•ญ์ƒ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ์ฒ˜์Œ๋ถ€ํ„ฐ ์ž๋™ํ™”๋œ ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ์ž ๋™์ž‘์„ ๋ชจ๋ธ๋งํ•˜๋ ค๋Š” ๊ฒฝ์šฐ Java ๋ฐ Cucumber BDD๊ฐ€ ํฌํ•จ๋œ Selenium WebDriver๋Š” ํ”„๋กœ์ ํŠธ์—์„œ Cucumber๋ฅผ ๋ฐฐ์šฐ๊ณ  ๊ตฌํ˜„ํ•˜๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์ฃผ์š” ์ด์ 

  • BDD ์ ‘๊ทผ ๋ฐฉ์‹(ํ–‰๋™ ์ค‘์‹ฌ ๊ฐœ๋ฐœ - "ํ…Œ์ŠคํŠธ ์ค‘์‹ฌ ๊ฐœ๋ฐœ" ์ ‘๊ทผ ๋ฐฉ์‹๊ณผ ๋ฐ˜๋Œ€๋˜๋Š” "ํ–‰๋™์„ ํ†ตํ•œ ๊ฐœ๋ฐœ") - Cucumber๋Š” BDD ํ…Œ์ŠคํŠธ์šฉ์œผ๋กœ ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ ์›๋ž˜ ๋ฐ”๋กœ ์ด ์ž‘์—…์„ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค.
  • Living Documentation - ๋ฌธ์„œํ™”๋Š” ์–ธ์ œ๋‚˜ ๊ณ ํ†ต์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค! ํ…Œ์ŠคํŠธ๋Š” ์ฝ”๋“œ๋กœ ์ž‘์„ฑ๋˜๋ฏ€๋กœ Cucumber๋Š” ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋œ ๋ฌธ์„œ๋ฅผ ํ…Œ์ŠคํŠธํ•˜์—ฌ ํ…Œ์ŠคํŠธ์™€ ๋ฌธ์„œ๊ฐ€ ๋™๊ธฐํ™”๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์› - ๋‹ค์–‘ํ•œ ๋„๊ตฌ ์ค‘์—์„œ ์„ ํƒํ•  ์ˆ˜ ์žˆ์ง€๋งŒ Cucumber๋Š” ์–ด๋ ค์šด ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉ์ž๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ๋Š” ํ•„์š”ํ•œ ์žฌ์ • ์ž์›๊ณผ ์ž˜ ์กฐ์ง๋œ ์ง€์› ์‹œ์Šคํ…œ์„ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ์Ÿ

์ „ํˆฌ์— ์ฐธ๊ฐ€ํ–ˆ์œผ๋‚˜ ์Šน๋ฆฌํ•˜์ง€ ๋ชปํ•จ

๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ํŠน์ • ๊ธฐ์ˆ  ๋„๊ตฌ ์ค‘์—์„œ Cucumber๋งŒ์ด ๋ณดํŽธ์ ์ธ ์†”๋ฃจ์…˜์œผ๋กœ ๊ฐ„์ฃผ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—”๋“œ ํˆฌ ์—”๋“œ ํ…Œ์ŠคํŠธ ๋„๊ตฌ

์—”๋“œํˆฌ์—”๋“œ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ํ•ต์‹ฌ ์‚ฌํ•ญ์— ์ค‘์ ์„ ๋‘์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ
  • ์ŠคํŠธ๋ ˆ์Šค ํ…Œ์ŠคํŠธ.

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

๋™์ผํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํŠน์ • ์ˆ˜์˜ ์‚ฌ์šฉ์ž๊ฐ€ ์˜ค๋ฅ˜ ์—†์ด ์ฒ˜๋ฆฌ๋  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์˜ ํ…Œ์ŠคํŠธ๊ฐ€ ์—†์œผ๋ฉด CI/CD ํŒŒ์ดํ”„๋ผ์ธ์— ์‹ฌ๊ฐํ•œ ๋‹จ์ ์ด ๋ฉ๋‹ˆ๋‹ค.

์ตœ๊ณ ์˜ ์—”๋“œํˆฌ์—”๋“œ ํ…Œ์ŠคํŠธ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ

์ˆ˜์ƒ์ž : SoapUI ํ”„๋กœ

2020๋…„์— ๋ชจ๋‘๊ฐ€ ๋ฐฐ์›Œ์•ผ ํ•  DevOps ๋„๊ตฌ
SoapUI๋Š” SOAP ๊ธฐ๋ฐ˜ ์›น ์„œ๋น„์Šค๊ฐ€ ํ‘œ์ค€์ด ๋œ ์ดํ›„ ์˜ค๋žซ๋™์•ˆ API ํ…Œ์ŠคํŠธ ๊ณต๊ฐ„์— ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋” ์ด์ƒ ์ƒˆ๋กœ์šด SOAP ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๊ณ  ๋„๊ตฌ ์ด๋ฆ„๋„ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์ง€๋งŒ ์ด๊ฒƒ์ด ๋ฐœ์ „ํ•˜์ง€ ์•Š์•˜๋‹ค๋Š” ์˜๋ฏธ๋Š” ์•„๋‹™๋‹ˆ๋‹ค. SoapUI๋Š” ์ž๋™ํ™”๋œ ๋ฐฑ์—”๋“œ ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ํƒ์›”ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋Š” ์ง€์†์ ์ธ ํ†ตํ•ฉ ๋„๊ตฌ์™€ ์‰ฝ๊ฒŒ ๊ฒฐํ•ฉ๋˜์–ด CI/CD ํŒŒ์ดํ”„๋ผ์ธ์˜ ์ผ๋ถ€๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ์ด์ 

  • ์ž์„ธํ•œ ๋ฌธ์„œ - SoapUI๋Š” ๊ฝค ์˜ค๋žซ๋™์•ˆ ์‹œ์žฅ์— ์ถœ์‹œ๋˜์—ˆ์œผ๋ฏ€๋กœ ํ…Œ์ŠคํŠธ ์„ค์ • ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์˜จ๋ผ์ธ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ ์šฉ์ด์„ฑ - ๋„๊ตฌ๊ฐ€ API ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ์—ฌ๋Ÿฌ ํ”„๋กœํ† ์ฝœ์„ ์ง€์›ํ•˜์ง€๋งŒ SoapUI์—๋Š” ์—ฌ๋Ÿฌ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ๊ณตํ†ต ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ์ด ๋” ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค.

๊ฒฝ์Ÿ

์ „ํˆฌ์— ์ฐธ๊ฐ€ํ–ˆ์œผ๋‚˜ ์Šน๋ฆฌํ•˜์ง€ ๋ชปํ•จ

์…€๋ ˆ๋‹ˆ์›€ ์ด ๊ทธ๋ฃน์˜ ๋˜ ๋‹ค๋ฅธ ํ›Œ๋ฅญํ•œ ์•…๊ธฐ์ž…๋‹ˆ๋‹ค. Java ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์—ฌ๋Ÿฌ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ์™„์ „ํ•œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒฝ์šฐ Java๊ฐ€ ์•„๋‹Œ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค๋ฃจ๊ธฐ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ๊ณ ์˜ ์—”๋“œํˆฌ์—”๋“œ ํ…Œ์ŠคํŠธ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ŠคํŠธ๋ ˆ์Šค ํ…Œ์ŠคํŠธ

์ˆ˜์ƒ์ž : LoadRunner

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

์ฃผ์š” ์ด์ 

  • ๊ด‘๋ฒ”์œ„ํ•œ ๋ฌธ์„œ - LoadRunner๋Š” ๊ฝค ์˜ค๋žซ๋™์•ˆ ์‹œ์žฅ์— ์ถœ์‹œ๋˜์—ˆ์œผ๋ฏ€๋กœ ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ ์„ค์ • ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์˜จ๋ผ์ธ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ”„๋กœํ† ์ฝœ ์ง€์› - Load Runner๋Š” ODBC์—์„œ AJAX, HTTPS ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํƒ€ ์ค‘์š”ํ•œ ํ”„๋กœํ† ์ฝœ๊นŒ์ง€ ๋ชจ๋“  ๊ฒƒ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ ค๊ณ  ๋…ธ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ค ๋ฟ์ž…๋‹ˆ๋‹ค.

๊ฒฝ์Ÿ

์ „ํˆฌ์— ์ฐธ๊ฐ€ํ–ˆ์œผ๋‚˜ ์Šน๋ฆฌํ•˜์ง€ ๋ชปํ•จ

๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ์ด ๋ถ„์•ผ์—๋Š” ๋ณดํŽธ์ ์ธ ๋„๊ตฌ๊ฐ€ ๋งŽ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์žฅ ์ข‹์€ ์†”๋ฃจ์…˜์€ ์–ด๋–ค ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๋“  ๋ชจ๋“  ํ™˜๊ฒฝ์—์„œ ์ž‘๋™ํ•˜๋Š” ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค.

๋ฐฐํฌ ๋„๊ตฌ

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

์šฐ์„  ๋ชจ๋“  ๋ฐฐํฌ ๋„๊ตฌ๋ฅผ ์„ธ ๊ฐ€์ง€ ํ•˜์œ„ ๋ฒ”์ฃผ๋กœ ๋‚˜๋ˆ„์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  • ์œ ๋ฌผ ๊ด€๋ฆฌ
  • ๊ตฌ์„ฑ ๊ด€๋ฆฌ
  • ๋ฐฐํฌ.

#1 ์œ ๋ฌผ ๊ด€๋ฆฌ ๋„๊ตฌ

์ˆ˜์ƒ์ž : Nexus

2020๋…„์— ๋ชจ๋‘๊ฐ€ ๋ฐฐ์›Œ์•ผ ํ•  DevOps ๋„๊ตฌ
Nexus ์•„ํ‹ฐํŒฉํŠธ ์ €์žฅ์†Œ๋Š” Java์—์„œ NPM, Docker์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ๊ฑฐ์˜ ๋ชจ๋“  ์ฃผ์š” ๊ธฐ์ˆ ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์›๊ฒฉ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ํ”„๋ก์‹ฑํ•˜๋ฉด CI ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค ์†๋„๊ฐ€ ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์–ด ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ๋นŒ๋“œ ์•ก์„ธ์Šค๊ฐ€ ๋” ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ ์žฅ์ ์€ ์—ฌ๋Ÿฌ ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“  ํŒจํ‚ค์ง€๋ฅผ ์ „์ฒด์ ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์–ด ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์˜คํ”ˆ ์†Œ์Šค ํŒจํ‚ค์ง€๋ฅผ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(๊ณต๊ฒฉ ๋ฒกํ„ฐ๋กœ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์Œ).

์ฃผ์š” ์ด์ 

  • ๊ธฐ์ˆ  ์ง€์› - ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ œํ’ˆ; ์ž˜ ์ง€์›๋ฉ๋‹ˆ๋‹ค.
  • ์˜คํ”ˆ ์†Œ์Šค - ๋ฌด๋ฃŒ ๋ฒ„์ „์€ ๊ฐœ๋ฐœ ํŒ€์— ํ•„์š”ํ•œ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ์ œํ•œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

#1 ๊ตฌ์„ฑ ๊ด€๋ฆฌ ๋„๊ตฌ

์ˆ˜์ƒ์ž : ์ฑ…์ž„๊ฐ์žˆ๋Š”

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

์ฃผ์š” ์ด์ 

  • Stateless - ํ”Œ๋ ˆ์ด๋ถ์€ ๋ฐฐํฌ ๋จธ์‹ ์—์„œ ์‹œ์ž‘๋˜๊ณ  ๋Œ€์ƒ ์„œ๋ฒ„์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. Packer์™€ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ๊ฐœ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ์›๊ฒฉ ๊ฐœ์ฒด์˜ ์ƒํƒœ์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
  • ์˜คํ”ˆ ์†Œ์Šค - CentOS์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Ansible๋„ RedHat์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋ฉฐ ๊ณ ํ’ˆ์งˆ์˜ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด ๋ชจ๋“ˆ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • Molecule(Ansible ํ”„๋ ˆ์ž„์›Œํฌ)์„ ์‚ฌ์šฉํ•œ ํ…Œ์ŠคํŠธ - ๊ตฌ์„ฑ ๊ด€๋ฆฌ๋Š” ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ฝ”๋“œ์ด๋ฏ€๋กœ ํ…Œ์ŠคํŠธ๊ฐ€ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. Molecule์˜ Ansible ์—ญํ•  ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•˜์—ฌ ๊ตฌ์„ฑ์˜ ํ’ˆ์งˆ์ด ๋™์ผํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ์™€ ๋™์ผํ•œ CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ๋”ฐ๋ฅด๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
  • YAML - ๋‹ค๋ฅธ ๋„๊ตฌ์— ๋น„ํ•ด YAML์€ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ๊ด€๋ฆฌ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ DevOps ๋ฐฉ์‹์„ ๊ตฌํ˜„ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ƒˆ๋กœ์šด ๊ณผ์ œ์ด๋ฏ€๋กœ ๋‹จ์ˆœ์„ฑ์ด ๋น„์žฅ์˜ ์นด๋“œ์ž…๋‹ˆ๋‹ค.

๊ฒฝ์Ÿ

์ „ํˆฌ์— ์ฐธ๊ฐ€ํ–ˆ์œผ๋‚˜ ์Šน๋ฆฌํ•˜์ง€ ๋ชปํ•จ

OpsCode ์…ฐํ”„ โ€” ์ €๋Š” ์š”๋ฆฌ์ฑ… ๊ฐœ๋ฐœ์ž๋กœ์„œ DevOps ๊ฒฝ๋ ฅ์„ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  Ruby์™€ Chef๋Š” ์ œ ๋งˆ์Œ์— ์™ ๋“ค์ง€๋งŒ ํ˜„๋Œ€์˜ ์ƒํƒœ ๋น„์ €์žฅ ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€๋Š” ๋ชปํ•ฉ๋‹ˆ๋‹ค. OpsCode Chef๋Š” ๋ณด๋‹ค ์ „ํ†ต์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ํ›Œ๋ฅญํ•œ ๋„๊ตฌ์ด์ง€๋งŒ ์ด ๋ฌธ์„œ์—์„œ๋Š” ๋ฏธ๋ž˜์— ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค.

์ธํ˜• โ€” Puppet์€ ํŠนํžˆ Chef ๋ฐ Ansible๊ณผ ๋น„๊ตํ•  ๋•Œ ํŒฌ์ด ๋งŽ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ํ•˜๋“œ์›จ์–ด ํ”„๋กœ๋น„์ €๋‹ ๋ฐ ์ž‘์—…์—๋Š” ์ ํ•ฉํ•˜์ง€๋งŒ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์ตœ์‹  ๊ตฌ์„ฑ ๊ด€๋ฆฌ ์ง€์›์ด ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค.

๋ฐฐํฌ ๋„๊ตฌ #1

์ˆ˜์ƒ์ž : ํ…Œ๋ผ ํผ

2020๋…„์— ๋ชจ๋‘๊ฐ€ ๋ฐฐ์›Œ์•ผ ํ•  DevOps ๋„๊ตฌ
Terraform์€ ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ ์š”์†Œ๋ถ€ํ„ฐ ์ „์ฒด ์„œ๋ฒ„ ์ด๋ฏธ์ง€๊นŒ์ง€ ์ธํ”„๋ผ๋ฅผ ์ฝ”๋“œ๋กœ ์„ค๋ช…ํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์ด ์ œํ’ˆ์€ ์ดˆ๊ธฐ ์ถœ์‹œ ์ดํ›„ ๋งŽ์€ ๋ฐœ์ „์„ ์ด๋ฃจ์—ˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜๋งŽ์€ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ƒ์„ฑ๋˜๊ณ  ๊ฐ•๋ ฅํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ๊ตฌ์ถ•๋˜์–ด ์–ด๋–ค ๋ฐฐํฌ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋„ ํ™•์‹คํžˆ ๋„์›€์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์œ ํ˜•์˜ ํ™˜๊ฒฝ(์˜จํ”„๋ ˆ๋ฏธ์Šค, ํด๋ผ์šฐ๋“œ ๋“ฑ)์„ ์ง€์›ํ•˜๋Š” ๋Šฅ๋ ฅ์€ ํƒ€์˜ ์ถ”์ข…์„ ๋ถˆํ—ˆํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ์ตœ์‹  ๋ฒ„์ „์€ HCL์—์„œ ๋‹ค๋ฅธ ๊ธฐ์กด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ๋™์ผํ•œ ๋…ผ๋ฆฌ ํ•จ์ˆ˜ ๋ฐ ํด๋ž˜์Šค๋ฅผ ๋Œ€๋ถ€๋ถ„ ์ œ๊ณตํ•˜๋ฏ€๋กœ ๊ฐœ๋ฐœ์ž๊ฐ€ Terraform์„ ๋น ๋ฅด๊ณ  ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ์ด์ 

  • ํ™˜๊ฒฝ์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š์Œ - Terraform์€ Terraform ์ฝ”๋“œ, ๋ชจ๋“  API ๋ฐ ๋‚ด๋ถ€ ๋…ผ๋ฆฌ ๊ฐ„์˜ ์ธํ„ฐํŽ˜์ด์Šค ์—ญํ• ์„ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธํ”„๋ผ ์ œ๊ณต์ž์™€ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํ•˜๋‚˜์˜ ๋„๊ตฌ๋งŒ ์ตํžˆ๋ฉด ์–ด๋””์—์„œ๋‚˜ ์ผํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.
  • ์˜คํ”ˆ ์†Œ์Šค - ๋ฌด๋ฃŒ ๋„๊ตฌ๋ฅผ ์ด๊ธฐ๋Š” ๊ฒƒ์€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค! ์ตœ๊ณ  ์ˆ˜์ค€์˜ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ง€์›.

๊ฒฝ์Ÿ

์ „ํˆฌ์— ์ฐธ๊ฐ€ํ–ˆ์œผ๋‚˜ ์Šน๋ฆฌํ•˜์ง€ ๋ชปํ•จ

AWS ํด๋ผ์šฐ๋“œ ํฌ๋ฉ”์ด์…˜ โ€” AWS ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ๋งŒ ์ž‘์—…ํ•˜๋”๋ผ๋„ ๋‹ค์Œ ์ž‘์—…์—์„œ๋Š” ๋‹ค๋ฅธ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์‹œ๊ฐ„๊ณผ ์—๋„ˆ์ง€๋ฅผ ๋‹จ ํ•˜๋‚˜์˜ ํ”Œ๋žซํผ์— ํˆฌ์žํ•˜๋Š” ๊ฒƒ์€ ๊ทผ์‹œ์•ˆ์ ์ธ ๊ฒฐ์ •์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ๋งŽ์€ ์ƒˆ๋กœ์šด AWS ์„œ๋น„์Šค๋Š” CloudFormation์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ธฐ ์ „์— Terraform ๋ชจ๋“ˆ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

๋Ÿฐํƒ€์ž„ ๋„๊ตฌ

2020๋…„์— ๋ชจ๋‘๊ฐ€ ๋ฐฐ์›Œ์•ผ ํ•  DevOps ๋„๊ตฌ

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

๋Ÿฐํƒ€์ž„ ๋„๊ตฌ์˜ ํ•˜์œ„ ๋ฒ”์ฃผ:

  • XaaS(X-as-a-Service)
  • ๊ด€ํ˜„์•…๋ฒ•
  • ๋ชจ๋‹ˆํ„ฐ๋ง
  • ๋ฒŒ์ฑ„ ๋ฐ˜์ถœ.

X-tool-as-a-service #1

์ˆ˜์ƒ์ž : Amazon Web Services

2020๋…„์— ๋ชจ๋‘๊ฐ€ ๋ฐฐ์›Œ์•ผ ํ•  DevOps ๋„๊ตฌ
Amazon์€ ํ•ญ์ƒ ํด๋ผ์šฐ๋“œ ๊ธฐ์ˆ ์˜ ์„ ๋‘์ฃผ์ž์˜€์ง€๋งŒ ์—ฌ๊ธฐ์„œ ๋๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ์ƒˆ๋กœ์šด ์„œ๋น„์Šค๊ฐ€ ๋ˆˆ์„ ๋œจ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ธฐ์ˆ ๊ณผ ํ…œํ”Œ๋ฆฟ์„ AWS๋กœ ๊ฐ€์ ธ์˜ค๋ฉด ๊ตฌ์ถ•๋˜์–ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋„๊ตฌ ๋น„์šฉ์€ ์ƒ๋‹นํžˆ ํ•ฉ๋ฆฌ์ ์ž…๋‹ˆ๋‹ค. ์ž์ฒด ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์—์„œ ์žฅ๋น„๋ฅผ ์กฐ๋ฆฝ, ๊ด€๋ฆฌ ๋ฐ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ๊ณผ ๋น„๊ตํ•ด ๋ณด์„ธ์š”. ๋ฌด๋ฃŒ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ˆ์„ ์“ฐ๊ธฐ ์ „์— ์‹คํ—˜ํ•˜๊ณ  ์˜ฌ๋ฐ”๋ฅธ ๊ฒฐ์ •์„ ๋‚ด๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ์ด์ 

  • ๋ณด๊ธ‰๋ฅ  - AWS์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•œ ๊ฒฝํ—˜์ด ์žˆ์œผ๋ฉด ์–ด๋””์—์„œ๋‚˜ ์ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์—…์€ AWS๋ฅผ ์ข‹์•„ํ•˜๊ณ  ์Šคํƒ€ํŠธ์—…๋„ AWS์˜ ์ €๋ ดํ•œ ๋น„์šฉ์„ ๋†’์ด ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฌด๋ฃŒ ๋ฒ„์ „์€ AWS๋ฅผ ๋™์ข… ์ œํ’ˆ๊ณผ ์ฐจ๋ณ„ํ™”ํ•˜๋Š” ์ •๋ง ์ค‘์š”ํ•œ ์š”์†Œ์ž…๋‹ˆ๋‹ค. ๊ตฌ๋งค ๊ฒฐ์ •์„ ๋‚ด๋ฆฌ๊ธฐ ์ „์— ์„œ๋น„์Šค๋ฅผ ์‹œํ—˜ํ•ด๋ณด๊ณ  ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ถˆํ•„์š”ํ•œ ๊ฒƒ์— ์ˆ˜์ฒœ ๋‹ฌ๋Ÿฌ๋ฅผ ์“ฐ๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฌด๋ฃŒ ๋ฒ„์ „์€ ์–ด๋–ค ๊ฐœ๋…์ด๋“  ํ…Œ์ŠคํŠธํ•˜๊ธฐ์— ํ•ญ์ƒ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ์Ÿ

์ „ํˆฌ์— ์ฐธ๊ฐ€ํ–ˆ์œผ๋‚˜ ์Šน๋ฆฌํ•˜์ง€ ๋ชปํ•จ

ํ•˜๋Š˜๋น› โ€œAzure๋Š” ์ฒซ ๋ฒˆ์งธ ์ถœ์‹œ ์ดํ›„ ๋งŽ์€ ๋ฐœ์ „์„ ์ด๋ฃจ์—ˆ์œผ๋ฉฐ ์ด๋Š” ์นญ์ฐฌํ•  ๋งŒํ•œ ์ผ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‹ฌ๋ผ์ง€๋ ค๋Š” ์š•๊ตฌ๋กœ ์ธํ•ด ์„œ๋น„์Šค์— ์ด์ƒํ•œ ์ด๋ฆ„์ด ์ƒ๊ฒจ ์ข…์ข… ์ž‘์—…์ด ๋ณต์žกํ•ด์กŒ์Šต๋‹ˆ๋‹ค. "BLOB ์ €์žฅ์†Œ"๋Š” ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋‚˜์š”? .NET ์ฝ”๋“œ๋Š” Microsoft ์—์ฝ”์‹œ์Šคํ…œ์—์„œ ๋” ๋‚˜์€ ์„ฑ๋Šฅ์„ ๋ฐœํœ˜ํ•˜์ง€๋งŒ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ์— .NET๋งŒ ์‚ฌ์šฉํ•  ๊ฐ€๋Šฅ์„ฑ์€ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค.

ํ—ค๋กœ ๊พธ โ€” Heroku์—์„œ๋Š” ์‹ ๋ขฐ์„ฑ๊ณผ ํˆฌ๋ช…์„ฑ์ด ๋‚ฎ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ ์™ธ์—๋Š” ์ ˆ๋Œ€ ์‹คํ–‰ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ฏ€๋กœ ํšŒ์‚ฌ์—์„œ๋Š” ์ด๋ฅผ ํ”Œ๋žซํผ์œผ๋กœ ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. Heroku๋Š” ๋ธ”๋กœ๊ทธ์—์„œ ๋ฌด์–ธ๊ฐ€๋ฅผ ์‹œ์—ฐํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•˜์ง€๋งŒ ์‹ค์ œ ์‚ฌ์šฉ์—๋Š” "์•„๋‹ˆ์š”, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!"

#1 ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๋„๊ตฌ

์ˆ˜์ƒ์ž : ์˜คํ”ˆ์‹œํ”„ํŠธ

2020๋…„์— ๋ชจ๋‘๊ฐ€ ๋ฐฐ์›Œ์•ผ ํ•  DevOps ๋„๊ตฌ
์•„๋งˆ๋„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์Šคํƒ์—์„œ Docker๋‚˜ ๋‹ค๋ฅธ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ํ›Œ๋ฅญํ•˜์ง€๋งŒ ๋ชจ๋“  ์•„ํ‚คํ…์ฒ˜์— ์ ํ•ฉํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํ”Œ๋žซํผ ์—†์ด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Kubernetes Core(K8s)๋Š” ๋ณด์•ˆ ๋ฐ ๋„๊ตฌ ์ธก๋ฉด์—์„œ ๋…๋ณด์ ์ž…๋‹ˆ๋‹ค. OpenShift๋Š” Source2Image๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ํฌ๋“œ์— ๋Œ€ํ•œ ์ž๋™ํ™”๋œ ๋ฐฐํฌ๋ฅผ ์ง€์›ํ•˜๋ฉฐ ์ถ”์  ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์ง€์›ํ•˜๋Š” ์œ ์ผํ•œ Kubernetes ๊ธฐ๋ฐ˜ ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. OpenShift๋Š” ์˜จํ”„๋ ˆ๋ฏธ์Šค, ํด๋ผ์šฐ๋“œ ๋˜๋Š” ์˜จํ”„๋ ˆ๋ฏธ์Šค์™€ ํด๋ผ์šฐ๋“œ์—์„œ ๋™์‹œ์— ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ์ด์ 

  • ๋‚ด์žฅ๋œ ๋ณด์•ˆ - K8s ๋ณด์•ˆ์„ ๊ด€๋ฆฌํ•˜๋ ค๋ฉด ๊ณ ๊ธ‰ ํ•™์œ„๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์‹ ์ค‘ํ•˜๊ฒŒ ์ƒ๊ฐํ•˜๊ณ  ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค! OpenShift์— ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚ด์žฅ๋œ ๋ณด์•ˆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ๊ฐœ๋ฐœ์ž์˜ ๋ถ€๋‹ด์„ ๋œ์–ด์ฃผ๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ๋ณด๋‹ค ์•ˆ์ „ํ•œ ํ”Œ๋žซํผ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ฌ์ธ์› ์†”๋ฃจ์…˜ - ๊ธฐ๋ณธ์ ์œผ๋กœ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ๋„๊ตฌ๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š์€ ๊ธฐ๋ณธ K8๊ณผ ๋‹ฌ๋ฆฌ OpenShift๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ ๋ฐ ํ˜ธ์ŠคํŒ…, CI/CD ๋„๊ตฌ ์‹คํ–‰, ์™ธ๋ถ€ ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ, ํ‚ค ๊ด€๋ฆฌ ๋“ฑ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”ฝ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์•„์ง ์™„๋ฒฝํ•˜์ง€ ์•Š์ง€๋งŒ API ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋ชจ๋“  ๊ฒƒ์„ ์Šคํฌ๋ฆฝํŠธ๋กœ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ K8์šฉ GUI์™€ ๋‹ฌ๋ฆฌ OpenShift๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Kubernetes์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์„ ํ›จ์”ฌ ์‰ฝ๊ฒŒ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•™์œ„๋ฅผ ์ทจ๋“ํ•  ํ•„์š”๋„ ์—†์Šต๋‹ˆ๋‹ค!

๊ฒฝ์Ÿ

์ „ํˆฌ์— ์ฐธ๊ฐ€ํ–ˆ์œผ๋‚˜ ์Šน๋ฆฌํ•˜์ง€ ๋ชปํ•จ

๋„์ปค ์Šค์›œ โ€” Docker Swarm์€ ๋งŽ์€ ๊ฒƒ์„ ์ œ๊ฑฐํ•˜์—ฌ K8์„ ๋‹จ์ˆœํ™”ํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ์†Œ๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๋Š” ์ ํ•ฉํ•˜์ง€๋งŒ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ AWS ECS์™€ ๊ฐ™์€ ์†”๋ฃจ์…˜์€ ๋น„์Šทํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ทจํ•˜์ง€๋งŒ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ์„œ๋น„์Šค(Lambda, IAM ๋“ฑ)์™€ ๋” ์‰ฝ๊ฒŒ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค๋‹ˆ๋‹ค.

๋ชจ๋‹ˆํ„ฐ๋ง ๋„๊ตฌ #1

์ˆ˜์ƒ์ž : ์ƒˆ๋กœ์šด ์œ ๋ฌผ

2020๋…„์— ๋ชจ๋‘๊ฐ€ ๋ฐฐ์›Œ์•ผ ํ•  DevOps ๋„๊ตฌ
New Relic์˜ ์ดˆ๊ธฐ ๋ฆด๋ฆฌ์Šค๋Š” APM(Application Performance Monitoring) ๋ชจ๋‹ˆํ„ฐ๋ง์ด๋ผ๋Š” ํ•œ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ์ž˜ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์„œ๋ฒ„, ์ปจํ…Œ์ด๋„ˆ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ฑ๋Šฅ, ์ตœ์ข… ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ๋ชจ๋‹ˆํ„ฐ๋ง์€ ๋ฌผ๋ก  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ ๋ชจ๋‹ˆํ„ฐ๋ง๊นŒ์ง€ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ๋ชจ๋‹ˆํ„ฐ๋ง ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

์ฃผ์š” ์ด์ 

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

๊ฒฝ์Ÿ

์ „ํˆฌ์— ์ฐธ๊ฐ€ํ–ˆ์œผ๋‚˜ ์Šน๋ฆฌํ•˜์ง€ ๋ชปํ•จ

์ž ๋น„์ธ  โ€” ์ œ๊ฐ€ ์ฒ˜์Œ์ด์ž ๊ฐ€์žฅ ์ข‹์•„ํ•˜๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์ด์ง€๋งŒ ํด๋ผ์šฐ๋“œ ๊ธฐ์ˆ ์˜ ๊ฐœ๋ฐœ ๋ถ€์กฑ๊ณผ APM ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ถ„์•ผ๋กœ ์ธํ•ด ๊ณผ๊ฑฐ์— ๋‚จ์•„ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. Zabbix๋Š” ์—ฌ์ „ํžˆ ์ „ํ†ต์ ์ธ ์„œ๋ฒ„ ์ธํ”„๋ผ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์ž˜ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ ๊ทธ๊ฒŒ ์ „๋ถ€์ž…๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ๋„๊ทธ โ€” ์ฝ”๋“œ ์ž์ฒด๊ฐ€ ์•„๋‹Œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์„ ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์— ๋„ˆ๋ฌด ์ง‘์ค‘ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฐธ์—ฌํ•˜๋Š” DevOps ํŒ€์„ ์‚ฌ์šฉํ•˜๋ฉด ์ตœ๊ณ  ์ˆ˜์ค€์˜ ์ง€์›์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ค์šด ๋„๊ตฌ์— ์˜์กดํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋กœ๊น… ๋„๊ตฌ #1

์ˆ˜์ƒ์ž : ์Šคํ”Œ ๋ ํฌ

2020๋…„์— ๋ชจ๋‘๊ฐ€ ๋ฐฐ์›Œ์•ผ ํ•  DevOps ๋„๊ตฌ
Splunk์™€ ๊ฒฝ์Ÿํ•˜๊ธฐ๋Š” ์–ด๋ ต์Šต๋‹ˆ๋‹ค! ์˜ค๋žซ๋™์•ˆ ๊ทธ๋Š” ๋ฒŒ๋ชฉ ๋ถ„์•ผ์˜ ์„ ๋‘์ฃผ์ž๋กœ ๋‚จ์•„ ์žˆ์œผ๋ฉฐ, ๋ˆ„๊ตฌ๋ณด๋‹ค ๋” ๋‚˜์€ ์ผ์„ ๊ณ„์†ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜จํ”„๋ ˆ๋ฏธ์Šค ๋ฐ SaaS ์ œํ’ˆ์„ ํ†ตํ•ด ์–ด๋””์„œ๋‚˜ Splunk๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ํฐ ๋‹จ์ ์€ ๊ฐ€๊ฒฉ์ž…๋‹ˆ๋‹ค. Splunk๋Š” ์—ฌ์ „ํžˆ ์—„์ฒญ๋‚˜๊ฒŒ ๋น„์Œ‰๋‹ˆ๋‹ค!

์ฃผ์š” ์ด์ 

  • ๋ณด๊ธ‰์„ฑ - ๊ธฐ์—…์€ Splunk๋ฅผ ์ข‹์•„ํ•˜๋ฉฐ ๊ธฐ์—…์€ Splunk๋ฅผ ๊ตฌ์ž…ํ•  ๋ˆ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์Šคํƒ€ํŠธ์—…์ด ๋น„์šฉ์„ ํšŒ์ˆ˜ํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์ง€๋งŒ ์˜คํ”ˆ ์†Œ์Šค ์•„๋‚ ๋กœ๊ทธ ๋•๋ถ„์— ๋งŽ์€ ๊ธฐ๋Šฅ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์œ ์ง€ ๊ด€๋ฆฌ ์šฉ์ด์„ฑ - ๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ Splunk๋Š” ์ž˜ ์ž‘๋™ํ•˜๊ณ  ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋ณธ ์„ค์ •๊ณผ ๊ธฐ๋Šฅ์ด ํ•จ๊ป˜ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ๋ฌธ์„œ๋ฅผ ์ฝ๊ณ  Splunk๋ฅผ ์ž‘๋™์‹œํ‚ค๊ฑฐ๋‚˜ ํ•ด๋…ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๊ฒฝ์Ÿ

์ „ํˆฌ์— ์ฐธ๊ฐ€ํ–ˆ์œผ๋‚˜ ์Šน๋ฆฌํ•˜์ง€ ๋ชปํ•จ

ELK ์Šคํƒ(ElasticSearch, LogStash ๋ฐ Kibana) "์ด๋Ÿฌํ•œ ๋„๊ตฌ๋Š” ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ„์„ ํŒ” ํ•„์š”์กฐ์ฐจ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์žฅ ์ข‹์•„ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค." ๊ทธ๋Ÿฌ๋‚˜ ๋กœ๊ทธ ์„ธํŠธ๊ฐ€ ๋Š˜์–ด๋‚˜๊ณ  ํƒ‘์žฌ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚˜๋ฉด ์ž‘์—…์ด ์ ์  ๋” ์–ด๋ ค์›Œ์ง‘๋‹ˆ๋‹ค. Splunk์™€ ๋น„๊ตํ•  ๋•Œ ELK Stack์„ ์‚ฌ์šฉํ•˜๋ฉด ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ๋งŒ๋“ค๊ธฐ ์ „์— ๋„๊ตฌ๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐ ์ด์ „๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ˜‘์—… ๋„๊ตฌ

2020๋…„์— ๋ชจ๋‘๊ฐ€ ๋ฐฐ์›Œ์•ผ ํ•  DevOps ๋„๊ตฌ
DevOps๋Š” ์ฃผ๋กœ ์กฐ์ง ๋‚ด ๋ฌธํ™”๋ฅผ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋„๊ตฌ๋ฅผ ๊ตฌ์ž…ํ•œ๋‹ค๊ณ  ํ•ด์„œ ํ•˜๋ฃจ์•„์นจ์— ํ˜„์žฌ์˜ ๊ด€ํ–‰์ด ๋ฐ”๋€Œ์ง€๋Š” ์•Š์ง€๋งŒ ํ™•์‹คํžˆ ํ˜‘์—…๊ณผ ์ƒˆ๋กœ์šด ์ƒํ˜ธ ์ž‘์šฉ ๋ฐฉ์‹์„ ์žฅ๋ คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜‘์—… ๋„๊ตฌ์˜ ํ•˜์œ„ ์นดํ…Œ๊ณ ๋ฆฌ:

  • ์ž‘์—… ์ถ”์ 
  • ChatOps
  • ์„ ์  ์„œ๋ฅ˜ ๋น„์น˜.

#1 ๋ฌธ์ œ ์ถ”์  ๋„๊ตฌ

์ˆ˜์ƒ์ž : ๋ฝ์Šค

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

์ฃผ์š” ์ด์ 

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

๊ฒฝ์Ÿ

์ „ํˆฌ์— ์ฐธ๊ฐ€ํ–ˆ์œผ๋‚˜ ์Šน๋ฆฌํ•˜์ง€ ๋ชปํ•จ

Trello โ€” Trello๋Š” ๋ฌด๋ฃŒ Kanban ๋„๊ตฌ ๋•๋ถ„์— ๋น ๋ฅด๊ฒŒ ์ธ๊ธฐ๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ™•์žฅ๋˜๊ณ  ์ž‘์—…์ด ์ˆ˜์‹ญ ๊ฐœ์—์„œ ์ˆ˜์ฒœ ๊ฐœ๋กœ ๋Š˜์–ด๋‚˜๋ฉด Trello์—์„œ๋Š” ํƒ์ƒ‰, ๊ฒ€์ƒ‰ ๋ฐ ๋ณด๊ณ ๊ฐ€ ์–ด๋ ค์›Œ์ง‘๋‹ˆ๋‹ค.

ํ”ผ๋ฒ— ํŠธ๋ž˜์ปค โ€” ์ €๋Š” ์Šคํƒ€ํŠธ์—…์—์„œ ์ผํ•  ๋•Œ ์ด ๋„๊ตฌ์˜ ์—ด๋ ฌํ•œ ํŒฌ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Pivotal Tracker๋Š” ๊ธฐ์ˆ ์ ์ธ ์ž‘์—…๋ณด๋‹ค๋Š” ์ œํ’ˆ ๊ด€๋ฆฌ์— ๋” ์ค‘์ ์„ ๋‘๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Jira์˜ ์ œํ’ˆ ๊ด€๋ฆฌ๋Š” ์กฐ๊ธˆ ๋” ๋ณต์žกํ•˜์ง€๋งŒ ์ถ”๊ฐ€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ Jira์—์„œ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ChatOps ๋„๊ตฌ #1

์ˆ˜์ƒ์ž : MatterMost

2020๋…„์— ๋ชจ๋‘๊ฐ€ ๋ฐฐ์›Œ์•ผ ํ•  DevOps ๋„๊ตฌ
์„ค๋ช… : ์•„๋งˆ๋„ ์ œ๊ฐ€ ์„ ํƒํ•œ ๊ฒƒ ์ค‘ ๊ฐ€์žฅ ๋†€๋ผ์šด ์ ์€ ์ข‹์€ ์†Œ์‹์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค! MatterMost๋Š” ์ด์ „ ๋„๊ตฌ์˜ ์žฅ์ ์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•˜๋ฉด์„œ๋„ ์ด๋ฅผ ์˜จํ”„๋ ˆ๋ฏธ์Šค์— ๋ฐฐ์น˜ํ•จ์œผ๋กœ์จ ์ธ๊ธฐ๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ธฐ์—…์—๊ฒŒ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. MatterMost๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋กœ์ปฌ์—์„œ ์‹คํ–‰๋˜๋Š” ๋„๊ตฌ์™€ ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋” ์ด์ƒ ์—…๋ฌด ์ฑ„ํŒ…์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฉํ™”๋ฒฝ ๋ฐ–์œผ๋กœ ๋‚˜๊ฐˆ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ์ด์ 

  • ์˜คํ”ˆ ์†Œ์Šค โ€“ MatterMost์˜ ์˜คํ”ˆ ์†Œ์Šค ๋ฒ„์ „์€ ์ค‘๊ฐ„ ๊ทœ๋ชจ ํŒ€๊ณผ ๋Œ€๊ทœ๋ชจ ํŒ€ ๋ชจ๋‘์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€ ๊ธฐ๋ก์„ ์‚ญ์ œํ•˜๋Š” Slack์˜ ๋ฌด๋ฃŒ ์š”๊ธˆ์ œ์™€ ๋‹ฌ๋ฆฌ ์ž์ฒด ์„œ๋ฒ„๋ฅผ ์šด์˜ํ•˜๋ฉด ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.
  • ํ†ตํ•ฉ - API๋Š” ๊ฑฐ์˜ 100% Slack API๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฑฐ์˜ ๋ชจ๋“  Slack ํ†ตํ•ฉ์„ MatterMost์™€ ์ง์ ‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ์Ÿ

์ „ํˆฌ์— ์ฐธ๊ฐ€ํ–ˆ์œผ๋‚˜ ์Šน๋ฆฌํ•˜์ง€ ๋ชปํ•จ

๋Š์Šจํ•˜๊ฒŒ โ€” ์Šฌ๋ž™๋„ ๋ฉ‹์žˆ๋Š”๋ฐ ์ด ์นœ๊ตฌ๋“ค์€ ๋„ˆ๋ฌด ์„ฑ์žฅํ•ด์„œ ์ˆ˜์ต์„ ๋…ธ๋ฆฌ๊ธฐ ์‹œ์ž‘ํ–ˆ์–ด์š”. ๋น„์ฆˆ๋‹ˆ์Šค์˜ ํˆฌ์ž ํšŒ์ˆ˜ ๋‹จ๊ณ„๊ฐ€ ๋‹ค๊ฐ€์˜ค๊ณ  ์žˆ์œผ๋ฉฐ ์ด๋กœ ์ธํ•ด ์ฃผ์š” ๊ฐ€์น˜๊ฐ€ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค. Slack์€ ์„œ๋น„์Šค๋ฅผ ๋ฌด๋ฃŒ๋กœ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌด๋ฃŒ ๋ฒ„์ „์˜ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋‹จ์ ์€ ์ฑ„ํŒ… ๊ธฐ๋ก์ด ์‚ญ์ œ๋œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.

Microsoft ํŒ€ โ€” Microsoft ์ œํ’ˆ์„ Microsoft ์†Œ์œ ๊ฐ€ ์•„๋‹Œ ์ œํ’ˆ๊ณผ ํ†ตํ•ฉํ•ด ๋ณด์‹ญ์‹œ์˜ค... ํ–‰์šด์„ ๋น•๋‹ˆ๋‹ค! ์ด๊ฒƒ์ด ์ด ๋„๊ตฌ์— ๋Œ€ํ•ด ๋‚ด๊ฐ€ ๋งํ•ด์•ผ ํ•  ์ „๋ถ€์ž…๋‹ˆ๋‹ค!

๋ฌธ์„œํ™” ๋„๊ตฌ #1

์ˆ˜์ƒ์ž : ํ•ฉ๋ฅ˜

2020๋…„์— ๋ชจ๋‘๊ฐ€ ๋ฐฐ์›Œ์•ผ ํ•  DevOps ๋„๊ตฌ
์–ด๋–ค ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋“  ๊ณ ํ’ˆ์งˆ ๊ธฐ์ˆ  ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์€ ๋ณต์žกํ•œ ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค. ์ตœ๊ทผ ๋งŽ์€ SaaS ๋ฌธ์„œํ™” ๋„๊ตฌ๊ฐ€ ์‹œ์žฅ์— ์ถœ์‹œ๋˜์—ˆ์ง€๋งŒ ๋ฏธ์…˜ ํฌ๋ฆฌํ‹ฐ์ปฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ๊ธฐ์ˆ  ๋ฌธ์„œ์˜ ์ €์žฅ์„ ์ œXNUMX์ž์—๊ฒŒ ์•„์›ƒ์†Œ์‹ฑํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ต๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ์™€ ๋ฌธ์„œ๋ฅผ ์˜จํ”„๋ ˆ๋ฏธ์Šค์— ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•˜๋ฉฐ ์ด๊ฒƒ์ด Confluence๊ฐ€ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์ฃผ์š” ์ด์ 

  • ์ž‘๋™ ์šฉ์ด์„ฑ - ๋Œ€๋ถ€๋ถ„์˜ ๋…๋ฆฝํ˜• ๋„๊ตฌ๋Š” ์„ค์ • ๋ฐ ์ž‘๋™์ด ์•ฝ๊ฐ„ ๋ณต์žกํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์œ ์ง€ ๊ด€๋ฆฌ์—๋Š” ์•ฝ๊ฐ„์˜ ์ง€์‹์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Confluence Server๋Š” 10๋ช… ๋˜๋Š” 10,000๋ช…์˜ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด ์ฆ‰์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ›Œ๋ฅญํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
  • ํ”Œ๋Ÿฌ๊ทธ์ธ - ๊ธฐ๋ณธ์ ์œผ๋กœ ์•„๋ฆ„๋‹ต๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด ํƒ์ƒ‰ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ณ  ๊ฑฐ์˜ ๋ชจ๋“  ๊ฒƒ์— ๋Œ€ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ Wiki์™€ ์œ ์‚ฌํ•œ ์ž ์žฌ๋ ฅ์„ ๋ฐœํœ˜ํ•˜๋Š” Confluence์— ์ฐฌ์‚ฌ๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

๊ฒฝ์Ÿ

์ „ํˆฌ์— ์ฐธ๊ฐ€ํ–ˆ์œผ๋‚˜ ์Šน๋ฆฌํ•˜์ง€ ๋ชปํ•จ

๋ฌธ์„œ ์ฝ๊ธฐ โ€” ์˜คํ”ˆ ์†Œ์Šค์—๋Š” ๋ฉ‹์ง€์ง€๋งŒ ์—ฌ๊ธฐ์— ์ค‘์š”ํ•œ ์ง€์‹์„ ์ €์žฅํ•  ์ƒ๊ฐ์กฐ์ฐจ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

๊ฐ€๊ฒฉ ์ธํ•˜ - ์ฝ”๋“œ๋ฅผ ๋ฌธ์„œํ™”ํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•˜์ง€๋งŒ MarkDown์˜ ํŠน์ • ํ˜•์‹์œผ๋กœ ์ธํ•ด ์•„ํ‚คํ…์ฒ˜, ํ”„๋กœ์„ธ์Šค ๋˜๋Š” ๊ธฐํƒ€ ์œ ํ˜•์˜ ๋ฌธ์„œ๋ฅผ ๊ฒŒ์‹œํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

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

ํ•ฉ๊ณ„ํ•˜๋‹ค

์‹œ์žฅ์—๋Š” ๋ง ๊ทธ๋Œ€๋กœ ์ˆ˜๋ฐฑ ๊ฐ€์ง€์˜ DevOps ๋„๊ตฌ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์–ด๋–ค ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€, ์–ธ์ œ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š”์ง€ ์•Œ๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์™„์ „ํ•œ CI/CD ํŒŒ์ดํ”„๋ผ์ธ์„ ์œ„ํ•œ DevOps ๋„๊ตฌ๋ฅผ ์„ ํƒํ•˜๋ ค๋ฉด ์ด ๊ฐ„๋‹จํ•œ ๊ฐ€์ด๋“œ๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

๋‹ค์„ฏ ๊ฐ€์ง€ ๋ฒ”์ฃผ ๋ชจ๋‘์—์„œ ๋„๊ตฌ๋ฅผ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค.

  • ๊ฐœ๋ฐœ ๋ฐ ๋นŒ๋“œ ๋„๊ตฌ
  • ํ…Œ์ŠคํŠธ ์ž๋™ํ™” ๋„๊ตฌ
  • ๋ฐฐํฌ ๋„๊ตฌ
  • ๋Ÿฐํƒ€์ž„ ๋„๊ตฌ
  • ํ˜‘์—… ๋„๊ตฌ.

์ฃผ์š” ์ถ”์ฒœ์‚ฌํ•ญ: ๋ชจ๋“  ๊ฒƒ์„ ์ž๋™ํ™”ํ•˜์„ธ์š”!

์žญ ์ƒคํ”ผ๋กœ์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

์ถœ์ฒ˜ : habr.com

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