๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ”ฅ IT 8๊ฐœ ์ง๋ฌด ๊ธฐ์ดˆ์ฒดํ—˜

IT ์šฉ์–ด(7) - ๋ฐฐํฌ ๋ฐฉ์‹ ์ข…๋ฅ˜

๋ฐฐํฌ

์˜ˆ์ „์—๋Š” ์ˆ˜ ๊ฐœ์›” ํ˜น์€ ์ˆ˜ ๋…„์— ํ•œ ๋ฒˆ์”ฉ ์„œ๋น„์Šค๋ฅผ ๋ฆด๋ฆฌ์ฆˆ ํ–ˆ์—ˆ์ง€๋งŒ, ์ตœ๊ทผ์—๋Š” ์„œ๋น„์Šค๋ฅผ ๋” ์ž‘๊ฒŒ ๋งŒ๋“ค๊ณ (๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค) ๋” ์ž์ฃผ ๋ฐฐํฌ(Deployment) ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ณ€ํ™”ํ•˜๊ณ  ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŠธ๋ Œ๋“œ์— ๋งž์ถฐ ์„œ๋น„์Šค ๋ฐฐํฌ ์ „๋žต๋„ ๋‹ค์–‘ํ•˜๊ฒŒ ๊ฐœ๋ฐœ๋˜๊ณ  ๋ฐœ์ „๋˜์–ด ์™”๋‹ค.

๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ๋ฐฐํฌ ์ „๋žต์œผ๋กœ๋Š” Rolling, Blue/Green, Canary ๊ธฐ๋ฒ•์ด ์žˆ๋‹ค.

 

 

1) Rolling Deployment

  • ๋กค๋ง ์—…๋ฐ์ดํŠธ ๋ฐฉ์‹์€, ์ƒˆ ๋ฒ„์ „์˜ ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค์–ด๊ฐ€๋ฉด์„œ ํŠธ๋ž˜ํ”ฝ์„ ๊ตฌ ๋ฒ„์ „ ์„œ๋ฒ„์—์„œ ์‹  ๋ฒ„์ „ ์„œ๋ฒ„๋กœ ์ ์ฐจ์ ์œผ๋กœ ์˜ฎ๊ธฐ๋Š” ํ˜•ํƒœ์ด๋‹ค.
  • ๊ตฌ ๋ฒ„์ „ ์„œ๋ฒ„์™€ ์‹  ๋ฒ„์ „ ์„œ๋ฒ„์˜ ๋น„์œจ์„ N-K : K (K๋ฅผ N๊นŒ์ง€ ์ฆ๊ฐ€)๋กœ ์กฐ์ •ํ•˜๋ฉฐ ์ ์ฐจ์ ์œผ๋กœ ๋ถ€ํ•˜๋ฅผ ์‹  ๋ฒ„์ „ ์„œ๋ฒ„๋กœ ์ด์ „ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
  • Blue/Green ๋ฐฐํฌ ๋ฐฉ์‹์€ ์ธํ”„๋ผ ๋ฆฌ์†Œ์Šค๊ฐ€ 2๋ฐฐ๋กœ ํ•„์š”ํ•œ๋ฐ ๋น„ํ•ด, ๋กค๋ง ์—…๋ฐ์ดํŠธ ๋ฐฐํฌ๋Š” ์„œ๋ฒ„ ์ž์›์ด ํ•œ์ •์ ์ธ ๊ฒฝ์šฐ ์œ ๋ฆฌํ•˜๋‹ค.
์žฅ์  ๋‹จ์ 
  • Downtime์ด ์—†์Œ.
  • ๋ฒ„์ „์˜ ์—…๋ฐ์ดํŠธ์™€ ํ…Œ์ŠคํŒ…์„ ๋™์‹œ์— ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ตฌ ๋ฒ„์ „๊ณผ ์‹  ๋ฒ„์ „์ด ๊ณต์กดํ•˜๋Š” ์‹œ๊ธฐ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ, ๋‘ ๋ฒ„์ „์„ ๋ชจ๋‘ ๊ณ ๋ คํ•˜์—ฌ ๊ฐœ๋ฐœํ•ด์•ผ ํ•œ๋‹ค.(e.g., DB schema)
  • ์„ธ์…˜ ์˜์†์„ฑ์— ๋Œ€ํ•œ ๊ณ ๋ ค์‚ฌํ•ญ(์„œ๋ฒ„๊ฐ€ ๋กค๋ง ์—…๋ฐ์ดํŠธ ์ƒํƒœ๋กœ ๋„˜์–ด๊ฐˆ ๋•Œ, ๊ธฐ์กด ์„œ๋ฒ„์— ์ ‘์†ํ•˜๊ณ  ์žˆ๋˜ ์‚ฌ์šฉ์ž์˜ session์„ ์‹ ๊ทœ ์„œ๋ฒ„๋กœ ์ด์ „ํ•ด์•ผ ํ•œ๋‹ค. ์—…๋ฐ์ดํŠธ๊ฐ€ ์ข…๋ฃŒ๋œ ์„œ๋ฒ„๋‚˜ ์—…๋ฐ์ดํŠธ ๋˜์ง€ ์•Š์€ ์„œ๋ฒ„ ๋ชจ๋‘์—์„œ ์„œ๋น„์Šค๋ฅผ ์ด์–ด๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑํ•ด์•ผ ํ•œ๋‹ค.)

 

2) Blue/Green Deployment

  • Blue/Green ๋ฐฐํฌ ์ „๋žต์€ ์ƒˆ ๋ฒ„์ „์˜ ์„œ๋ฒ„ ๊ทธ๋ฃน์„ ๋ชจ๋‘ ๋ฐฐํฌ ์™„๋ฃŒํ•œ ๋’ค์—,
  • ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ์—์„œ ํŠธ๋ž˜ํ”ฝ์„ ๊ตฌ ๋ฒ„์ „์—์„œ ์ƒˆ ๋ฒ„์ „์œผ๋กœ ์ผ์‹œ์— ๋ฐ”๊พธ๋Š” ๋ฐฉ์‹์ด๋‹ค.
์žฅ์  ๋‹จ์ 
  • Downtime ์ตœ์†Œํ™” ๊ฐ€๋Šฅ
    ์‹ ๊ทœ ๋ฒ„์ „์— ๋ฌธ์ œ ๋ฐœ์ƒ์‹œ ๋น ๋ฅธ rollback์ด ๊ฐ€๋Šฅ
  • ์ธํ”„๋ผ ๋ฆฌ์†Œ์Šค๊ฐ€ 2๋ฐฐ๋กœ ๋“ค์–ด๊ฐ„๋‹ค.
  • ๊ธฐ์กด ์šด์˜๋˜๊ณ  ์žˆ๋Š” ์„œ๋ฒ„์—์„œ Long-term ํŠธ๋žœ์žญ์…˜์ด ์ˆ˜ํ–‰์ค‘์ด์—ˆ๋‹ค๋ฉด ์ „ํ™˜์‹œ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ง€ ์ถฉ๋ถ„ํ•œ ๊ณ ๋ ค๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
  • ๋‘ ์„œ๋ฒ„ ํ™˜๊ฒฝ๊ฐ„ migration์ด ๋ฐฐํฌ๋•Œ ๋งˆ๋‹ค ํ•„์š”ํ•˜๋ฉฐ, Rollback ์ˆ˜ํ–‰์‹œ์—๋„ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค.

 

3) Canary Deployment

  • 'Canary'๋ผ๋Š” ์šฉ์–ด์˜ ์–ด์›์„ ์•Œ๋ฉด ์ดํ•ด๊ฐ€ ๋” ์‰ฝ๋‹ค. Canary๋Š” ์นด๋‚˜๋ฆฌ์•„ ๋ผ๋Š” ์ƒˆ๋ฅผ ์ผ์ปซ๋Š” ๋ง์ธ๋ฐ, ์ด ์ƒˆ๋Š” ์ผ์‚ฐํ™”ํƒ„์†Œ ๋ฐ ์œ ๋…๊ฐ€์Šค์— ๋งค์šฐ ๋ฏผ๊ฐํ•˜๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๊ณผ๊ฑฐ ๊ด‘๋ถ€๋“ค์ด ์ด ์ƒˆ๋ฅผ ์˜†์— ๋‘๊ณ  ๊ด‘์‚ฐ์—์„œ ์ผ์„ ํ•˜๋‹ค๊ฐ€ ์นด๋‚˜๋ฆฌ์•„๊ฐ€ ๊ฐ‘์ž๊ธฐ ์ฃฝ๊ฒŒ ๋˜๋ฉด ๋Œ€ํ”ผ๋ฅผ ํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค.
  • Canary ๋ฐฐํฌ๋Š” ์นด๋‚˜๋ฆฌ์•„ ์ƒˆ์ฒ˜๋Ÿผ ์œ„ํ—˜์„ ๋น ๋ฅด๊ฒŒ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฐํฌ ๊ธฐ๋ฒ•์ด๋‹ค. ์นด๋‚˜๋ฆฌ ๋ฐฐํฌ๋Š” ์ผ๋ถ€์„œ๋ฒ„(10% ์ •๋„?)์—๋งŒ ์‹  ๋ฒ„์ „์„ ๋ฐฐํฌํ•˜์—ฌ ์šด์˜ํ•œ ํ›„ ๋ฌธ์ œ๊ฐ€ ์—†๋Š”๊ฒƒ์ด ํ™•์ธ๋˜๋ฉด ์ ์ฐจ์ ์œผ๋กœ ๋ชจ๋“  ์„œ๋ฒ„์— ์‹  ๋ฒ„์ „์„ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
์žฅ์  ๋‹จ์ 
  • capacity testing์„ ์šด์˜ํ™˜๊ฒฝ์—์„œ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ .(Rollback๋„ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ฐ€๋Šฅํ•˜๋‹ค.)
  • ๋™์‹œ์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ์†Œํ”„ํŠธ์›จ์–ด ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ .
  • ๋™์‹œ์— 2๊ฐœ ์ด์ƒ์˜ ๋ฒ„์ „์ด ์šด์˜ํ™˜๊ฒฝ์— ๋ฐฐํฌ๋˜๋„๋ก ํ•  ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ, ์ข‹์€ ๋ฐฉ๋ฒ•์ด ์•„๋‹ˆ๋‹ค..(๋กค๋ฐฑ๋งŒ ์ƒ๊ฐํ•ด๋„..)
  • ์‚ฌ์šฉ์ž PC๋‚˜ ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ์— ์„ค์น˜ํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ์‚ฌ์šฉ์ด ์–ด๋ ต๋‹ค.(์‚ฌ์šฉ์ž(๊ณ ๊ฐ)๋ฅผ ์ œํ•œํ•  ์ˆ˜ ์—†๋‹ค.)