์‚ฌ์ด๋ฒ„ํŽ‘ํฌ๋ฅผ ๊ณ๋“ค์ธ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ํƒ„์ƒ์˜ ์—ญ์‚ฌ

์‚ฌ์ด๋ฒ„ํŽ‘ํฌ๋ฅผ ๊ณ๋“ค์ธ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ํƒ„์ƒ์˜ ์—ญ์‚ฌ

IT ๋ถ„์•ผ์—์„œ ์ผํ•˜๋ฉด์„œ ์‹œ์Šคํ…œ์—๋Š” ๊ณ ์œ ํ•œ ํŠน์„ฑ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ซ๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์œ ์—ฐํ•˜๊ณ , ์กฐ์šฉํ•˜๊ณ , ๊ธฐ์ดํ•˜๊ณ , ์—„๊ฒฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๋Œ์–ด๋‹น๊ธธ ์ˆ˜๋„ ์žˆ๊ณ  ๋ฐ€์–ด๋‚ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์‹์œผ๋กœ๋“  ๊ทธ๋“ค๊ณผ "ํ˜‘์ƒ"ํ•˜๊ณ  "ํ•จ์ •" ์‚ฌ์ด๋ฅผ ์กฐ์ข…ํ•˜๋ฉฐ ์ƒํ˜ธ ์ž‘์šฉ์˜ ์‚ฌ์Šฌ์„ ๊ตฌ์ถ•ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์„ ๊ตฌ์ถ•ํ•˜๋Š” ์˜๊ด‘์„ ๋ˆ„๋ ธ๊ณ  ์ด๋ฅผ ์œ„ํ•ด ์šฐ๋ฆฌ์™€ ํ˜‘๋ ฅํ•  ๋ช‡ ๊ฐ€์ง€ ํ•˜์œ„ ์‹œ์Šคํ…œ์„ "์„ค๋“"ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹คํ–‰์Šค๋Ÿฝ๊ฒŒ๋„ ์šฐ๋ฆฌ๋Š” "API ์–ธ์–ด"์™€ ์ง์ ‘์ ์ธ ์†๊ธธ, ๊ทธ๋ฆฌ๊ณ  ๋งŽ์€ ์—ด์ •์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

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

๊ณ ์–‘์ด์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.

์—ฌํ–‰์˜ ์‹œ์ž‘

์–ผ๋งˆ ์ „ ์šฐ๋ฆฌ ํŒ€์€ ๊ณ ๊ฐ์„ ์œ„ํ•œ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์„ ์ถœ์‹œํ•˜๋Š” ์ž„๋ฌด๋ฅผ ๋งก์•˜์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ด€๋ฆฌ ์ง€์›, ๋ฆฌ์†Œ์Šค, ํ•˜๋“œ์›จ์–ด ์Šคํƒ์„ ๊ฐ–๊ณ  ์„œ๋น„์Šค์˜ ์†Œํ”„ํŠธ์›จ์–ด ๋ถ€๋ถ„์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ์ˆ ์„ ์ž์œ ๋กญ๊ฒŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์š”๊ตฌ ์‚ฌํ•ญ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

  • ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๋ ค๋ฉด ํŽธ๋ฆฌํ•œ ๊ฐœ์ธ ๊ณ„์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • ํ”Œ๋žซํผ์€ ๊ธฐ์กด ์ฒญ๊ตฌ ์‹œ์Šคํ…œ์— ํ†ตํ•ฉ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์†Œํ”„ํŠธ์›จ์–ด ๋ฐ ํ•˜๋“œ์›จ์–ด: OpenStack + Tungsten Fabric(Open Contrail), ์šฐ๋ฆฌ ์—”์ง€๋‹ˆ์–ด๋“ค์€ ์ด๋ฅผ ์•„์ฃผ ์ž˜ "์š”๋ฆฌ"ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค.

Habra ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ๊ด€์‹ฌ์„ ๊ฐ–๊ณ  ๊ณ„์‹ ๋‹ค๋ฉด ํŒ€ ๊ตฌ์„ฑ, ๊ฐœ์ธ ๊ณ„์ • ์ธํ„ฐํŽ˜์ด์Šค ๊ฐœ๋ฐœ ๋ฐ ๋””์ž์ธ ๊ฒฐ์ • ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค์‹œ ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.
์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ๋„๊ตฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • Python + Flask + Swagger + SQLAlchemy - ์™„์ „ํžˆ ํ‘œ์ค€์ ์ธ Python ์„ธํŠธ์ž…๋‹ˆ๋‹ค.
  • ํ”„๋ก ํŠธ์—”๋“œ์šฉ Vue.js;
  • ์šฐ๋ฆฌ๋Š” AMQP๋ฅผ ํ†ตํ•ด Celery๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑ ์š”์†Œ์™€ ์„œ๋น„์Šค ๊ฐ„์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

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

๊ทธ๋Ÿผ ์šฐ๋ฆฌ์˜ ์นœ๋ถ„์„ ์‹œ์ž‘ํ•ฉ์‹œ๋‹ค.

์ž๋™ ์ฒญ๊ตฌ์„œ - ์ฒญ๊ตฌ

์šฐ๋ฆฌ๋Š” ์ด ์‚ฌ๋žŒ์„ ์˜ค๋žซ๋™์•ˆ ์•Œ๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ํ•ญ์ƒ ๋‚ด ์˜†์— ์•‰์•„ ์กฐ์šฉํžˆ ๋ฌด์–ธ๊ฐ€๋ฅผ ์„ธ์—ˆ์Šต๋‹ˆ๋‹ค. ๋•Œ๋•Œ๋กœ ๊ทธ๋Š” ์‚ฌ์šฉ์ž ์š”์ฒญ์„ ์šฐ๋ฆฌ์—๊ฒŒ ์ „๋‹ฌํ•˜๊ณ  ๊ณ ๊ฐ ์†ก์žฅ์„ ๋ฐœํ–‰ํ•˜๊ณ  ์„œ๋น„์Šค๋ฅผ ๊ด€๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ด์‹ฌํžˆ ์ผํ•˜๋Š” ํ‰๋ฒ”ํ•œ ๋‚จ์ž. ์‚ฌ์‹ค, ์–ด๋ ค์›€๋„ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ์กฐ์šฉํ•˜๊ณ , ๋•Œ๋กœ๋Š” ์‚ฌ๋ ค ๊นŠ๊ณ , ์ข…์ข… ์ž๊ธฐ ์ƒ๊ฐ์— ๋น ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์ด๋ฒ„ํŽ‘ํฌ๋ฅผ ๊ณ๋“ค์ธ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ํƒ„์ƒ์˜ ์—ญ์‚ฌ

๋นŒ๋ง์€ ์šฐ๋ฆฌ๊ฐ€ ์นœ๊ตฌ๋ฅผ ์‚ฌ๊ท€๋ ค๊ณ  ์‹œ๋„ํ•œ ์ฒซ ๋ฒˆ์งธ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๊ฐ€ ์ง๋ฉดํ•œ ์ฒซ ๋ฒˆ์งธ ์–ด๋ ค์›€์€ ์„œ๋น„์Šค๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ์˜€์Šต๋‹ˆ๋‹ค.

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

์‚ฌ์ด๋ฒ„ํŽ‘ํฌ๋ฅผ ๊ณ๋“ค์ธ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ํƒ„์ƒ์˜ ์—ญ์‚ฌ

์†Œํ”„ํŠธ์›จ์–ด API์˜ ์„ค๋ช…์œผ๋กœ ํŒ๋‹จํ•˜๋ฉด ์—ฌ์ „ํžˆ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋ง์„ ์ˆ˜ํ–‰ํ•  ์‹œ๊ฐ„์ด ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋กœ์ง์„ ์™ธ๋ถ€๋กœ ๊ฐ€์ ธ์™€ RabbitMQ ์œ„์— ์ž‘์—… ๋Œ€๊ธฐ์—ด์„ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์„œ๋น„์Šค ์ž‘์—…์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ฐœ์ธ ๊ณ„์ •์—์„œ ์‹œ์ž‘ํ•˜๊ณ  ๋ฐฑ์—”๋“œ์—์„œ Celery "์ž‘์—…"์œผ๋กœ ์ „ํ™˜๋˜๋ฉฐ ์ฒญ๊ตฌ ๋ฐ OpenStack ์ธก์—์„œ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. Celery๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž‘์—… ๊ด€๋ฆฌ, ๋ฐ˜๋ณต ๊ตฌ์„ฑ ๋ฐ ์ƒํƒœ ๋ชจ๋‹ˆํ„ฐ๋ง์ด ๋งค์šฐ ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "์…€๋Ÿฌ๋ฆฌ"์— ๋Œ€ํ•ด ๋” ์ž์„ธํžˆ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—.

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

์œ„์˜ ๋‘ ๊ฐ€์ง€ ๋ฌธ์ œ๋กœ ์ธํ•ด ์ฝ”๋“œ๊ฐ€ ์•ฝ๊ฐ„ ๋น„๋Œ€ํ•ด์กŒ๊ณ  ์•ž์œผ๋กœ๋Š” ์ž‘์—… ์ž‘์—… ๋กœ์ง์„ ๋ณ„๋„์˜ ์„œ๋น„์Šค๋กœ ์˜ฎ๊ธฐ๊ธฐ ์œ„ํ•ด ๋ฆฌํŒฉํ† ๋งํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ๋…ผ๋ฆฌ๋ฅผ ์ง€์›ํ•˜๋ ค๋ฉด ์‚ฌ์šฉ์ž ๋ฐ ํ•ด๋‹น ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์ผ๋ถ€ ์ •๋ณด๋ฅผ ํ…Œ์ด๋ธ”์— ์ €์žฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๋Š” ์นจ๋ฌต์ด๋‹ค.

Billy๋Š” ์ผ๋ถ€ API ์š”์ฒญ์— ์ž๋™์œผ๋กœ "Ok"๋ผ๊ณ  ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ…Œ์ŠคํŠธ ์ค‘์— ์•ฝ์†๋œ ์ง€๋ถˆ๊ธˆ์„ ์ง€๋ถˆํ•œ ๊ฒฝ์šฐ๊ฐ€ ์—ฌ๊ธฐ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค(์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‚˜์ค‘์— ์„ค๋ช…). ์š”์ฒญ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‹คํ–‰๋˜์—ˆ์œผ๋ฉฐ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์‚ฌ์ด๋ฒ„ํŽ‘ํฌ๋ฅผ ๊ณ๋“ค์ธ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ํƒ„์ƒ์˜ ์—ญ์‚ฌ

UI๋ฅผ ํ†ตํ•ด ์‹œ์Šคํ…œ์„ ์ž‘์—…ํ•˜๋ฉด์„œ ๋กœ๊ทธ๋ฅผ ๊ณต๋ถ€ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฒญ๊ตฌ ์ž์ฒด๋„ ์œ ์‚ฌํ•œ ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ํŠน์ • ์‚ฌ์šฉ์ž(์˜ˆ: admin)๋กœ ๋ฒ”์œ„๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ์ด๋ฅผ su ๋งค๊ฐœ๋ณ€์ˆ˜์— ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.

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

์š”์•ฝํ•˜๋ฉด ์ƒํ˜ธ ์ž‘์šฉ ๋‹จ๊ณ„์—์„œ ์ง๋ฉดํ•œ ์ฃผ์š” ๋ฌธ์ œ๋Š” ํŠน์ • ์‹œ์Šคํ…œ์˜ ๊ตฌํ˜„ ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์–ด๋–ค ์‹์œผ๋กœ๋“  ์šฐ๋ฆฌ์—๊ฒŒ ์˜ํ–ฅ์„ ๋ฏธ์นœ ๋ฌธ์„œํ™”๋˜์ง€ ์•Š์€ โ€œ๊ธฐ๋Šฅโ€;
  • ๋น„๊ณต๊ฐœ ์†Œ์Šค(์ฒญ๊ตฌ์„œ๋Š” C++๋กœ ์ž‘์„ฑ๋จ)๋กœ ์ธํ•ด "์‹œํ–‰์ฐฉ์˜ค" ์ด์™ธ์˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ๋ฌธ์ œ 1์„ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋‹คํ–‰์Šค๋Ÿฝ๊ฒŒ๋„ ์ด ์ œํ’ˆ์—๋Š” ์ƒ๋‹นํžˆ ๊ด‘๋ฒ”์œ„ํ•œ API๊ฐ€ ์žˆ์œผ๋ฉฐ ๋‹ค์Œ ํ•˜์œ„ ์‹œ์Šคํ…œ์„ ๊ฐœ์ธ ๊ณ„์ •์— ํ†ตํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๊ธฐ์ˆ  ์ง€์› ๋ชจ๋“ˆ - ๊ฐœ์ธ ๊ณ„์ •์˜ ์š”์ฒญ์€ ์„œ๋น„์Šค ํด๋ผ์ด์–ธํŠธ์— ๋Œ€ํ•ด ํˆฌ๋ช…ํ•˜๊ฒŒ ์ฒญ๊ตฌ๋˜๋„๋ก "๋Œ€๋ฆฌ"๋ฉ๋‹ˆ๋‹ค.
  • ๊ธˆ์œต ๋ชจ๋“ˆ - ํ˜„์žฌ ๊ณ ๊ฐ์—๊ฒŒ ์†ก์žฅ์„ ๋ฐœํ–‰ํ•˜๊ณ  ์ƒ๊ฐํ•˜๊ณ  ์ง€๋ถˆ ๋ฌธ์„œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์„œ๋น„์Šค ์ œ์–ด ๋ชจ๋“ˆ - ์ด๋ฅผ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ์ž์ฒด ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์˜ ํ™•์žฅ์„ฑ์€ ์šฐ๋ฆฌ ์†์— ๋‹ฌ๋ ค ์žˆ์—ˆ๊ณ  ์šฐ๋ฆฌ๋Š” Billy์—๊ฒŒ ์ƒˆ๋กœ์šด ์œ ํ˜•์˜ ์„œ๋น„์Šค๋ฅผ "๊ฐ€๋ฅด์ณค์Šต๋‹ˆ๋‹ค".
    ์กฐ๊ธˆ ๋ฒˆ๊ฑฐ๋กญ๊ธด ํ–ˆ์ง€๋งŒ ์–ด์จŒ๋“  ๋นŒ๋ฆฌ์™€ ๋‚˜๋Š” ์‚ฌ์ด์ข‹๊ฒŒ ์ง€๋‚ผ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์•„์š”.

ํ……์Šคํ… ์ง€๋Œ€๋ฅผ ๊ฑท๋‹ค โ€“ Tungsten Fabric

์ˆ˜๋ฐฑ ๊ฐœ์˜ ์ „์„ ์ด ํฉ์–ด์ ธ ์žˆ๋Š” ํ……์Šคํ… ํ•„๋“œ๋Š” ์ด๋ฅผ ํ†ตํ•ด ์ˆ˜์ฒœ ๋น„ํŠธ์˜ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์ •๋ณด๋Š” ๋งˆ์น˜ ๋งˆ์ˆ ์ฒ˜๋Ÿผ "ํŒจํ‚ท"์œผ๋กœ ์ˆ˜์ง‘๋˜๊ณ  ๊ตฌ๋ฌธ ๋ถ„์„๋˜์–ด ๋ณต์žกํ•œ ๊ฒฝ๋กœ๋ฅผ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์ด๋ฒ„ํŽ‘ํฌ๋ฅผ ๊ณ๋“ค์ธ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ํƒ„์ƒ์˜ ์—ญ์‚ฌ

์ด๋Š” ์šฐ๋ฆฌ๊ฐ€ ์นœ๊ตฌ๋ฅผ ์‚ฌ๊ท€์–ด์•ผ ํ–ˆ๋˜ ๋‘ ๋ฒˆ์งธ ์‹œ์Šคํ…œ์ธ Tungsten Fabric(TF), ์ด์ „ OpenContrail์˜ ๋„๋ฉ”์ธ์ž…๋‹ˆ๋‹ค. ๊ทธ ์ž„๋ฌด๋Š” ๋„คํŠธ์›Œํฌ ์žฅ๋น„๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์‚ฌ์šฉ์ž์ธ ์šฐ๋ฆฌ์—๊ฒŒ ์†Œํ”„ํŠธ์›จ์–ด ์ถ”์ƒํ™”๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. TF - SDN์€ ๋„คํŠธ์›Œํฌ ์žฅ๋น„ ์ž‘์—…์˜ ๋ณต์žกํ•œ ๋…ผ๋ฆฌ๋ฅผ ์บก์Šํ™”ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์ˆ  ์ž์ฒด์— ๋Œ€ํ•œ ์ข‹์€ ๊ธฐ์‚ฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์—ฌ๊ธฐ์—.

์‹œ์Šคํ…œ์€ Neutron ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•ด OpenStack(์•„๋ž˜ ์„ค๋ช…)๊ณผ ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์ด๋ฒ„ํŽ‘ํฌ๋ฅผ ๊ณ๋“ค์ธ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ํƒ„์ƒ์˜ ์—ญ์‚ฌ
OpenStack ์„œ๋น„์Šค์˜ ์ƒํ˜ธ ์ž‘์šฉ.

์šด์˜ ๋ถ€์„œ ์ง์›๋“ค์ด ์šฐ๋ฆฌ์—๊ฒŒ ์ด ์‹œ์Šคํ…œ์„ ์†Œ๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์‹œ์Šคํ…œ์˜ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค์˜ ๋„คํŠธ์›Œํฌ ์Šคํƒ์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์•„์ง ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ๋‚˜ ๋ถˆํŽธ์„ ์ดˆ๋ž˜ํ•˜์ง€๋Š” ์•Š์•˜์ง€๋งŒ(OE ์ง์›์˜ ์ž…์žฅ์—์„œ๋Š” ๋งํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค) ์ƒํ˜ธ ์ž‘์šฉ์— ๋ช‡ ๊ฐ€์ง€ ์ด์ƒํ•œ ์ ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. SSH๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐํ•  ๋•Œ ์ธ์Šคํ„ด์Šค ์ฝ˜์†”์— ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•ด์•ผ ํ•˜๋Š” ๋ช…๋ น์€ ๋‹จ์ˆœํžˆ ์—ฐ๊ฒฐ์„ "์ค‘์ง€"ํ–ˆ์ง€๋งŒ VNC๋ฅผ ํ†ตํ•ด์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์ด๋ฒ„ํŽ‘ํฌ๋ฅผ ๊ณ๋“ค์ธ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ํƒ„์ƒ์˜ ์—ญ์‚ฌ

์ด ๋ฌธ์ œ์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” ๊ฝค ์žฌ๋ฏธ์žˆ์–ด ๋ณด์ž…๋‹ˆ๋‹ค. ls /root๋Š” ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜์ง€๋งŒ ์˜ˆ๋ฅผ ๋“ค์–ด top์€ ์™„์ „ํžˆ "์ •์ง€"๋ฉ๋‹ˆ๋‹ค. ๋‹คํ–‰ํžˆ๋„ ์ด์ „์—๋„ ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ปดํ“จํŒ… ๋…ธ๋“œ์—์„œ ๋ผ์šฐํ„ฐ๋กœ์˜ ๊ฒฝ๋กœ์—์„œ MTU๋ฅผ ์กฐ์ •ํ•˜์—ฌ ๊ฒฐ์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , ์ด๊ฒƒ์€ TF ๋ฌธ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

๋‹ค์Œ ๋ฌธ์ œ๋Š” ๋ฐ”๋กœ ์ฝ”์•ž์— ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋Š โ€œ์•„๋ฆ„๋‹ค์šดโ€ ์ˆœ๊ฐ„์— ๋ผ์šฐํŒ…์˜ ๋งˆ๋ฒ•์ด ๊ทธ๋ ‡๊ฒŒ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค. TF๋Š” ์žฅ๋น„์˜ ๋ผ์šฐํŒ… ๊ด€๋ฆฌ๋ฅผ ์ค‘๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์ด๋ฒ„ํŽ‘ํฌ๋ฅผ ๊ณ๋“ค์ธ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ํƒ„์ƒ์˜ ์—ญ์‚ฌ

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

์‹ค๋ฆฌ์ฝ˜ ์ƒ๋ช…์ฒด - OpenStack

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

์‚ฌ์ด๋ฒ„ํŽ‘ํฌ๋ฅผ ๊ณ๋“ค์ธ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ํƒ„์ƒ์˜ ์—ญ์‚ฌ

OpenStack์€ ์šฐ๋ฆฌ ํ”Œ๋žซํผ์˜ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค.

OpenStack์—๋Š” ์—ฌ๋Ÿฌ ํ•˜์œ„ ์‹œ์Šคํ…œ์ด ์žˆ์œผ๋ฉฐ ํ˜„์žฌ Nova, Glance ๋ฐ Cinder๋ฅผ ๊ฐ€์žฅ ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ๊ฐ์—๋Š” ์ž์ฒด API๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Nova๋Š” ์ปดํ“จํŒ… ๋ฆฌ์†Œ์Šค์™€ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ์„ ๋‹ด๋‹นํ•˜๊ณ , Cinder๋Š” ๋ณผ๋ฅจ๊ณผ ์Šค๋ƒ…์ƒท ๊ด€๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•˜๋ฉฐ, Glance๋Š” OS ํ…œํ”Œ๋ฆฟ๊ณผ ๊ทธ์— ๋Œ€ํ•œ ๋ฉ”ํƒ€์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ด๋ฏธ์ง€ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

๊ฐ ์„œ๋น„์Šค๋Š” ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰๋˜๋ฉฐ ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค๋Š” "ํฐ ํ† ๋ผ"์ธ RabbitMQ์ž…๋‹ˆ๋‹ค.

์ด ์‹œ์Šคํ…œ์€ ์šฐ๋ฆฌ์—๊ฒŒ ๊ฐ€์žฅ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ฌธ์ œ๋ฅผ ์•ˆ๊ฒจ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ œ๋Š” ์„œ๋ฒ„์— ์ถ”๊ฐ€ ๋ณผ๋ฅจ์„ ์—ฐ๊ฒฐํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์˜ค๋ž˜์ง€ ์•Š์•„ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. Cinder API๋Š” ์ด ์ž‘์—… ์ˆ˜ํ–‰์„ ๋‹จํ˜ธํ•˜๊ฒŒ ๊ฑฐ๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ข€ ๋” ์ •ํ™•ํžˆ ๋งํ•˜๋ฉด OpenStack ์ž์ฒด๋ฅผ ๋ฏฟ์œผ๋ฉด ์—ฐ๊ฒฐ์€ ๋˜์ง€๋งŒ ๊ฐ€์ƒ ์„œ๋ฒ„ ๋‚ด๋ถ€์—๋Š” ๋””์Šคํฌ ์žฅ์น˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์‚ฌ์ด๋ฒ„ํŽ‘ํฌ๋ฅผ ๊ณ๋“ค์ธ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ํƒ„์ƒ์˜ ์—ญ์‚ฌ

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

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

๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, OpenStack ์ž์ฒด๋Š” ์—ฐ๊ฒฐ์ด ๋Š์–ด์กŒ์Œ์„ "๋งน์„ธ"ํ•˜๋ฏ€๋กœ ์ด์ œ ๋ณผ๋ฅจ์„ ๋ณ„๋„๋กœ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ API๋Š” ๋””์Šคํฌ์—์„œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ์ ˆ๋Œ€์ ์œผ๋กœ ์›ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์‚ฌ์ด๋ฒ„ํŽ‘ํฌ๋ฅผ ๊ณ๋“ค์ธ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ํƒ„์ƒ์˜ ์—ญ์‚ฌ

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

OpenStack์€ ์ž์ฒด ์ƒํ˜ธ ์ž‘์šฉ ๋…ผ๋ฆฌ์™€ ํ™”๋ คํ•œ API๋ฅผ ๊ฐ–์ถ˜ ๋‹ค์†Œ ๋ณต์žกํ•œ ์‹œ์Šคํ…œ ์„ธํŠธ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ƒ๋‹นํžˆ ์ƒ์„ธํ•œ ๋ฌธ์„œ์™€ ๋ฌผ๋ก  ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ํ†ตํ•ด ๋„์›€์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค(๊ทธ๊ฒƒ์ด ์—†์—ˆ๋‹ค๋ฉด ์šฐ๋ฆฌ๋Š” ์–ด๋””์— ์žˆ์—ˆ๊ฒ ์Šต๋‹ˆ๊นŒ).

ํ…Œ์ŠคํŠธ ์‹คํ–‰

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

๋ฌผ๋ก  ํ…Œ์ŠคํŠธ ์ž์ฒด์—๋Š” ์žฌ๋ฏธ์žˆ๋Š” ์ˆœ๊ฐ„์ด ์—†์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ด๊ฒƒ์ด ์šฐ๋ฆฌ์˜ ๋ชจํ—˜์ด ์ด์ œ ๋ง‰ ์‹œ์ž‘๋˜๋Š” ๊ณณ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ฒซ์งธ, ์šฐ๋ฆฌ๋Š” ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๊ด€์‹ฌ์„ ๋‹ค์†Œ ์ž˜๋ชป ํ‰๊ฐ€ํ•˜์—ฌ ํ…Œ์ŠคํŠธ ์ค‘์— ์ปดํ“จํŒ… ๋…ธ๋“œ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ถ”๊ฐ€ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ์ด์ง€๋งŒ ์—ฌ๊ธฐ์—๋„ ์•ฝ๊ฐ„์˜ ๋‰˜์•™์Šค๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํŠน์ • TF ๋ฒ„์ „์— ๋Œ€ํ•œ ๋ฌธ์„œ๋Š” vRouter ์ž‘์—…์ด ํ…Œ์ŠคํŠธ๋œ ํŠน์ • ์ปค๋„ ๋ฒ„์ „์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ตœ์‹  ์ปค๋„๋กœ ๋…ธ๋“œ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ TF๋Š” ๋…ธ๋“œ๋กœ๋ถ€ํ„ฐ ๊ฒฝ๋กœ๋ฅผ ์ˆ˜์‹ ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ธ‰ํžˆ ์ปค๋„์„ ๋กค๋ฐฑํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์ด๋ฒ„ํŽ‘ํฌ๋ฅผ ๊ณ๋“ค์ธ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ํƒ„์ƒ์˜ ์—ญ์‚ฌ

๋˜ ๋‹ค๋ฅธ ํ˜ธ๊ธฐ์‹ฌ์€ ๊ฐœ์ธ ๊ณ„์ •์˜ "๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ" ๋ฒ„ํŠผ ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์„ธ์…˜ ์ž‘์—…์„ ํ•˜์ง€ ์•Š๋„๋ก JWT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ์ธ ๊ณ„์ •์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์ด ๋‹ค์–‘ํ•˜๊ณ  ๋„๋ฆฌ ๋ถ„์‚ฐ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๋Š” ์ฒญ๊ตฌ ์„ธ์…˜๊ณผ OpenStack ํ† ํฐ์„ "๋ž˜ํ•‘"ํ•˜๋Š” ์ž์ฒด ํ† ํฐ์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๊ฐ€ ๋” ์ด์ƒ ์œ ํšจํ•˜์ง€ ์•Š์•„ ์žฌ๋ฐœ๊ธ‰์ด ํ•„์š”ํ•˜๋ฏ€๋กœ ํ† ํฐ์€ "์ž˜๋ชป๋ฉ๋‹ˆ๋‹ค".

์‚ฌ์ด๋ฒ„ํŽ‘ํฌ๋ฅผ ๊ณ๋“ค์ธ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ํƒ„์ƒ์˜ ์—ญ์‚ฌ

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

์ด๋Ÿฌํ•œ ๋ฏธ๋ฌ˜ํ•œ ์ฐจ์ด์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ํ…Œ์ŠคํŠธ๋Š” ์ž˜ ์ง„ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ช‡ ์ฃผ ๋งŒ์— ์•ฝ 300๋ช…์ด ๋“ค๋ €์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์‚ฌ์šฉ์ž์˜ ๋ˆˆ์œผ๋กœ ์ œํ’ˆ์„ ๋ณด๊ณ , ์‹ค์ œ๋กœ ํ…Œ์ŠคํŠธํ•˜๊ณ , ๋†’์€ ํ’ˆ์งˆ์˜ ํ”ผ๋“œ๋ฐฑ์„ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ณ„์†ํ•˜๊ธฐ

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

๋ฌผ๋ก  ์ฝ”๋“œ ์ธก๋ฉด๊ณผ ์‹œ์Šคํ…œ ํ†ตํ•ฉ ์ธํ„ฐํŽ˜์ด์Šค ์ธก๋ฉด์—์„œ ์ž‘์—…ํ•ด์•ผ ํ•  ๋ถ€๋ถ„์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” ์•„์ง ์ดˆ๊ธฐ ๋‹จ๊ณ„์ด์ง€๋งŒ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๊ณ  ํŽธ๋ฆฌํ•œ ์„œ๋น„์Šค๋กœ ์„ฑ์žฅ์‹œํ‚ค๋ ค๋Š” ์•ผ๋ง์œผ๋กœ ๊ฐ€๋“ ์ฐจ ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ์‹œ์Šคํ…œ์„ ์„ค๋“ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. Bill์€ ์ž์‹ ์˜ ์˜ท์žฅ์—์„œ ๊ณ„์‚ฐ, ์ฒญ๊ตฌ ๋ฐ ์‚ฌ์šฉ์ž ์š”์ฒญ์„ ์„ฑ์‹คํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํ……์Šคํ…์žฅ์˜ '๋งˆ๋ฒ•'์€ ์šฐ๋ฆฌ์—๊ฒŒ ์•ˆ์ •์ ์ธ ํ†ต์‹ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  OpenStack๋งŒ์ด "WSREP์ด ์•„์ง ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‚ฌ์šฉ์„ ์œ„ํ•œ ๋…ธ๋“œ๋ฅผ ์ค€๋น„ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค."์™€ ๊ฐ™์€ ๋ง์„ ์™ธ์น˜๋ฉฐ ๋ณ€๋•์Šค๋Ÿฌ์›Œ์ง€๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๊ฑด ์ „ํ˜€ ๋‹ค๋ฅธ ์ด์•ผ๊ธฐ์ธ๋ฐ...

์ตœ๊ทผ ์„œ๋น„์Šค๋ฅผ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.
์šฐ๋ฆฌ์˜ ๋ชจ๋“  ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ์˜จ๋ผ์ธ์œผ๋กœ.

์‚ฌ์ด๋ฒ„ํŽ‘ํฌ๋ฅผ ๊ณ๋“ค์ธ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ํƒ„์ƒ์˜ ์—ญ์‚ฌ
CLO๊ฐœ๋ฐœํŒ€

์œ ์šฉํ•œ ๋งํฌ

OpenStack

ํ……์Šคํ… ์ง๋ฌผ

์ถœ์ฒ˜ : habr.com

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