DevOps

DevOps๋ฅผ ์•Œ์•„๋ณด์ž


๋ณธ ํฌ์ŠคํŒ…์€ DevOps์˜ ๊ฐœ๋…๊ณผ ๊ธฐ์ค€์ด ๊ฐœ์ธ,ํšŒ์‚ฌ,๋ฌธํ™”๋งˆ๋‹ค ์กฐ๊ธˆ์”ฉ ๋‹ฌ๋ผ ์ œ์ผ ๋ณดํŽธ์ ์ธ ์˜๋ฏธ์™€ ์ถ”๊ตฌํ•˜๋Š” ๋ฐฉํ–ฅ์„ ์ค‘์ ์œผ๋กœ ํฌ์ŠคํŒ… ํ•ฉ๋‹ˆ๋‹ค.๐Ÿ˜„

๐Ÿง DevOps๋ž€?

DEVOPS

DevOps๋Š” ๊ฐœ๋ฐœ(Development)๊ณผ ์šด์˜(Operations)์˜ ํ•ฉ์„ฑ์–ด์œผ๋กœ์จ,

๊ฐœ๋ฐœ๊ณผ ์šด์˜์˜ ๋‹ด๋‹น์ž๊ฐ€ ์—ฐ๊ณ„ํ•˜์—ฌ ํ˜‘๋ ฅํ•˜๋Š” ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก ์ค‘์— ํ•˜๋‚˜์ด๋‹ค.

์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์ž์™€ ์šด์˜์„ ๋‹ด๋‹นํ•˜๋Š” ์ •๋ณด๊ธฐ์ˆ  ์ „๋ฌธ๊ฐ€ ์‚ฌ์ด์˜ ์†Œํ†ต,ํ˜‘์—…,ํ†ตํ•ฉ ๋ฐ ์ž๋™ํ™”๋ฅผ ๊ฐ•์กฐํ•˜๋Š”

์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก ์ด๋‹ค. ์ด๋Ÿฐ ๊ฐœ๋…์€ ์• ์ž์ผ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ๊ณผ CI/CD ๋“ฑ์˜ ๊ฐœ๋…๊ณผ๋„ ๊ด€๋ จ์ด ์žˆ๋‹ค.

๐Ÿง Why DevOps?๐Ÿ™Œ

DEVOPS

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

๐Ÿ“ DevOps ๊ฐœ๋…๋“ค


Agile

์• ์ž์ผ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ

๊ณ„ํš๊ณผ ๋ฌธ์„œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐœ๋ฐœ ๋ชจํ˜•์ด๋‚˜ ๋ชจ๋ธ์— ๋”ฐ๋ผ ์•ž์„ ์˜ˆ์ธกํ•˜๋ฉฐ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ,

์‹ค์งˆ์ ์ธ ์ฝ”๋”ฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ผ์ •ํ•œ ์ฃผ๊ธฐ์— ๋”ฐ๋ผ ๊ณ„์†์ ์œผ๋กœ ํ”„๋กœํ† ํƒ€์ž…์„ ํ˜•์„ฑํ•˜๊ณ  ํ•„์š”ํ•œ ์š”๊ตฌ์‚ฌํ•ญ์„ ํŒŒ์•…ํ•˜๋ฉฐ

์ด์— ๋”ฐ๋ผ ์ฆ‰์‹œ ์ˆ˜์ •์‚ฌํ•ญ์„ ์ ์šฉํ•˜์—ฌ ๊ฒฐ๊ณผ์ ์œผ๋กœ ํ•˜๋‚˜์˜ ํฐ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ์ ์‘ํ˜• ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•

SCM (Source Code Management)

ํŒ€ ๋‹จ์œ„๋กœ ๊ฐœ๋ฐœ๋˜๋Š” ์†Œ์Šค๋ฅผ ์ง€์†์ ์œผ๋กœ ๊ด€๋ฆฌํ•ด์ค˜์•ผ ํ•œ๋‹ค. ์ง€์†์  ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ํ˜•์ƒ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ์ด์šฉํ•˜์—ฌ ๊ด€๋ฆฌํ•œ๋‹ค

ex) GIT, SVN

CI/CD

๊ฐœ๋ฐœํ•œ ์ฝ”๋“œ๋ฅผ ๋นŒ๋“œ(build)๋ถ€ํ„ฐ ๋ฐฐํฌ(Deploy)๊นŒ์ง€ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์˜ ๋‹จ์ถ•์„ ์œ„ํ•ด์„œ CD/CI ๊ตฌ์ถ•์ด ํ•„์š”ํ•˜๋‹ค.

CI (Continuous Integration)

์ง€์†์ ์ธ ํ†ตํ•ฉ

CI๋Š” Build์™€ Test๋ฅผ ์‹ค์‹œํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ด๋‹ค.

์„œ๋น„์Šค์˜ ํ’ˆ์งˆ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด์„œ ์ง€์†์ ์ธ ๋นŒ๋“œ์™€ ํ…Œ์ŠคํŠธ ๊ณผ์ •์„ ์ง€์›ํ•œ๋‹ค.

  • Build
  • Unit test
  • Code Coverage

ex) Jenkins, Travis CI

์ž๋™ํ™” ํ…Œ์ŠคํŠธ์˜ ๊ฒฝ์šฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•˜๊ฒŒ ์‚ฌ์šฉ๋œ๋‹ค.

ex) Jest, Mocha โ€ฆ

CD (Continuous Deploy)

์ง€์†์ ์ธ ๋ฐฐํฌ

๋นŒ๋“œ๋‹จ๊ณ„ ์ดํ›„์˜ ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋ฐฐํฌ๋ฅผ ์ž๋™ํ™”ํ•œ๋‹ค.

๊ฐœ๋ฐœ์ž๊ฐ€ ์›ํ•  ๋–„ ์–ธ์ œ๋‚˜ ์ฆ‰์‹œ ํ…Œ์ŠคํŠธ ํ˜น์€ ํ”„๋กœ๋•์…˜์— ์ง€์†์ ์œผ๋กœ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‹ค.

Configuration Management

์•ˆ์ •์ ์ธ ์ง€์†์  ๋ฐฐํฌ๋ฅผ ์œ„ํ•˜์—ฌ ์„œ๋ฒ„ ๋ฐ ์„œ๋น„์Šค์˜ ์„ค์ •์„ ๊ด€๋ฆฌํ•œ๋‹ค.

์„œ๋ฒ„ OS, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ๋ฒ„์ „, ์„ค์น˜ ์ˆœ์„œ, ์ปดํŒŒ์ผ, ๋“ฑ์„ ํŠน์ •ํ•˜์—ฌ ๋”์šฑ ์•ˆ์ •์ ์ธ ๋ฐฐํฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.

Thanks to

์ฐธ๊ณ  : Kendrickโ€™s Blog - ๊ฐœ๋ฐœ๋ฌธํ™”ํƒ๊ตฌ: ๋ฐ๋ธŒ์˜ต์Šค (DevOps) - ์†Œ๊ฐœ

์ฐธ๊ณ  : ์—์ด์ฝ˜ ์•„์นด๋ฐ๋ฏธ - ๋ฐ๋ธŒ์˜ต์Šค DevOps๋ž€ ๋ฌด์—‡์ผ๊นŒ์š”?

์ฐธ๊ณ  : This is Game - [NDC 17] ์—†์–ด์„œ ๋ชป ๋ฝ‘๋Š”๋‹ค๋Š” ๋ฐ๋ธŒ์˜ต์Šค(DevOps) ๊ฐœ๋ฐœ์ž, ์–ด๋–ค ์ผ์„ ํ• ๊นŒ?


ยฉ 2019. All rights reserved.