[DevOps] DevOps ๋ž€?

maketheworldwiseยท2021๋…„ 8์›” 28์ผ
2

๐Ÿง Today I Learned (TIL)

  • DevOps ๊ฐœ๋…
  • DevOps ์—”์ง€๋‹ˆ์–ด

1. DevOps ๊ฐœ๋…

1-1. DevOps ์ •์˜

'๊ฐœ๋ฐœ (Dev)' ๊ณผ '์šด์˜ (Ops)' ์˜ ํ•ฉ์„ฑ์–ด๋กœ ๊ฐœ๋ฐœ๊ณผ ์šด์˜์˜ ๊ฒฝ๊ณ„๋ฅผ ํ—ˆ๋ฌผ๊ณ  ํ†ตํ•ฉํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฌธํ™”๋‚˜ ์ฒ ํ•™์„ ๋œปํ•œ๋‹ค.

1-2. DevOps ์—ญ์‚ฌ

'DevOps'๋ผ๋Š” ๋‹จ์–ด๋Š” 2009๋…„ 'O'Relly Velocity Conference์˜ <ํ•˜๋ฃจ์— 10ํšŒ ์ด์ƒ ๋ฐฐํฌํ•˜๊ธฐ: Flicker์—์„œ Dev์™€ Ops์˜ ํ˜‘์—…>'์—์„œ ๋งŒ๋“ค์–ด์กŒ๋‹ค.

2009๋…„์—๋Š” ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค๊ฐ€ ๋„์ž…๋˜์ง€ ์•Š์•˜๋˜ ์ƒํ™ฉ์ด์—ˆ๋‹ค. ๊ทธ ๋‹น์‹œ '์„œ๋ฒ„ ์žฅ๋น„ ๊ตฌ๋งค > ์„œ๋ฒ„ ์žฅ๋น„ ์œ„์— ์šด์˜์ฒด์ œ ์„ค์น˜ > ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•œ ํ™˜๊ฒฝ > ์„œ๋น„์Šค ๊ฐœ๋ฐœ > ๊ฐœ๋ฐœ ๊ฒฐ๊ณผ๋ฌผ ๋ฐฐํฌ > ์šด์˜' ํ”Œ๋กœ์šฐ๋กœ ์„œ๋น„์Šค๊ฐ€ ๋งŒ๋“ค์–ด์กŒ์œผ๋ฉฐ ๊ฐœ๋ฐœํŒ€๊ณผ ์šด์˜ํŒ€์œผ๋กœ ๋ถ„๋ฆฌ๊ฐ€ ๋˜์–ด์žˆ์—ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ตฌ์กฐ์†์—์„œ ๊ฐœ๋ฐœํŒ€๊ณผ ์šด์˜ํŒ€์€ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋ฌธ์ œ์™€ ์ˆ˜ ๋งŽ์€ ๊ฐˆ๋“ฑ์ด ๋ฐœ์ƒํ–ˆ๋‹ค.

Flickr๋Š” ๊ฐœ๋ฐœํŒ€๊ณผ ์šด์˜ํŒ€ ์‚ฌ์ด์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ด์Šˆ๋“ค์˜ ํ•ด๊ฒฐ์ฑ…์„ ๊ณต์œ ๋ฅผ ํ•˜๊ฒŒ ๋˜์—ˆ๊ณ  'Patrick Debois'๋Š” ์ด ํ•ด๊ฒฐ์ฑ…์„ ํ†ตํ•ด 'DevOpsDays'๋ผ๋Š” ์ปจํผ๋Ÿฐ์Šค๋ฅผ ์ฃผ์ตœํ•˜๋ฉด์„œ 'DevOps' ๋‹จ์–ด๊ฐ€ ๋“ฑ์žฅํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

1-3. DevOps ํ•„์š”์„ฑ

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

'Netflix'์—์„œ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋ชจ๋“  ๋‹จ๊ณ„์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ๋Š” 'Full-cycle Developer' ๋ชจ๋ธ์„ ์ œ์‹œํ–ˆ๋‹ค.

1-4. DevOps ๋ฐฉ๋ฒ•

DevOps๋Š” ๋ฌธํ™”์ด๊ธฐ๋•Œ๋ฌธ์— ๋ฐฉ๋ฒ•์ด ์—†๋‹ค. ํ•˜์ง€๋งŒ '๊ฐœ๋ฐœ๊ณผ ์šด์˜์˜ ๋ฒฝ์„ ํ—ˆ๋ฌผ์–ด ๋” ๋นจ๋ฆฌ ์ž์ฃผ ๋ฐฐํฌํ•˜์ž'๋Š” ๋ชฉํ‘œ๋ฅผ ์žก๊ณ  ์žˆ๋‹ค.

  • ์ง€์†์  ํ†ตํ•ฉ
  • ์ง€์†์  ๋ฐฐํฌ
  • ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค
  • IaC
  • ๋ชจ๋‹ˆํ„ฐ๋ง๊ณผ ๋กœ๊น…
  • ์†Œํ†ต ๋ฐ ํ˜‘์—…

2. DevOps ์—”์ง€๋‹ˆ์–ด

2-1. DevOps vs DevOps ์—”์ง€๋‹ˆ์–ด

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

DevOps ์—”์ง€๋‹ˆ์–ด๊ฐ€ ๋งก์€ ์—ญํ• ์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ๊ฑฑ์ •ํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ ์กฐ์ง์ด ์„ฑ์žฅํ•˜๋ฉด์„œ ์—…๋ฌด ๋„๋ฉ”์ธ์ด ์„ธ๋ถ„ํ™”๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€๋‹ด์ด ๋œ์–ด์ง„๋‹ค. DevOps์˜ ์ฃผ์š” ๊ณ ๊ฐ์€ ๊ฐœ๋ฐœ์ž์ด๋ฉฐ ์ƒ์‚ฐ์„ฑ์„ ๋†’์—ฌ์ฃผ๋Š” ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

2-2. DevOps ํŒ€ ์—…๋ฌด ๋„๋ฉ”์ธ

์กฐ์ง์˜ ๊ทœ๋ชจ๋‚˜ ๊ตฌ์„ฑ์— ๋”ฐ๋ผ ์—…๋ฌด ๋„๋ฉ”์ธ์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์œผ๋‚˜ ๋Œ€๋žต 8๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

  • ๋„คํŠธ์›Œํฌ

    • ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ ๋ฐ ๋ฌผ๋ฆฌ ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ
    • ํ”„๋ก์‹œ / VPN ์„œ๋ฒ„ ์šด์˜
    • DNS ์„œ๋ฒ„ ์šด์˜
  • ๊ฐœ๋ฐœ ๋ฐ ๋ฐฐํฌ ํ”Œ๋žซํผ

    • GitLab, GitHub์™€ ๊ฐ™์€ ๋ฒ„์ „ ๊ด€๋ฆฌ ๋ฐ ๊ฐœ๋ฐœ ํ˜‘์—… ํ”Œ๋žซํผ ์šด์˜
    • CI/CD ํŒŒ์ดํ”„๋ผ์ธ ์‹œ์Šคํ…œ ๊ตฌ์ถ• ๋ฐ ์šด์˜
    • QA ํ…Œ์ŠคํŠธ ๋ฐ ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ํ™˜๊ฒฝ ์ œ๊ณต
    • ํŒจํ‚ค์ง€ ์ €์žฅ์†Œ ์šด์˜ ๋ฐ ๋ฐฐํฌ ์‚ฐ์ถœ๋ฌผ ๊ด€๋ฆฌ
  • ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํ”Œ๋žซํผ

    • K8S, ECS, Nomad์™€ ๊ฐ™์€ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ์‹œ์Šคํ…œ ๊ตฌ์ถ• ๋ฐ ์šด์˜
    • Airflow, Argo Workflows์™€ ๊ฐ™์€ ์›Œํฌ ํ”Œ๋กœ์šฐ ์—”์ง„ ๊ตฌ์ถ• ๋ฐ ์šด์˜
  • ๊ด€์ธก ํ”Œ๋žซํผ

    • ๋กœ๊ทธ, ๋ฉ”ํŠธ๋ฆญ, ์—…ํƒ€์ž„, APM ์ •๋ณด๋ฅผ ๊ด€์ธกํ•  ์ˆ˜ ์žˆ๋Š” ์ค‘์•™ํ™”๋œ ์‹œ์Šคํ…œ ๊ตฌ์ถ• ๋ฐ ์šด์˜
    • ์ฃผ์š” ์ด๋ฒคํŠธ์— ๋Œ€ํ•œ ์•Œ๋ฆผ ์‹œ์Šคํ…œ ๊ตฌ์ถ•
  • ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ

    • ๊ฐœ๋ฐœ์ž๋“ค์ด ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ ์šด์˜ (์ž์ฒด ํด๋ผ์šฐ๋“œ, ํผ๋ธ”๋ฆญ ํด๋ผ์šฐ๋“œ ๋“ฑ)
  • ๋ณด์•ˆ ํ”Œ๋žซ ํผ

    • LDAP, AD, SAML๋“ฑ์„ ํ™œ์šฉํ•˜์—ฌ ํ†ตํ•ฉ๋œ ์ž„์ง์› ๊ณ„์ •๊ณ„ ์šด์˜
    • ์„œ๋ฒ„ ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ์ œ์–ด ์‹œ์Šคํ…œ ๊ตฌ์ถ• ๋ฐ ์šด์˜
    • ๋„คํŠธ์›Œํฌ ๋ฐฉํ™”๋ฒฝ ์ •์ฑ… ๊ด€๋ฆฌ
  • ๋ฐ์ดํ„ฐ ํ”Œ๋žซํผ

    • MySQL, DynamoDB, Redis์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์ถ• ๋ฐ ์šด์˜
    • RabbitMQ, Kafka, SQS๋“ฑ๊ณผ ๊ฐ™์€ ๋ฉ”์‹œ์ง• ์„œ๋น„์Šค ๊ตฌ์ถ• ๋ฐ ์šด์˜
    • ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค, BI ๋Œ€์‹œ๋ณด๋“œ ๊ตฌ์ถ• ๋ฐ ์šด์˜
  • ์„œ๋น„์Šค ์šด์˜

    • ๊ฐœ๋ฐœ์ž๋“ค๊ณผ ํ˜‘์—…ํ•˜์—ฌ ์„œ๋น„์Šค ๊ณต๋™ ์šด์˜

2-3. DevOps ํŒ€ ํ•ต์‹ฌ ์ง€ํ‘œ

  • ์žฅ์•  ๋ณต๊ตฌ ์‹œ๊ฐ„, MTTR (Mean Time To Recovery)

    • ์–ผ๋งˆ๋‚˜ ๋น ๋ฅด๊ฒŒ ์žฅ์•  ์ƒํ™ฉ์—์„œ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?
    • ์žฅ์•  ๋ณต๊ตฌ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค๋ฉด ์ธํ”„๋ผ ์ž๋™ํ™”๋‚˜ ๋ฐฐํฌ ํŒŒ์ดํ”„๋ผ์ธ ์ตœ์ ํ™”๊ฐ€ ํ•„์š”ํ•จ์„ ์•Œ ์ˆ˜ ์žˆ์Œ
  • ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•œ ๊ฒฐํ•จ๋ฅ  (Change Failure Rate)

    • ์–ผ๋งˆ๋‚˜ ์ž์ฃผ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์œผ๋กœ ์ธํ•ด ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”๊ฐ€?
    • ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•ด ๊ฒฐํ•จ์ด ์ž์ฃผ ๋ฐœ์ƒํ–ˆ์„ ๊ฒฝ์šฐ CI ํŒŒ์ดํ”„๋ผ์ธ(ํ…Œ์ŠคํŠธ) ๊ณผ์ •์— ์ž˜๋ชป๋จ์„ ์•Œ ์ˆ˜ ์žˆ์Œ
  • ๋ฐฐํฌ ๋นˆ๋„ (Deployment Frequency)

    • ์–ผ๋งˆ๋‚˜ ๋ฐฐํฌ๋ฅผ ์ž์ฃผ ํ•˜๋Š”๊ฐ€?
    • ๋ฐฐํฌ ๋นˆ๋„๊ฐ€ ๋‚ฎ์„ ๊ฒฝ์šฐ ์กฐ์ง ๋‚ด์˜ ๋ฌธํ™”๋‚˜ ์‹œ์Šคํ…œ์ ์ธ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ ํ–ˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Œ
    • ์‹œ์Šคํ…œ ์ž์ฒด๊ฐ€ ๊ฑฐ๋Œ€ํ•˜์—ฌ ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋œ๋‹ค๋ฉด ๊ธฐ๋Šฅ์„ ๋” ์„ธ๋ถ„ํ™”๊ฐ€ ํ•„์š”ํ•จ์„ ์•Œ ์ˆ˜ ์žˆ์Œ
  • ๋ณ€๊ฒฝ ์ ์šฉ ์†Œ์š” ์‹œ๊ฐ„ (Lead Time for Changes)

    • ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ํ”„๋กœ๋•์…˜ ๋ฐฐํฌ์— ๊ฑธ๋ฆฌ๋Š” ์†Œ์š” ์‹œ๊ฐ„์€ ์–ผ๋งˆ์ธ๊ฐ€?

๐Ÿ“š ์ฐธ๊ณ 

profile
์„ธ์ƒ์„ ํ˜„๋ช…ํ•˜๊ฒŒ ์ด๋Œ์–ด๊ฐˆ ๋‚˜์˜ ์„ฑ์žฅ ์ผ๊ธฐ ๐Ÿ““

0๊ฐœ์˜ ๋Œ“๊ธ€