• toc {:toc}

Kubernetes Overview

  • Kubernetes : ์ปจํ…Œ์ด๋„ˆํ™”๋œ App์„ ์ž๋™์œผ๋กœ ๋ฐฐํฌ, ์ž์› ํ• ๋‹น, ์šด์˜์„ ํ•˜๋Š” ๊ตฌ๊ธ€์ด ์ œ์ž‘ํ•œ ์˜คํ”ˆ์†Œ์Šค ์‹œ์Šคํ…œ์ด๋‹ค.
  • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—๊ฒŒ ์šด์˜์ž๋Š” ๋ณธ์ธ์ด ์›ํ•˜๋Š” desired state๋ฅผ ์ œ๊ณตํ•˜๋ฉด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” desired state๋ฅผ ๋งŒ์กฑ์‹œํ‚ค๋Š” ์ชฝ์œผ๋กœ ์กฐ์ •ํ•œ๋‹ค.
  • ์šด์˜์ž์˜ ์ตœ์†Œ ๋‹จ์œ„๋Š” pod ๋‹จ์œ„์ด๋‹ค. ๋„ˆ๋ฌด ์ž‘์€ ๋‹จ์œ„๊ฐ€ ์•„๋‹ˆ๋ผ, ์„œ๋น„์Šค ์ž…์žฅ์—์„œ์˜ ์ตœ์†Œ ๋‹จ์œ„
  • cattle ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋ฉด ์ฃฝ์ด๊ณ  ๋‹ค์‹œ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๊ณ  ์ด๋ฅผ ip ์ฃผ์†Œ๋กœ ๋ฐ›์•„ ํŒŒ์•…ํ•˜๋ ค ํ•˜๋ฉด ํž˜๋“ค๋‹ค. ๋•Œ๋ฌธ์— DNS๋ฅผ ์ด์šฉํ•œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ž‘์‹œํ‚จ๋‹ค.

Monolithic vs Microservice

  • ๊ฐ’์ด ์‹ผ ์ธํ…” CPU์— ๋ฆฌ๋ˆ…์Šค๋ฅผ ์˜ฌ๋ฆฌ๊ณ  ํ•œ ๋Œ€์—์„œ ํ•ด์•ผํ•  ์ผ์„ ์ชผ๊ฐœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปดํ“จํ„ฐ์—์„œ ๋„คํŠธ์›Œํ‚น์„ ํ•ด์„œ ์ž‘๋™์‹œํ‚ค๋ฉด ๋น„์šฉ์„ ์•„๋‚„ ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ?

  • ํ•„์š”ํ•  ๋•Œ ํ•„์š”ํ•œ ๋งŒํผ CPU, Disk, Network๋ฅผ ๋นŒ๋ ค ์“ฐ๊ณ  ์‚ฌ์šฉํ•œ ๋งŒํผ ๋น„์šฉ์„ ์ง€๋ถˆํ•œ๋‹ค. - Cloud Computing

  • ์ชผ๊ฐค ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋งค์šฐ ์ž‘์€ ๋‹จ์œ„๋กœ ์ชผ๊ฐ ๋‹ค.

  • ์ชผ๊ฐ  ๊ฒƒ์„ ๋„์›Œ์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— OS๋กœ ์ธํ•ด CPU๋ฅผ ๋งŽ์ด ์žก์•„ ๋จน๋Š” ๊ฐ€์ƒ๋จธ์‹ ์ด ์•„๋‹Œ ํ•„์š”ํ•  ๋•Œ ํ•„์š”ํ•œ ๋งŒํผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•œ๋‹ค.

  • ์ „ํ†ต์  ๋ฐฉ์‹

    • ๋ชจ๋‘ ํ†ต์ผ๋œ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
    • Main Frame : ๋ณด์ˆ˜์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ณ ์ˆ˜ํ•œ๋‹ค.
  • ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค

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

    • ์ „ํ†ต์  ๋ฐฉ์‹
      • ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ํ†ตํ•ฉํ•˜๊ฑฐ๋‚˜ 2~3๊ฐœ๋กœ ๋‚˜๋ˆ„์–ด ๊ธฐ๋Šฅ์„ ๋ถ„ํ• ํ•˜๋Š” ํ˜•์‹
      • ํ•˜๋‚˜์˜ ํ†ต์ผ๋œ ์–ธ์–ด๋กœ ๊ฐœ๋ฐœ
      • ๊ฐœ๋ฐœ ๋Šฅ๋ ฅ์ด ์•ˆ ๋˜๋ฉด ๊ฐœ๋ฐœ ๋Šฅ๋ ฅ์„ ๊ธธ๋Ÿฌ์•ผ ํ–ˆ๋‹ค.
    • ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค
      • ์„œ๋กœ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›์œผ๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ž˜์™€ ๊ฐ™์€ ์žฅ์ ์„ ๊ฐ–๋Š”๋‹ค.

Microservice Architecture

  • Scalablility

    • ๊ฐ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ๋‹ค๋ฅธ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ์˜ํ–ฅ์—†์ด ๋…๋ฆฝ์ ์œผ๋กœ ์šฉ๋Ÿ‰์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.
    • ํŠน์ • ๊ธฐ๋Šฅ์˜ ์šฉ๋Ÿ‰์„ ๋Š˜๋ฆฌ๊ณ  ์‹ถ์„ ๋•Œ Monolithic์€ ๋ถ„๋ฆฌํ•˜์ง€ ๋ชปํ•ด ๋‹ค๋ฅธ ๊ธฐ๋Šฅ๋„ scale up ๋˜์–ด์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ๋‹ค๋ฅธ ์„œ๋น„์Šค์˜ ์˜ํ–ฅ์—†์ด ์šฉ๋Ÿ‰์„ ๋Š˜๋ฆด ์ˆ˜ ์žˆ๋‹ค.
  • Availability

    • ํ•œ ์„œ๋น„์Šค์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ๋‹ค๋ฅธ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋“ค์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์ด ํฌ์ง€ ์•Š๋‹ค.
    • ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ๋˜์‚ด๋ฆด ์ˆ˜ ์žˆ๋‹ค.
    • 100๊ฐœ ์ค‘ 1๊ฐœ์˜ ๊ธฐ๋Šฅ์ด ์˜ค๋™์ž‘์„ ํ•˜๋Š” ๊ฒฝ์šฐ์— Monolithic์€ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์ด ๋ชจ๋‘ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ๋˜์–ด ์žˆ์–ด ๋‹ค๋ฅธ ์„œ๋น„์Šค์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์ด ํฌ์ง€ ์•Š๋‹ค.
  • Fault Tolerance

    • ๋‹ค๋ฅธ ์„œ๋น„์Šค๋“ค์ด ์ž˜ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ „์ฒด App์ด ๋‹ค์šด๋˜๋Š” ๊ฒƒ ๋Œ€์‹ ์— ์ž‘์€ ๋ถ€๋ถ„๋งŒ ์˜ํ–ฅ ๋ฐ›๋Š”๋‹ค.
  • Agility

    • ๋น ๋ฅธ ๋ฐฐํฌ ๊ณผ์ •์ด agile ํ™˜๊ฒฝ์„ ์˜๋ฏธํ•˜๋Š” ๋ณ€ํ™”ํ•˜๋Š” ์š”๊ตฌ๋ฅผ ์œ„ํ•œ ์ ํ•ฉํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.
    • 100๊ฐœ์˜ ๊ธฐ๋Šฅ์„ 1000๋ช…์ด ๋งŒ๋“ค์—ˆ๋‹ค๊ณ  ํ•œ๋‹ค๋ฉด 1๊ฐœ์˜ ๊ธฐ๋Šฅ์„ 10๋ช…์ด ์ œ์ž‘. Monolithic์€ ๋ชจ๋‘๊ฐ€ ๊ฐ™์€ ์ œํ•œ ์‹œ๊ฐ„๊นŒ์ง€ ๊ธฐ๋Šฅ ์ œ์ž‘์„ ์™„๋ฃŒํ•ด์•ผ ๋นŒ๋“œ, ๋ฐฐํฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ๊ฐ ๊ธฐ๋Šฅ๋งˆ๋‹ค ๋”ฐ๋กœ ๋นŒ๋“œ, ๋ฐฐํฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋น ๋ฅธ ๋นŒ๋“œ, ๋ฐฐํฌ ๊ฐ€๋Šฅ
  • Polyglot Persistence

    • Polyglot : ๋‹ค์–‘ํ•œ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ์ฆ‰, ์˜ฌ๋ฐ”๋ฅธ ์‚ฌ๋ก€์— ์•Œ๋งž๋Š” ์˜ฌ๋ฐ”๋ฅธ ๋„๊ตฌ๋ฅผ ์„ ํƒํ•œ๋‹ค.
    • Application stack์€ ํŠน์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฌถ์—ฌ์žˆ์ง€ ์•Š๋Š”๋‹ค.
  • Maintainability

    • ๊ธฐ๋Šฅ๋“ค์„ ๋ถ„๋ฆฌํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์†Œ๋œ ์ฝ”๋“œ ์–‘์œผ๋กœ ์ธํ•ด ์œ ์ง€ ๋ณด์ˆ˜ํ•˜๊ธฐ ํŽธ๋ฆฌํ•˜๋‹ค.
  • MS Word / Office / Game โ†’ Monolithic โ†’ ๋น ๋ฅด๊ฒŒ ๋ณ€๊ฒฝํ•˜์ง€ ๋ชปํ•œ๋‹ค.

์™œ Microservice Architecture ์ธ๊ฐ€?

  • Software Stack agnostic
    • ํ•˜๋‚˜์˜ ์†Œํ”„ํŠธ์›จ์–ด ์Šคํƒ์œผ๋กœ ๋ฌถ์ธ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ์•Œ๋งž๋Š” ๋‹ค์–‘ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ์Šคํƒ์ด ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.
  • Faster Development
    • ๋น ๋ฅด๊ฒŒ ์š”๊ตฌ์‚ฌํ•ญ์— ์•Œ๋งž๋Š” ๋ณ€๊ฒฝ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • Clear Separation of Business Concerns
    • ๋น„์ฆˆ๋‹ˆ์Šค์˜ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋ช…ํ™•ํ•œ ๋ถ„๋ฆฌ๊ฐ€ ๋˜๋Š” ์ . ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ๋น ๋ฅด๊ฒŒ ์†Œํ†ตํ•˜๊ณ  ์›€์ง์ด๊ณ  ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.