์˜จ๋ผ์ธ ์ง‘์ค‘ํ˜• "Slurm DevOps: Tools&Cheats"์— ์—ฌ๋Ÿฌ๋ถ„์„ ์ดˆ๋Œ€ํ•ฉ๋‹ˆ๋‹ค.

์˜จ๋ผ์ธ ์ง‘์ค‘์€ 19์›” 21์ผ๋ถ€ํ„ฐ XNUMX์ผ๊นŒ์ง€ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. Slurm DevOps: ๋„๊ตฌ ๋ฐ ์š”๋ น.

DevOps ๊ณผ์ •์ด ์‹ธ์šฐ๋Š” ์ฃผ์š” ์ ์€ "๋งค์šฐ ํฅ๋ฏธ๋กญ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ํšŒ์‚ฌ์—์„œ ์ด๊ฒƒ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ด ์œ ๊ฐ์ž…๋‹ˆ๋‹ค." ์šฐ๋ฆฌ๋Š” ์ผ๋ฐ˜ ๊ด€๋ฆฌ์ž๋ผ๋„ ๋ ˆ๊ฑฐ์‹œ ํ”„๋กœ์ ํŠธ์— ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์†”๋ฃจ์…˜์„ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ณผ์ •์€ ๋‹ค์Œ์„ ๋Œ€์ƒ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค:

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

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

์˜จ๋ผ์ธ ์ง‘์ค‘ ๊ฐ•์ขŒ๋Š” ์ƒˆ๋กœ์šด ํ˜„์‹ค์˜ ํ˜•์‹์œผ๋กœ, ๋ชจ์Šคํฌ๋ฐ”์— ๊ฐ€์ง€ ์•Š๊ณ ๋„ ์˜คํ”„๋ผ์ธ ์ง‘์ค‘ ๊ฐ•์ขŒ์™€ ๊ฑฐ์˜ ๋™์ผํ•œ ๋ชฐ์ž…๊ฐ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค(์–ด๋–ค ์‚ฌ๋žŒ์—๊ฒŒ๋Š” ์žฅ์ ์ด๊ณ  ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ๋Š” ๋‹จ์ ์ž„).

์˜จ๋ผ์ธ ์ง‘์ค‘ํ˜• "Slurm DevOps: Tools&Cheats"์— ์—ฌ๋Ÿฌ๋ถ„์„ ์ดˆ๋Œ€ํ•ฉ๋‹ˆ๋‹ค.

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

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

๊ฒฝ์šฐ๋„ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‚ฌ๋ก€๋Š” ์ปจํผ๋Ÿฐ์Šค์˜ ์ฃผ์ œ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ณณ์—์„œ ์ธ์ƒ์—์„œ ์ผ์–ด๋‚œ ํ•œ ๊ฐ€์ง€ ์‚ฌ๊ฑด์— ๋Œ€ํ•ด ํ•œ ์‹œ๊ฐ„ ๋™์•ˆ ์ด์•ผ๊ธฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Slurm์—์„œ ๊ฐ•์‚ฌ๋Š” "์ด ์˜ˆ๋Š” ๋‚ด ์‹ค์Šต์—์„œ ๋”ฐ์˜จ ๊ฒƒ์ž…๋‹ˆ๋‹ค"๋ผ๊ณ ๋งŒ ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค์Šต์— ๋Œ€ํ•œ ๊ฐœ๋ณ„ ๋ถ„์„์€ ์—†์Šต๋‹ˆ๋‹ค. ์‹ค์Šต์€ ๋ฉ˜ํ† ๋ง์ด ์•„๋‹ˆ๋ผ ๊ฐ•์‚ฌ๋ฅผ ๋”ฐ๋ผ ๋ฐ˜๋ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฐ์Šต์˜ ๋ชฉ์ ์€ ์•Œ๋ ค์ง„ ์ž‘์—… ์˜ต์…˜์—์„œ ์‹คํ—˜์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ง‘์ค‘ ์ˆ˜์—… ํ›„์—๋Š” ๋ฉ”๋ชจ๋ฅผ ๊ฒ€ํ† ํ•˜๊ณ  ์ง์ ‘ ์—ฐ์Šต์„ ๋ฐ˜๋ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ตœ๋Œ€์˜ ๊ฒฐ๊ณผ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ์—†์„ ๊ฒƒ์ด๋‹ค โ€” ์ด๊ฒƒ์ด DevOps ๋„๊ตฌ์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์šฐ๋ฆฌ๋Š” ๋ณ„๋„์˜ ์ง‘์ค‘.

๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚ ๊นŒ์š”?

์œŒ ๋„๊ตฌ๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ์•Œ์•„๋ณด๊ธฐ ๊ธฐ๋ณธ ์ธํ”„๋ผ ๊ตฌ์ถ•์„ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

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

๋งค์ผ์žˆ์„๊ฑฐ์•ผ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€, ๊ท€ํ•˜์˜ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด ๋ฌธ์˜ํ•˜์‹ค ์ˆ˜ ์žˆ๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค.

์œŒ ํ”ผ๋“œ๋ฐฑ ์ž‘์—…: ์šฐ๋ฆฌ๋Š” ๋งค์ผ ํ”ผ๋“œ๋ฐฑ์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์Œ์— ๋“ค์ง€ ์•Š๋Š” ๋ชจ๋“  ๊ฒƒ์— ๋Œ€ํ•ด ์ ์–ด์ฃผ์„ธ์š”. ์ง„ํ–‰๋˜๋Š” ๋Œ€๋กœ ์ˆ˜์ •ํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ „ํ†ต์ ์ธ ๊ธฐํšŒ๊ฐ€ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ˆ์„ ๊ฐ€์ง€๊ณ  ๋– ๋‚˜๋ผ ์ฝ”์Šค๊ฐ€ ์ „ํ˜€ ๋งˆ์Œ์— ๋“ค์ง€ ์•Š๋Š”๋‹ค๋ฉด.

์ง‘์ค‘ ํ”„๋กœ๊ทธ๋žจ

์ฃผ์ œ #1: Git์„ ์‚ฌ์šฉํ•œ ํŒ€์›Œํฌ

  • ๊ธฐ๋ณธ ๋ช…๋ น git init, commit, add, diff, log, status, pull, push
  • Git ํ๋ฆ„, ๋ถ„๊ธฐ ๋ฐ ํƒœ๊ทธ, ๋ณ‘ํ•ฉ ์ „๋žต
  • ์—ฌ๋Ÿฌ ์›๊ฒฉ ๋‹ด๋‹น์ž์™€ ํ˜‘๋ ฅ
  • GitHub ํ๋ฆ„
  • ํฌํฌ, ์›๊ฒฉ, ํ’€ ์š”์ฒญ
  • ํŒ€๊ณผ ๊ด€๋ จ๋œ Gitflow ๋ฐ ๊ธฐํƒ€ ํ๋ฆ„์— ๋Œ€ํ•œ ์ถฉ๋Œ, ๋ฆด๋ฆฌ์Šค, ๋‹ค์‹œ ํ•œ ๋ฒˆ

์ฃผ์ œ #2: ๊ฐœ๋ฐœ ๊ด€์ ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž‘์—…

  • Python์œผ๋กœ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์ž‘์„ฑ
  • ํ™˜๊ฒฝ ๋ณ€์ˆ˜
  • ํ†ตํ•ฉ ๋ฐ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ
  • ๊ฐœ๋ฐœ ์‹œ docker-compose ์‚ฌ์šฉ

์ฃผ์ œ #3: CI/CD: ์ž๋™ํ™” ์†Œ๊ฐœ

  • ์ž๋™ํ™” ์†Œ๊ฐœ
  • ๋„๊ตฌ(bash, make, gradle)
  • git-hooks๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค ์ž๋™ํ™”
  • ๊ณต์žฅ ์กฐ๋ฆฝ ๋ผ์ธ ๋ฐ IT ๋ถ„์•ผ์˜ ์‘์šฉ
  • "์ผ๋ฐ˜" ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•์˜ ์˜ˆ
  • CI/CD์šฉ ์ตœ์‹  ์†Œํ”„ํŠธ์›จ์–ด: Drone CI, BitBucket Pipelines, Travis ๋“ฑ

์ฃผ์ œ #4: CI/CD: GitLab ์ž‘์—…

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

์ฃผ์ œ #5: ์ฝ”๋“œํ˜• ์ธํ”„๋ผ

  • IaC: ์ธํ”„๋ผ๋ฅผ ์ฝ”๋“œ๋กœ ์ ‘๊ทผ
  • ์ธํ”„๋ผ ์ œ๊ณต์ž๋กœ์„œ์˜ ํด๋ผ์šฐ๋“œ ์ œ๊ณต์ž
  • ์‹œ์Šคํ…œ ์ดˆ๊ธฐํ™” ๋„๊ตฌ, ์ด๋ฏธ์ง€ ๊ตฌ์ถ•(ํŒจ์ปค)
  • Terraform์„ ์˜ˆ์‹œ๋กœ ์‚ฌ์šฉํ•˜๋Š” IaC
  • ๊ตฌ์„ฑ ์ €์žฅ, ํ˜‘์—…, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž๋™ํ™”
  • Ansible ํ”Œ๋ ˆ์ด๋ถ ์ƒ์„ฑ ์—ฐ์Šต
  • ๋ฉฑ๋“ฑ์„ฑ, ์„ ์–ธ์„ฑ
  • Ansible์„ ์˜ˆ๋กœ ์‚ฌ์šฉํ•˜๋Š” IaC

์ฃผ์ œ #6: ์ธํ”„๋ผ ํ…Œ์ŠคํŠธ

  • Molecule ๋ฐ GitLab CI๋ฅผ ์‚ฌ์šฉํ•œ ํ…Œ์ŠคํŠธ ๋ฐ ์ง€์†์ ์ธ ํ†ตํ•ฉ
  • ๋ฐฉ๋ž‘์ž ์‚ฌ์šฉ

์ฃผ์ œ #7: Prometheus๋ฅผ ์‚ฌ์šฉํ•œ ์ธํ”„๋ผ ๋ชจ๋‹ˆํ„ฐ๋ง

  • ๋ชจ๋‹ˆํ„ฐ๋ง์ด ํ•„์š”ํ•œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
  • ๋ชจ๋‹ˆํ„ฐ๋ง ์œ ํ˜•
  • ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์˜ ์•Œ๋ฆผ
  • ๊ฑด๊ฐ•ํ•œ ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ๋ˆ„๊ตฌ๋‚˜ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ์•Œ๋ฆผ
  • ๊ฑด๊ฐ•๊ฒ€์ง„, ์ฃผ์˜ํ•ด์•ผ ํ•  ์ 
  • ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ์ž๋™ํ™”

์ฃผ์ œ #8: ELK๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ๊น…

  • ์ตœ๊ณ ์˜ ๋กœ๊น… ๋ฐฉ๋ฒ•
  • ELK ์Šคํƒ

์ฃผ์ œ #9: ChatOps๋ฅผ ํ†ตํ•œ ์ธํ”„๋ผ ์ž๋™ํ™”

  • DevOps ๋ฐ ChatOps
  • ChatOps: ๊ฐ•์ 
  • Slack ๋ฐ ๋Œ€์•ˆ
  • ChatOps์šฉ ๋ด‡
  • ํœด๋ด‡๊ณผ ๋Œ€์•ˆ
  • ะ‘ะตะทะพะฟะฐัะฝะพัั‚ัŒ
  • ๋ชจ๋ฒ” ์‚ฌ๋ก€์™€ ์ตœ์•… ์‚ฌ๋ก€

ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์€ ์ง„ํ–‰ ์ค‘์ด๋ฏ€๋กœ ๋‹ค์†Œ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€๊ฒฉ: 30 000 โ‚ฝ

๋“ฑ๋ก

์ถœ์ฒ˜ : habr.com

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