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
https://docs.openstack.org/nova/latest/ https://docs.openstack.org/keystone/latest/ https://docs.openstack.org/cinder/latest/ https://docs.openstack.org/glance/latest/
ํ ์คํ ์ง๋ฌผ
http://docs.tungsten.io/en/latest/user/getting-started/index.html https://www.juniper.net/documentation/en_US/contrail-cloud10.0/topics/concept/contrail-cloud-openstack-integration-overview.html
์ถ์ฒ : habr.com