ํค์ด ํ๋ธ๋ฅด! ๋๋ ๊ธฐ์ฌ์ ๋ฒ์ญ์ ๋น์ ์ ๊ด์ฌ์ ์ ์ํฉ๋๋ค
์ด๋ฒ์๋ ์๋น์ค ๋ฉ์ ๊ตฌ์ฑ ์์, ๋ฐ์ดํฐ ํ๋ ์ธ ๋ฐ ์ ์ด ํ๋ ์ธ์ ๋ํ ์ค๋ช
์ "์ํ๊ณ ๋ฒ์ญ"ํ์ต๋๋ค. ์ด ์ค๋ช
์ ๋์๊ฒ ๊ฐ์ฅ ์ดํดํ๊ธฐ ์ฝ๊ณ ํฅ๋ฏธ๋ก์ ์ผ๋ฉฐ ๊ฐ์ฅ ์ค์ํ๊ฒ๋ "์ ํ ํ์ํ๊ฐ?"๋ผ๋ ์ดํด๋ก ์ด์ด์ก์ต๋๋ค.
์ง๋ 10๋
๋์ "์๋น์ค ๋ฉ์"์ ๋ํ ์์ด๋์ด๊ฐ ์ ์ ๋ ๋์คํ๋๊ณ (2017๋
XNUMX์ XNUMX์ผ ์๋ฌธ) ๊ณต๊ฐ์ ์ฐธ์ฌํ๋ ์ฌ๋์ด ๋์ด๋๋ฉด์ ์ ์ฒด ์ ์ฒด์ ํผ๋๋ ๊ทธ์ ๋น๋กํ์ฌ ์ฆ๊ฐํ๋ ๊ฒ์ ๋ณด์์ต๋๋ค. ๋ค์ํ ์๋ฃจ์
์ ๋น๊ตํ๊ณ ๋์กฐํ๋ ๋ฐฉ๋ฒ์ ๊ดํ ๊ธฐ์ ์ปค๋ฎค๋ํฐ์
๋๋ค.
์ํฉ์ ๋ด๊ฐ XNUMX์์ ์ด ๋ค์ ์ผ๋ จ์ ํธ์์ ๊ฐ์ฅ ์ ์์ฝ๋์ด ์์ต๋๋ค.
์๋น์ค ๋ฉ์ ํผ๋ #1: Linkerd ~ = Nginx ~ = Haproxy ~ = Envoy. ๊ทธ ์ค ์ด๋ ๊ฒ๋ Istio์ ๋์ผํ์ง ์์ต๋๋ค. Istio๋ ์์ ํ ๋ค๋ฅธ ๊ฒ์ ๋๋ค. 1 /
์ฒซ ๋ฒ์งธ๋ ๋จ์ํ ๋ฐ์ดํฐ ํ๋ฉด์ ๋๋ค. ๊ทธ ์์ฒด๋ก๋ ์๋ฌด๊ฒ๋ ํ์ง ์์ต๋๋ค. ๊ทธ๋ค์ ๋ญ๊ฐ ๋ ํ๊ณ ์ถ์ ๋ง์์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. 2/
Istio๋ ์ฌ๋ฌ ๋ถ๋ถ์ ํ๋๋ก ๋ฌถ๋ ์ ์ด ํ๋ฉด์ ํ ์์ ๋๋ค. ์ด๊ฒ์ ๋ ๋ค๋ฅธ ๋ ์ด์ด์ ๋๋ค. /๋
์ด์ ํธ์์์๋ ์ฌ๋ฌ ๊ฐ์ง ํ๋ก์ ํธ(Linkerd, NGINX, HAProxy, Envoy ๋ฐ Istio)๋ฅผ ์ธ๊ธํ์ง๋ง ๋ ์ค์ํ ๊ฒ์ ๋ฐ์ดํฐ ํ๋ ์ธ, ์๋น์ค ๋ฉ์ ๋ฐ ์ ์ด ํ๋ ์ธ์ ์ผ๋ฐ์ ์ธ ๊ฐ๋ ์ ์๊ฐํ๋ ๊ฒ์ ๋๋ค. ์ด ๊ฒ์๋ฌผ์์๋ ํ ๊ฑธ์ ๋ฌผ๋ฌ์์ "๋ฐ์ดํฐ ํ๋ ์ธ"๊ณผ "์ ์ด ํ๋ ์ธ"์ด๋ผ๋ ์ฉ์ด๊ฐ ์๋ฏธํ๋ ๋ฐ๋ฅผ ๋งค์ฐ ๋์ ์์ค์์ ์ค๋ช ํ ๋ค์ ํด๋น ์ฉ์ด๊ฐ ํธ์์์ ์ธ๊ธ๋ ํ๋ก์ ํธ์ ์ด๋ป๊ฒ ์ ์ฉ๋๋์ง์ ๋ํด ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค.
์๋น์ค ๋ฉ์๋ ์ค์ ๋ก ๋ฌด์์ ๋๊น?
๊ทธ๋ฆผ 1: ์๋น์ค ๋ฉ์ ๊ฐ์
๊ทธ๋ฆผ 1 ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์์ค์์ ์๋น์ค ๋ฉ์์ ๊ฐ๋ ์ ๋ณด์ฌ์ค๋๋ค. XNUMX๊ฐ์ ์๋น์ค ํด๋ฌ์คํฐ(AD)๊ฐ ์์ต๋๋ค. ๊ฐ ์๋น์ค ์ธ์คํด์ค๋ ๋ก์ปฌ ํ๋ก์ ์๋ฒ์ ์ฐ๊ฒฐ๋ฉ๋๋ค. ๋จ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ธ์คํด์ค์ ๋ชจ๋ ๋คํธ์ํฌ ํธ๋ํฝ(HTTP, REST, gRPC, Redis ๋ฑ)์ ๋ก์ปฌ ํ๋ก์๋ฅผ ํตํด ์ ์ ํ ์ธ๋ถ ์๋น์ค ํด๋ฌ์คํฐ๋ก ์ ๋ฌ๋ฉ๋๋ค. ์ด๋ฐ ๋ฐฉ์์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ธ์คํด์ค๋ ๋คํธ์ํฌ ์ ์ฒด๋ฅผ ์ธ์ํ์ง ๋ชปํ๊ณ ๋ก์ปฌ ํ๋ก์๋ง ์ธ์ํฉ๋๋ค. ์ค์ ๋ก ๋ถ์ฐ ์์คํ ๋คํธ์ํฌ๊ฐ ์๋น์ค์์ ์ ๊ฑฐ๋์์ต๋๋ค.
๋ฐ์ดํฐ ํ๋ ์ธ
์๋น์ค ๋ฉ์์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํด ๋ก์ปฌ์ ์์นํ ํ๋ก์ ์๋ฒ๋ ๋ค์ ์์ ์ ์ํํฉ๋๋ค.
- ์๋น์ค ๋ฐ๊ฒฌ. ๊ทํ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋ค ์๋น์ค/์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ ์ ์๋์?
- ๊ฑด๊ฐ๊ฒ์ง. ์๋น์ค ๊ฒ์์์ ๋ฐํ๋ ์๋น์ค ์ธ์คํด์ค๊ฐ ์ ์์ด๊ณ ๋คํธ์ํฌ ํธ๋ํฝ์ ๋ฐ์๋ค์ผ ์ค๋น๊ฐ ๋์ด ์์ต๋๊น? ์ฌ๊ธฐ์๋ ํ์ฑ(์: ์๋ต/์ํ ํ์ธ) ๋ฐ ์๋(์: ๋น์ ์ ์๋น์ค ์ํ๋ฅผ ํ์ํ๋ 3๊ฐ์ ์ฐ์ 5xx ์ค๋ฅ ์ฌ์ฉ) ์ํ ํ์ธ์ด ๋ชจ๋ ํฌํจ๋ ์ ์์ต๋๋ค.
- ๋ผ์ฐํ . REST ์๋น์ค์์ "/foo"์ ๋ํ ์์ฒญ์ ๋ฐ์ ๋ ์์ฒญ์ ์ด๋ ์๋น์ค ํด๋ฌ์คํฐ๋ก ๋ณด๋ด์ผ ํฉ๋๊น?
- ๋ก๋ ๋ฐธ๋ฐ์ฑ. ๋ผ์ฐํ ์ค์ ์๋น์ค ํด๋ฌ์คํฐ๊ฐ ์ ํ๋๋ฉด ์์ฒญ์ ์ด๋ค ์๋น์ค ์ธ์คํด์ค๋ก ๋ณด๋ด์ผ ํฉ๋๊น? ์๊ฐ ์ด๊ณผ๋ ์ด๋ป๊ฒ ๋๋์? ์ด๋ค ํ๋ก ์ฐจ๋จ ์ค์ ์ ์ฌ์ฉํฉ๋๊น? ์์ฒญ์ด ์คํจํ๋ฉด ๋ค์ ์๋ํด์ผ ํฉ๋๊น?
- ์ธ์ฆ ๋ฐ ์น์ธ. ์์ ์์ฒญ์ ๊ฒฝ์ฐ mTLS ๋๋ ๊ธฐํ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ ํธ์ถ ์๋น์ค๋ฅผ ์ํธํ ๋ฐฉ์์ผ๋ก ์๋ณ/์ธ์ฆํ ์ ์์ต๋๊น? ์ธ์/์น์ธ๋ ๊ฒฝ์ฐ ์๋น์ค์์ ์์ฒญ๋ ์์ (์๋ํฌ์ธํธ)์ ํธ์ถํ ์ ์์ต๋๊น? ์๋๋ฉด ์ธ์ฆ๋์ง ์์ ์๋ต์ ๋ฐํํด์ผ ํฉ๋๊น?
- ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ. ์ด์์๊ฐ ๋ถ์ฐ ํธ๋ํฝ ํ๋ฆ๊ณผ ๋๋ฒ๊น ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๋ ์ดํดํ ์ ์๋๋ก ๊ฐ ์์ฒญ์ ๋ํด ์์ธํ ํต๊ณ, ๋ก๊ทธ/๋ก๊ทธ ๋ฐ ๋ถ์ฐ ์ถ์ ๋ฐ์ดํฐ๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค.
๋ฐ์ดํฐ ํ๋ ์ธ์ ์๋น์ค ๋ฉ์์ ๋ชจ๋ ์ด์ ์ง์ ์ ๋ด๋นํฉ๋๋ค. ์ค์ ๋ก ์๋น์ค(์ฌ์ด๋์นด)์ ๋ก์ปฌ์ธ ํ๋ก์๋ ๋ฐ์ดํฐ ํ๋ ์ธ์ ๋๋ค. ์ฆ, ๋ฐ์ดํฐ ํ๋ฉด์ ์๋น์ค์ ์ฃผ๊ณ ๋ฐ๋ ๋ชจ๋ ๋คํธ์ํฌ ํจํท์ ์กฐ๊ฑด๋ถ๋ก ๋ธ๋ก๋์บ์คํ , ์ ๋ฌ ๋ฐ ๋ชจ๋ํฐ๋งํ๋ ์ญํ ์ ๋ด๋นํฉ๋๋ค.
์ ์ด ํ๋ฉด
๋ก์ปฌ ํ๋ก์๊ฐ ๋ฐ์ดํฐ ํ๋ ์ธ์์ ์ ๊ณตํ๋ ๋คํธ์ํฌ ์ถ์ํ๋ ๋ง์ ์ (?)์ ๋๋ค. ๊ทธ๋ฌ๋ ํ๋ก์๋ ์๋น์ค B์ ๋ํ "/foo" ๊ฒฝ๋ก๋ฅผ ์ค์ ๋ก ์ด๋ป๊ฒ ์ ์ ์์ต๋๊น? ํ๋ก์ ์์ฒญ์ผ๋ก ์ฑ์์ง ์๋น์ค ๊ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ ์ ์๋์? ๋ก๋ ๋ฐธ๋ฐ์ฑ, ํ์์์, ํ๋ก ์ฐจ๋จ ๋ฑ์ ๋ํ ๋งค๊ฐ๋ณ์๋ ์ด๋ป๊ฒ ๊ตฌ์ฑ๋ฉ๋๊น? ๋ธ๋ฃจ/๊ทธ๋ฆฐ ๋ฐฉ๋ฒ ๋๋ ์ ์์ ์ธ ํธ๋ํฝ ์ ํ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋ป๊ฒ ๋ฐฐํฌํฉ๋๊น? ์์คํ ์ ์ฒด ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ ์ค์ ์ ๋๊ฐ ๊ตฌ์ฑํฉ๋๊น?
์์ ๋ชจ๋ ํญ๋ชฉ์ ์๋น์ค ๋ฉ์์ ์ ์ด ํ๋ฉด์ ์ ์ด๋ฅผ ๋ฐ์ต๋๋ค. ์ ์ด ํ๋ฉด์ ๊ฒฉ๋ฆฌ๋ ์ํ ๋น์ ์ฅ ํ๋ก์ ์ธํธ๋ฅผ ๊ฐ์ ธ์ ์ด๋ฅผ ๋ถ์ฐ ์์คํ ์ผ๋ก ์ ํํฉ๋๋ค..
๋ง์ ๊ธฐ์ ์๋ค์ด ๋ฐ์ดํฐ ํ๋ ์ธ๊ณผ ์ ์ด ํ๋ ์ธ์ ๋ณ๋ ๊ฐ๋ ์ ํผ๋์ค๋ฝ๊ฒ ์๊ฐํ๋ ์ด์ ๋ ๋๋ถ๋ถ์ ์ฌ๋๋ค์๊ฒ ๋ฐ์ดํฐ ํ๋ ์ธ์ ์ต์ํ์ง๋ง ์ ์ด ํ๋ ์ธ์ ๋ฏ์ค๊ฑฐ๋ ์ดํดํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ค๋ซ๋์ ๋ฌผ๋ฆฌ์ ๋คํธ์ํฌ ๋ผ์ฐํฐ์ ์ค์์น๋ฅผ ์ฌ์ฉํด ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ํจํท/์์ฒญ์ด A ์ง์ ์์ B ์ง์ ์ผ๋ก ์ด๋ํด์ผ ํ๋ฉฐ ์ด๋ฅผ ์ํด ํ๋์จ์ด์ ์ํํธ์จ์ด๋ฅผ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ์ฐจ์ธ๋ ์ํํธ์จ์ด ํ๋ก์๋ ์ฐ๋ฆฌ๊ฐ ์ค๋ซ๋์ ์ฌ์ฉํด ์จ ๋๊ตฌ์ ๋จ์ํ ๋ฒ์ ์ ๋๋ค.
๊ทธ๋ฆผ 2: ์ธ๊ฐ ์ ์ด ์์ญ
๊ทธ๋ฌ๋ ๋๋ถ๋ถ์ ๋คํธ์ํฌ ์ด์์๊ฐ ์์คํ
์ ์ด ๋ถ๋ถ์ ๊ธฐ์ ๊ตฌ์ฑ ์์์ ์ฐ๊ฒฐํ์ง ์์ ์๋ ์์ง๋ง ์ฐ๋ฆฌ๋ ์ค๋ซ๋์ ์ ์ด ํ๋ฉด์ ์ฌ์ฉํด ์์ต๋๋ค. ์ด์ ๋ ๊ฐ๋จํฉ๋๋ค.
์ค๋๋ ์ฌ์ฉ๋๋ ๋๋ถ๋ถ์ ์ ์ด ํ๋ฉด์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค..
์ ๊ทธ๋ฆผ 2 ์ ๊ฐ "์ธ๊ฐ ์ ์ด ํ๋ฉด"์ด๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ์ ๋ณด์ฌ์ค๋๋ค. ์ฌ์ ํ ๋งค์ฐ ์ผ๋ฐ์ ์ธ ์ด๋ฌํ ์ ํ์ ๋ฐฐํฌ์์๋ ์๋ง๋ ์ฌ์ ๊ถ์ ์ธ๊ฐ ์ด์์๊ฐ ์ ์ฌ์ ์ผ๋ก ์คํฌ๋ฆฝํธ๋ฅผ ํตํด ์ ์ ๊ตฌ์ฑ์ ์์ฑํ๊ณ ์ผ๋ถ ํน์ ํ๋ก์ธ์ค๋ฅผ ํตํด ๋ชจ๋ ํ๋ก์์ ๋ฐฐํฌํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ํ๋ก์๋ ์ด ๊ตฌ์ฑ์ ์ฌ์ฉํ๊ธฐ ์์ํ๊ณ ์ ๋ฐ์ดํธ๋ ์ค์ ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ํ๋ฉด ์ฒ๋ฆฌ๋ฅผ ์์ํฉ๋๋ค.
๊ทธ๋ฆผ 3: ๊ณ ๊ธ ์๋น์ค ๋ฉ์ ์ ์ด ํ๋ฉด
์ ๊ทธ๋ฆผ 3 ์๋น์ค ๋ฉ์์ 'ํ์ฅ๋' ์ ์ด ํ๋ฉด์ ๋ณด์ฌ์ค๋๋ค. ์ด๋ ๋ค์๊ณผ ๊ฐ์ ๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- ์ธ๊ฐ: ์ ์ฒด ์์คํ ์ ๊ดํด ๋์ ์์ค์ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ์ฌ๋(ํ๊ฐ ๋ ๋ฌ์ผ๋ฉด ์ข๊ฒ ์)์ด ์ฌ์ ํ ์์ต๋๋ค.
- ์ ์ด ์์ญ UI: ์ฌ๋์ ์์คํ
์ ์ ์ดํ๊ธฐ ์ํด ์ผ์ข
์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ์ํธ ์์ฉํฉ๋๋ค. ์ด๋ ์น ํฌํธ, ๋ช
๋ น์ค ์ ํ๋ฆฌ์ผ์ด์
(CLI) ๋๋ ๊ธฐํ ์ธํฐํ์ด์ค์ผ ์ ์์ต๋๋ค. ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ด์์๋ ๋ค์๊ณผ ๊ฐ์ ์ ์ญ ์์คํ
๊ตฌ์ฑ ๋งค๊ฐ๋ณ์์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
- ๋ฐฐํฌ ์ ์ด, ๋ธ๋ฃจ/๊ทธ๋ฆฐ ๋ฐ/๋๋ ์ ์ง์ ์ธ ํธ๋ํฝ ์ ํ
- ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ ์ต์
- ๋ผ์ฐํ ํ ์ด๋ธ ์ฌ์(์: ์ ํ๋ฆฌ์ผ์ด์ A๊ฐ "/foo"์ ๋ํ ์ ๋ณด๋ฅผ ์์ฒญํ ๋ ๋ฐ์ํ๋ ์ผ)
- ์๊ฐ ์ด๊ณผ, ์ฌ์๋, ํ๋ก ์ฐจ๋จ ์ค์ ๋ฑ๊ณผ ๊ฐ์ ๋ก๋ ๋ฐธ๋ฐ์ ์ค์
- ์ํฌ๋ก๋ ์ค์ผ์ค๋ฌ: ์๋น์ค๋ Kubernetes ๋๋ Nomad์ ๊ฐ์ ์ผ์ ์ ํ์ ์์ฝ/์กฐ์ ์์คํ ์ ํตํด ์ธํ๋ผ์์ ์คํ๋ฉ๋๋ค. ์ค์ผ์ค๋ฌ๋ ๋ก์ปฌ ํ๋ก์์ ํจ๊ป ์๋น์ค๋ฅผ ๋ก๋ํ๋ ์ผ์ ๋ด๋นํฉ๋๋ค.
- ์๋น์ค ๋ฐ๊ฒฌ. ์ค์ผ์ค๋ฌ๋ ์๋น์ค ์ธ์คํด์ค๋ฅผ ์์ํ๊ณ ์ค์งํ ๋ ์ํ๋ฅผ ์๋น์ค ๊ฒ์ ์์คํ ์ ๋ณด๊ณ ํฉ๋๋ค.
- ์ฌ์ด๋์นด ํ๋ก์ ๊ตฌ์ฑ API : ๋ก์ปฌ ํ๋ก์๋ ์ด์์ ๊ฐ์ ์์ด ์ต์ข ์ ์ผ๋ก ์ผ๊ด๋ ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ๋ค์ํ ์์คํ ๊ตฌ์ฑ ์์์์ ์ํ๋ฅผ ๋์ ์ผ๋ก ์ถ์ถํฉ๋๋ค. ํ์ฌ ์คํ ์ค์ธ ๋ชจ๋ ์๋น์ค ์ธ์คํด์ค์ ๋ก์ปฌ ํ๋ก์ ์๋ฒ๋ก ๊ตฌ์ฑ๋ ์ ์ฒด ์์คํ ์ ๊ถ๊ทน์ ์ผ๋ก ํ๋์ ์ํ๊ณ๋ก ํตํฉ๋ฉ๋๋ค. Envoy์ ๋ฒ์ฉ ๋ฐ์ดํฐ ํ๋ ์ธ API๋ ์ด๊ฒ์ด ์ค์ ๋ก ์ด๋ป๊ฒ ์๋ํ๋์ง ๋ณด์ฌ์ฃผ๋ ํ ์์ ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ์ ์ด ํ๋ ์ธ์ ๋ชฉ์ ์ ๋ฐ์ดํฐ ํ๋ ์ธ์์ ๊ถ๊ทน์ ์ผ๋ก ํ์ฉ๋๋ ์ ์ฑ ์ ์ค์ ํ๋ ๊ฒ์ ๋๋ค. ๋ ๋ฐ์ ๋ ์ ์ด ํ๋ฉด์ ์ผ๋ถ ์์คํ ์ ๋ ๋ง์ ๋ถ๋ถ์ ์ด์์๋ก๋ถํฐ ์ ๊ฑฐํ๊ณ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋ค๋ฉด ์๋ ์กฐ์์ด ๋ ํ์ํฉ๋๋ค!...
๋ฐ์ดํฐ ํ๋ ์ธ๊ณผ ์ปจํธ๋กค ํ๋ ์ธ. ๋ฐ์ดํฐ ํ๋ ์ธ๊ณผ ์ ์ด ํ๋ ์ธ ์์ฝ
- ์๋น์ค ๋ฉ์ ๋ฐ์ดํฐ ์์ญ: ์์คํ ์ ๋ชจ๋ ํจํท/์์ฒญ์ ์ํฅ์ ์ค๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ /์๋น์ค ๊ฒ์, ์ํ ํ์ธ, ๋ผ์ฐํ , ๋ก๋ ๋ฐธ๋ฐ์ฑ, ์ธ์ฆ/๊ถํ ๋ถ์ฌ ๋ฐ ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ์ ๋ด๋นํฉ๋๋ค.
- ์๋น์ค ๋ฉ์ ์ ์ด ์์ญ: ์๋น์ค ๋คํธ์ํฌ ๋ด์์ ์คํ ์ค์ธ ๋ชจ๋ ๋ฐ์ดํฐ ํ๋ ์ธ์ ๋ํ ์ ์ฑ ๋ฐ ๊ตฌ์ฑ์ ์ ๊ณตํฉ๋๋ค. ์์คํ ์ ํจํค์ง/์์ฒญ์ ๊ฑด๋๋ฆฌ์ง ์์ต๋๋ค. ์ ์ด ํ๋ฉด์ ๋ชจ๋ ๋ฐ์ดํฐ ํ๋ฉด์ ๋ถ์ฐ ์์คํ ์ผ๋ก ์ ํํฉ๋๋ค.
ํ์ฌ ํ๋ก์ ํธ ํ๊ฒฝ
์์ ์ค๋ช ์ ์ดํดํ๋ค๋ฉด, ์๋น์ค ๋ฉ์ ํ๋ก์ ํธ์ ํ์ฌ ์ํ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
- ๋ฐ์ดํฐ ํ๋ ์ธ: ๋ง์ปค๋, NGINX, HAProxy, Envoy, Traefik
- ์ ์ด ํ๋ฉด: Istio, Nelson, ์ค๋งํธ์คํ
์์ ๊ฐ ์๋ฃจ์ ์ ๋ํ ์ฌ์ธต ๋ถ์๋ณด๋ค๋ ํ์ฌ ์ํ๊ณ์ ๋ง์ ํผ๋์ ์ผ๊ธฐํ๊ณ ์๋ค๊ณ ์๊ฐ๋๋ ๋ช ๊ฐ์ง ์ฌํญ์ ๋ํด ๊ฐ๋ตํ๊ฒ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
Linkerd๋ 2016๋ ์ด์ ์๋น์ค ๋ฉ์๋ฅผ ์ํ ์ต์ด์ ๋ฐ์ดํฐ ํ๋ ์ธ ํ๋ก์ ์๋ฒ ์ค ํ๋์์ผ๋ฉฐ ์๋น์ค ๋ฉ์ ๋์์ธ ๋ชจ๋ธ์ ๋ํ ์ธ์๊ณผ ๊ด์ฌ์ ๋์ด๋ ํ์์ ์ธ ์์ ์ ์ํํ์ต๋๋ค. ๊ทธ๋ก๋ถํฐ ์ฝ 6๊ฐ์ ํ Envoy๋ Linkerd์ ํฉ๋ฅํ์ต๋๋ค(๊ทธ๋ 2015๋ ๋ง๋ถํฐ Lyft์ ์์์ง๋ง). Linkerd์ Envoy๋ ์๋น์ค ๋ฉ์๋ฅผ ๋ ผ์ํ ๋ ๊ฐ์ฅ ์์ฃผ ์ธ๊ธ๋๋ ๋ ๊ฐ์ง ํ๋ก์ ํธ์ ๋๋ค.
Istio๋ 2017๋ XNUMX์์ ๋ฐํ๋์์ต๋๋ค. Istio ํ๋ก์ ํธ์ ๋ชฉํ๋ ๋ค์์ ํ์๋ ํ์ฅ๋ ์ ์ด ํ๋ฉด๊ณผ ๋งค์ฐ ์ ์ฌํฉ๋๋ค. ๊ทธ๋ฆผ 3. Istio์ฉ Envoy๊ฐ ๊ธฐ๋ณธ ํ๋ก์์ ๋๋ค. ๋ฐ๋ผ์ Istio๋ ์ ์ด ํ๋ฉด์ด๊ณ Envoy๋ ๋ฐ์ดํฐ ํ๋ฉด์ ๋๋ค. ์งง์ ์๊ฐ ์์ Istio๋ ๋ง์ ๊ด์ฌ์ ๋ถ๋ฌ์ผ์ผ์ผฐ๊ณ ๋ค๋ฅธ ๋ฐ์ดํฐ ํ๋ ์ธ์ Envoy๋ฅผ ๋์ฒดํ๊ธฐ ์ํด ํตํฉ๋๊ธฐ ์์ํ์ต๋๋ค(Linkerd์ NGINX ๋ชจ๋ Istio์์ ํตํฉ์ ์์ฐํ์ต๋๋ค). ๋์ผํ ์ ์ด ํ๋ฉด ๋ด์์ ์๋ก ๋ค๋ฅธ ๋ฐ์ดํฐ ํ๋ฉด์ ์ฌ์ฉํ ์ ์๋ค๋ ์ฌ์ค์ ์ ์ด ํ๋ฉด๊ณผ ๋ฐ์ดํฐ ํ๋ฉด์ด ๋ฐ๋์ ๊ธด๋ฐํ๊ฒ ๊ฒฐํฉ๋ ํ์๋ ์์์ ์๋ฏธํฉ๋๋ค. Envoy์ ์ผ๋ฐ ๋ฐ์ดํฐ ํ๋ ์ธ API์ ๊ฐ์ API๋ ์์คํ ์ ๋ ๋ถ๋ถ ์ฌ์ด์ ๋ธ๋ฆฌ์ง๋ฅผ ํ์ฑํ ์ ์์ต๋๋ค.
Nelson๊ณผ SmartStack์ ์ปจํธ๋กค ํ๋ ์ธ๊ณผ ๋ฐ์ดํฐ ํ๋ ์ธ์ ๋ถ๋ฆฌ๋ฅผ ๋์ฑ ์์ธํ ์ค๋ช ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. Nelson์ Envoy๋ฅผ ํ๋ก์๋ก ์ฌ์ฉํ๊ณ HashiCorp ์คํ์ ๊ธฐ๋ฐ์ผ๋ก ์๋น์ค ๋ฉ์๋ฅผ ์ํ ์์ ์ ์ธ ์ ์ด ํ๋ฉด์ ๊ตฌ์ถํฉ๋๋ค. ๋ ธ๋ง๋ ๋ฑ SmartStack์ ์๋ง๋ ์๋ก์ด ์๋น์ค ๋ฉ์์ ์ฒซ ๋ฒ์งธ ๋ฌผ๊ฒฐ์ด์์ ๊ฒ์ ๋๋ค. SmartStack์ HAProxy ๋๋ NGINX๋ฅผ ์ค์ฌ์ผ๋ก ์ ์ด ํ๋ฉด์ ๊ตฌ์ถํ์ฌ ๋ฐ์ดํฐ ํ๋ฉด์ ์๋น์ค ๋ฉ์์์ ์ ์ด ํ๋ฉด์ ๋ถ๋ฆฌํ๋ ๊ธฐ๋ฅ์ ๋ณด์ฌ์ค๋๋ค.
์๋น์ค ๋ฉ์๋ฅผ ๊ฐ์ถ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ
์ฒ๊ฐ ์ ์ ๋ ๋ง์ ์ฃผ๋ชฉ์ ๋ฐ๊ณ ์์ผ๋ฉฐ(๋ง์ต๋๋ค!) ์ ์ ๋ ๋ง์ ํ๋ก์ ํธ์ ๊ณต๊ธ์
์ฒด๊ฐ ์ด ๋ฐฉํฅ์ผ๋ก ์์
ํ๊ธฐ ์์ํ๊ณ ์์ต๋๋ค. ํฅํ ๋ช ๋
๋์ ๋ฐ์ดํฐ ํ๋ ์ธ๊ณผ ์ ์ด ํ๋ ์ธ ๋ชจ๋์์ ๋ง์ ํ์ ์ด ์ด๋ฃจ์ด์ง๊ณ ๋ค์ํ ๊ตฌ์ฑ ์์๊ฐ ์ถ๊ฐ๋ก ํผํฉ๋๋ ๊ฒ์ ๋ณด๊ฒ ๋ ๊ฒ์
๋๋ค. ๊ถ๊ทน์ ์ผ๋ก ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ
์ฒ๋ ์ด์์์๊ฒ ๋์ฑ ํฌ๋ช
ํ๊ณ ๋ง๋ฒ(?)์ด ๋์ด์ผ ํฉ๋๋ค.
์ง์ฆ์ด ์ ์ ์ค์ด๋ค๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ฃผ์ ์์ฌ์
- ์๋น์ค ๋ฉ์๋ ๋ฐ์ดํฐ ํ๋ ์ธ๊ณผ ์ ์ด ํ๋ ์ธ์ด๋ผ๋ ๋ ๊ฐ์ง ๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๋ ๊ตฌ์ฑ ์์๊ฐ ๋ชจ๋ ํ์ํ๋ฉฐ, ๊ตฌ์ฑ ์์๊ฐ ์์ผ๋ฉด ์์คํ ์ด ์๋ํ์ง ์์ต๋๋ค.
- ๋ชจ๋๊ฐ ์ ์ด ํ๋ฉด์ ๋ํด ์ ์๊ณ ์์ผ๋ฉฐ, ์ด ์์ ์์ ์ ์ด ํ๋ฉด์ ๋ฐ๋ก ์ฌ๋ฌ๋ถ์ด ๋ ์ ์์ต๋๋ค!
- ๋ชจ๋ ๋ฐ์ดํฐ ํ๋ ์ธ์ ๊ธฐ๋ฅ, ์ฑ๋ฅ, ๊ตฌ์ฑ ๊ฐ๋ฅ์ฑ ๋ฐ ํ์ฅ์ฑ ์ธก๋ฉด์์ ์๋ก ๊ฒฝ์ํฉ๋๋ค.
- ๋ชจ๋ ์ ์ด ํ๋ฉด์ ๊ธฐ๋ฅ, ๊ตฌ์ฑ ๊ฐ๋ฅ์ฑ, ํ์ฅ์ฑ ๋ฐ ์ฌ์ฉ ํธ์์ฑ ์ธก๋ฉด์์ ์๋ก ๊ฒฝ์ํฉ๋๋ค.
- ํ๋์ ์ ์ด ํ๋ฉด์๋ ์ฌ๋ฐ๋ฅธ ์ถ์ํ ๋ฐ API๊ฐ ํฌํจ๋ ์ ์์ผ๋ฏ๋ก ์ฌ๋ฌ ๋ฐ์ดํฐ ํ๋ฉด์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ถ์ฒ : habr.com