Netramesh - ๊ฒฝ๋Ÿ‰ ์„œ๋น„์Šค ๋ฉ”์‹œ ์†”๋ฃจ์…˜

๋ชจ๋†€๋ฆฌ์‹ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋กœ ์ „ํ™˜ํ•˜๋ฉด์„œ ์šฐ๋ฆฌ๋Š” ์ƒˆ๋กœ์šด ๊ณผ์ œ์— ์ง๋ฉดํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

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

Netramesh - ๊ฒฝ๋Ÿ‰ ์„œ๋น„์Šค ๋ฉ”์‹œ ์†”๋ฃจ์…˜

๋‚˜๋Š” ๊ทธ๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋„๊ตฌ๋ฅผ ์˜ค๋žซ๋™์•ˆ ์ฐพ๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. (๋‚˜๋Š” Habrรฉ์— ์ด์— ๋Œ€ํ•ด ์ผ์Šต๋‹ˆ๋‹ค: 1, 2), ํ•˜์ง€๋งŒ ๊ฒฐ๊ตญ์—๋Š” ๋‚˜๋งŒ์˜ ์˜คํ”ˆ ์†Œ์Šค ์†”๋ฃจ์…˜์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ์‚ฌ์—์„œ๋Š” ์„œ๋น„์Šค ๋ฉ”์‹œ ์ ‘๊ทผ ๋ฐฉ์‹์˜ ์ด์ ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ณ  ํ•ด๋‹น ๊ตฌํ˜„์„ ์œ„ํ•œ ์ƒˆ๋กœ์šด ๋„๊ตฌ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

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

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

์„œ๋น„์Šค ๋ฉ”์‹œ ์ ‘๊ทผ ๋ฐฉ์‹

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

Netramesh - ๊ฒฝ๋Ÿ‰ ์„œ๋น„์Šค ๋ฉ”์‹œ ์†”๋ฃจ์…˜

์†”๋ฃจ์…˜

์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ์ด๋ฏธ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๊ตฌํ˜„์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์Šค ํ‹ฐ์˜ค ะธ ๋ง์ปค๋“œ2. ๊ทธ๋“ค์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋™์‹œ์— ๋ฆฌ์†Œ์Šค์— ํฐ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋”์šฑ์ด, ๊ทธ๋Ÿฌํ•œ ์‹œ์Šคํ…œ์ด ์šด์˜๋˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ํด์ˆ˜๋ก ์ƒˆ๋กœ์šด ์ธํ”„๋ผ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐ ๋” ๋งŽ์€ ๋ฆฌ์†Œ์Šค๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Avito์—์„œ๋Š” ์ˆ˜์ฒœ ๊ฐœ์˜ ์„œ๋น„์Šค ์ธ์Šคํ„ด์Šค๋ฅผ ํฌํ•จํ•˜๋Š” kubernetes ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์šด์˜ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๊ทธ ์ˆ˜๋Š” ๊ณ„์†ํ•ด์„œ ๋น ๋ฅด๊ฒŒ ์ฆ๊ฐ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ๊ตฌํ˜„์—์„œ Istio๋Š” ์„œ๋น„์Šค ์ธ์Šคํ„ด์Šค๋‹น ์ตœ๋Œ€ 300Mb์˜ RAM์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅ์„ฑ์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ํˆฌ๋ช…ํ•œ ๊ท ํ˜• ์กฐ์ •์€ ์„œ๋น„์Šค์˜ ์ „์ฒด ์‘๋‹ต ์‹œ๊ฐ„(์ตœ๋Œ€ 10ms)์—๋„ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

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

๊ทธ ๊ฒฐ๊ณผ, ์šฐ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ์ •์„ ๋‚ด๋ ธ์Šต๋‹ˆ๋‹ค.โ€Š ๋„คํŠธ๋ผ๋ฉ”์‹œ.

๋„คํŠธ๋ผ๋ฉ”์‹œ

๋„คํŠธ๋ผ๋ฉ”์‹œ ์‹œ์Šคํ…œ์˜ ์„œ๋น„์Šค ์ˆ˜์— ๊ด€๊ณ„์—†์ด ๋ฌดํ•œํžˆ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ๋Ÿ‰ ์„œ๋น„์Šค ๋ฉ”์‹œ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค.

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

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

ะŸั€ะพะธะทะฒะพะดะธั‚ะตะปัŒะฝะพัั‚ัŒ

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

์šฐ๋ฆฌ๊ฐ€ ์–ด๋–ค ๊ฒฐ๊ณผ๋ฅผ ์–ป์—ˆ๋Š”์ง€ ๋ด…์‹œ๋‹ค.

๋žจ

Netramesh๋Š” ํŠธ๋ž˜ํ”ฝ ์—†์ด ~10Mb๋ฅผ ์†Œ๋น„ํ•˜๊ณ  ์ธ์Šคํ„ด์Šค๋‹น ์ตœ๋Œ€ 50RPS์˜ ๋กœ๋“œ๋กœ ์ตœ๋Œ€ 10000Mb๋ฅผ ์†Œ๋น„ํ•ฉ๋‹ˆ๋‹ค.

Istio ํŠน์‚ฌ ํ”„๋ก์‹œ๋Š” ์ˆ˜์ฒœ ๊ฐœ์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ์žˆ๋Š” ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ํ•ญ์ƒ ~300Mb๋ฅผ ์†Œ๋น„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ „์ฒด ํด๋Ÿฌ์Šคํ„ฐ๋กœ ํ™•์žฅ๋˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Netramesh - ๊ฒฝ๋Ÿ‰ ์„œ๋น„์Šค ๋ฉ”์‹œ ์†”๋ฃจ์…˜

Netramesh - ๊ฒฝ๋Ÿ‰ ์„œ๋น„์Šค ๋ฉ”์‹œ ์†”๋ฃจ์…˜

Netramesh๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๊ฐ€ ์ตœ๋Œ€ 10๋ฐฐ ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค.

CPU

CPU ์‚ฌ์šฉ๋Ÿ‰์€ ๋กœ๋“œ ์‹œ ์ƒ๋Œ€์ ์œผ๋กœ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์ด๋“œ์นด์— ๋Œ€ํ•œ ๋‹จ์œ„ ์‹œ๊ฐ„๋‹น ์š”์ฒญ ์ˆ˜์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ตœ๋Œ€ ์ดˆ๋‹น ์š”์ฒญ 3000๊ฑด์˜ ๊ฐ’:

Netramesh - ๊ฒฝ๋Ÿ‰ ์„œ๋น„์Šค ๋ฉ”์‹œ ์†”๋ฃจ์…˜

Netramesh - ๊ฒฝ๋Ÿ‰ ์„œ๋น„์Šค ๋ฉ”์‹œ ์†”๋ฃจ์…˜

ํ•œ ๊ฐ€์ง€ ๋” ์ค‘์š”ํ•œ ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. Netramesh - ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ๊ณผ ๋กœ๋“œ๊ฐ€ ์—†๋Š” ์†”๋ฃจ์…˜์€ CPU ์‹œ๊ฐ„์„ ์†Œ๋น„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Istio๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์ด๋“œ์นด๊ฐ€ ํ•ญ์ƒ ์„œ๋น„์Šค ์—”๋“œํฌ์ธํŠธ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์šฐ๋ฆฌ๋Š” ๋กœ๋“œ ์—†์ด ์ด ๊ทธ๋ฆผ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

Netramesh - ๊ฒฝ๋Ÿ‰ ์„œ๋น„์Šค ๋ฉ”์‹œ ์†”๋ฃจ์…˜

์šฐ๋ฆฌ๋Š” ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹ ์„ ์œ„ํ•ด HTTP/1์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Envoy๋ฅผ ํ†ตํ•ด ํ”„๋ก์‹œํ•  ๋•Œ Istio์˜ ์‘๋‹ต ์‹œ๊ฐ„ ์ฆ๊ฐ€๋Š” ์ตœ๋Œ€ 5~10ms์˜€์œผ๋ฉฐ, ์ด๋Š” ๋ฐ€๋ฆฌ์ดˆ ๋‚ด์— ์‘๋‹ตํ•  ์ค€๋น„๊ฐ€ ๋œ ์„œ๋น„์Šค์˜ ๊ฒฝ์šฐ ์ƒ๋‹นํžˆ ๋งŽ์€ ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค. Netramesh๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด ์‹œ๊ฐ„์ด 0.5-2ms๋กœ ๋‹จ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ™•์žฅ์„ฑ

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

์„œ๋น„์Šค ๋ฐœ๊ฒฌ

Netramesh - ๊ฒฝ๋Ÿ‰ ์„œ๋น„์Šค ๋ฉ”์‹œ ์†”๋ฃจ์…˜

Netramesh๋Š” ์„œ๋น„์Šค ๊ฒ€์ƒ‰์„ ์œ„ํ•œ ์ถ”๊ฐ€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์€ Netra ์‚ฌ์ด๋“œ์นด๋ฅผ ํ†ตํ•ด ํˆฌ๋ช…ํ•˜๊ฒŒ ํ”„๋ก์‹œ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

Netramesh๋Š” HTTP/1 ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœํ† ์ฝœ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ํฌํŠธ ๋ชฉ๋ก์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์‹œ์Šคํ…œ์—๋Š” HTTP ํ†ต์‹ ์ด ์ด๋ฃจ์–ด์ง€๋Š” ์—ฌ๋Ÿฌ ํฌํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์„œ๋น„์Šค์™€ ์™ธ๋ถ€ ์š”์ฒญ ๊ฐ„์˜ ์ƒํ˜ธ ์ž‘์šฉ์—๋Š” 80, 8890, 8080์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์ด ๊ฒฝ์šฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. NETRA_HTTP_PORTS.

Kubernetes๋ฅผ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์„œ๋น„์Šค ๊ฐ„ ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด ํ†ต์‹ ์„ ์œ„ํ•œ ํ•ด๋‹น ์„œ๋น„์Šค ์—”ํ„ฐํ‹ฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ์ •ํ™•ํžˆ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ๋จผ์ € ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” kube-dns๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค IP ์ฃผ์†Œ๋ฅผ ํš๋“ํ•˜๊ณ  ์ด์— ๋Œ€ํ•œ ์ƒˆ ์—ฐ๊ฒฐ์„ ์—ฝ๋‹ˆ๋‹ค. ์ด ์—ฐ๊ฒฐ์€ ๋จผ์ € ๋กœ์ปฌ netra-sidecar๋ฅผ ํ†ตํ•ด ์„ค์ •๋˜๋ฉฐ ๋ชจ๋“  TCP ํŒจํ‚ท์€ ์ฒ˜์Œ์— netra์— ๋„์ฐฉํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์œผ๋กœ netra-sidecar๋Š” ์›๋ž˜ ๋Œ€์ƒ๊ณผ์˜ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋…ธ๋“œ์˜ ํฌ๋“œ IP์— ๋Œ€ํ•œ NAT๋Š” netra๊ฐ€ ์—†๋Š” ๊ฒƒ๊ณผ ์ •ํ™•ํžˆ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

๋ถ„์‚ฐ ์ถ”์  ๋ฐ ์ปจํ…์ŠคํŠธ ์ „๋‹ฌ

Netramesh๋Š” HTTP ์ƒํ˜ธ ์ž‘์šฉ์— ๋Œ€ํ•œ ์ถ”์  ๋ฒ”์œ„๋ฅผ ๋ณด๋‚ด๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Netra-sidecar๋Š” HTTP ํ”„๋กœํ† ์ฝœ์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ณ , ์š”์ฒญ ์ง€์—ฐ์„ ์ธก์ •ํ•˜๊ณ , HTTP ํ—ค๋”์—์„œ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค. ๊ถ๊ทน์ ์œผ๋กœ ์šฐ๋ฆฌ๋Š” ๋‹จ์ผ Jaeger ์‹œ์Šคํ…œ์—์„œ ๋ชจ๋“  ์ถ”์ ์„ ์–ป์Šต๋‹ˆ๋‹ค. ์„ธ๋ถ„ํ™”๋œ ๊ตฌ์„ฑ์„ ์œ„ํ•ด ๊ณต์‹ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ œ๊ณตํ•˜๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๊ฑฐ ๋„์„œ๊ด€์— ๊ฐ€๋‹ค.

Netramesh - ๊ฒฝ๋Ÿ‰ ์„œ๋น„์Šค ๋ฉ”์‹œ ์†”๋ฃจ์…˜

Netramesh - ๊ฒฝ๋Ÿ‰ ์„œ๋น„์Šค ๋ฉ”์‹œ ์†”๋ฃจ์…˜

ํ•˜์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋น„์Šค๊ฐ€ ํŠน๋ณ„ํ•œ uber ํ—ค๋”๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋ณด๋‚ผ ๋•Œ๊นŒ์ง€ ์‹œ์Šคํ…œ์—์„œ ์—ฐ๊ฒฐ๋œ ์ถ”์  ๋ฒ”์œ„๋ฅผ ๋ณผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์ด ๋ฐ”๋กœ ๋ฌธ์ œ์˜ ์›์ธ์„ ๋น ๋ฅด๊ฒŒ ์ฐพ์•„๋‚ด๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ๋„ Netramesh๊ฐ€ ํ•ด๊ฒฐ์ฑ…์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋ก์‹œ๋Š” HTTP ํ—ค๋”๋ฅผ ์ฝ๊ณ  Uber ์ถ”์  ID๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด ํ—ค๋”๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. Netramesh๋Š” ๋˜ํ•œ ์‚ฌ์ด๋“œ์นด์— ๋“ค์–ด์˜ค๊ณ  ๋‚˜๊ฐ€๋Š” ์š”์ฒญ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ณ  ํ•„์š”ํ•œ ๋‚˜๊ฐ€๋Š” ์š”์ฒญ ํ—ค๋”๋กœ ์ด๋ฅผ ๊ฐ•ํ™”ํ•˜์—ฌ ์ผ์น˜์‹œํ‚ต๋‹ˆ๋‹ค. ์„œ๋น„์Šค์—์„œ ํ•ด์•ผ ํ•  ์ผ์€ ํ—ค๋” ํ•˜๋‚˜๋งŒ ๋ณด๋‚ด๋Š” ๊ฒƒ ๋ฟ์ž…๋‹ˆ๋‹ค. X-Request-Id, ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Œ NETRA_HTTP_REQUEST_ID_HEADER_NAME. Netramesh์—์„œ ์ปจํ…์ŠคํŠธ ํฌ๊ธฐ๋ฅผ ์ œ์–ดํ•˜๋ ค๋ฉด ๋‹ค์Œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. NETRA_TRACING_CONTEXT_EXPIRATION_MILLISECONDS (์ปจํ…์ŠคํŠธ๊ฐ€ ์ €์žฅ๋˜๋Š” ์‹œ๊ฐ„) ๋ฐ NETRA_TRACING_CONTEXT_CLEANUP_INTERVAL (์ปจํ…์ŠคํŠธ ์ •๋ฆฌ ๋นˆ๋„).

ํŠน์ˆ˜ ์„ธ์…˜ ํ† ํฐ์œผ๋กœ ํ‘œ์‹œํ•˜์—ฌ ์‹œ์Šคํ…œ์˜ ์—ฌ๋Ÿฌ ๊ฒฝ๋กœ๋ฅผ ๊ฒฐํ•ฉํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. Netra๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. HTTP_HEADER_TAG_MAP HTTP ํ—ค๋”๋ฅผ ํ•ด๋‹น ์ถ”์  ๋ฒ”์œ„ ํƒœ๊ทธ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํ…Œ์ŠคํŠธ์— ํŠนํžˆ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•œ ํ›„ ํ•ด๋‹น ์„ธ์…˜ ํ‚ค๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•„ํ„ฐ๋งํ•˜๋ฉด ์‹œ์Šคํ…œ์˜ ์–ด๋Š ๋ถ€๋ถ„์ด ์˜ํ–ฅ์„ ๋ฐ›์•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์š”์ฒญ ์†Œ์Šค ๊ฒฐ์ •

์š”์ฒญ์ด ์–ด๋””์„œ ์™”๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ์†Œ์Šค์™€ ํ•จ๊ป˜ ํ—ค๋”๋ฅผ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์‚ฌ์šฉ NETRA_HTTP_X_SOURCE_HEADER_NAME ์ž๋™์œผ๋กœ ์„ค์น˜๋  ํ—ค๋” ์ด๋ฆ„์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜์—ฌ NETRA_HTTP_X_SOURCE_VALUE ๋ชจ๋“  ๋‚˜๊ฐ€๋Š” ์š”์ฒญ์— ๋Œ€ํ•ด X-Source ํ—ค๋”๊ฐ€ ์„ค์ •๋  ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ… ๋ฐ Netramesh ๋‚ด๋ถ€

Netramesh๋Š” ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ์ธ netra-init๋Š” ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ€๋กœ์ฑ„๊ธฐ ์œ„ํ•œ ๋„คํŠธ์›Œํฌ ๊ทœ์น™์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Š” ์‚ฌ์šฉํ•œ๋‹ค iptables ๋ฆฌ๋””๋ ‰์…˜ ๊ทœ์น™ Netramesh์˜ ๋‘ ๋ฒˆ์งธ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ์ธ ์‚ฌ์ด๋“œ์นด์˜ ํŠธ๋ž˜ํ”ฝ ์ „์ฒด ๋˜๋Š” ์ผ๋ถ€๋ฅผ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค. ๋“ค์–ด์˜ค๊ณ  ๋‚˜๊ฐ€๋Š” TCP ์„ธ์…˜์— ๋Œ€ํ•ด ๊ฐ€๋กœ์ฑ„์•ผ ํ•˜๋Š” ํฌํŠธ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. INBOUND_INTERCEPT_PORTS, OUTBOUND_INTERCEPT_PORTS.

์ด ๋„๊ตฌ์—๋Š” ํ™•๋ฅ ์  ๋ผ์šฐํŒ…์ด๋ผ๋Š” ํฅ๋ฏธ๋กœ์šด ๊ธฐ๋Šฅ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ถ”์  ๋ฒ”์œ„ ์ˆ˜์ง‘์„ ์œ„ํ•ด Netramesh๋ฅผ ๋…์ ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ ˆ์•ฝํ•˜๊ณ  ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™•๋ฅ ์  ๋ผ์šฐํŒ…์„ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. NETRA_INBOUND_PROBABILITY ะธ NETRA_OUTBOUND_PROBABILITY (0์—์„œ 1๊นŒ์ง€). ๊ธฐ๋ณธ๊ฐ’์€ 1(๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์ด ์ฐจ๋‹จ๋จ)์ž…๋‹ˆ๋‹ค.

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

์ข…์†์„ฑ ๊ทธ๋ž˜ํ”„ ์ž‘์„ฑ

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

Elasticsearch๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ถ”์  ๋ฒ”์œ„๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ Golang ์œ ํ‹ธ๋ฆฌํ‹ฐ, Elasticsearch์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ช‡ ๋ถ„ ์•ˆ์— ๋™์ผํ•œ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค.

Netramesh - ๊ฒฝ๋Ÿ‰ ์„œ๋น„์Šค ๋ฉ”์‹œ ์†”๋ฃจ์…˜

Netramesh๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

Netra๋Š” ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ชจ๋“  ์„œ๋น„์Šค์— ์‰ฝ๊ฒŒ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ์—ฌ๊ธฐ์—.

ํ˜„์žฌ Netra์—๋Š” ์„œ๋น„์Šค์— ์‚ฌ์ด๋“œ์นด๋ฅผ ์ž๋™์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์—†์ง€๋งŒ ๊ตฌํ˜„ ๊ณ„ํš์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋„คํŠธ๋ผ๋ฉ”์‹œ์˜ ๋ฏธ๋ž˜

์ฃผ์š” ๋ชฉํ‘œ ๋„คํŠธ๋ผ๋ฉ”์‹œ ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹ ์— ๋Œ€ํ•œ ๊ด€์ฐฐ ๋ฐ ์ œ์–ด๋ฅผ ์œ„ํ•œ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ ์ตœ์†Œํ•œ์˜ ๋ฆฌ์†Œ์Šค ๋น„์šฉ๊ณผ ๋†’์€ ์„ฑ๋Šฅ์„ ๋‹ฌ์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•ž์œผ๋กœ Netramesh๋Š” HTTP ์™ธ์— ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ์„ ์ง€์›ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. L7 ๋ผ์šฐํŒ…์€ ๊ฐ€๊นŒ์šด ์‹œ์ผ ๋‚ด์— ์ œ๊ณต๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

์œ ์‚ฌํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด Netramesh๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์งˆ๋ฌธ๊ณผ ์ œ์•ˆ ์‚ฌํ•ญ์„ ๋ณด๋‚ด์ฃผ์‹ญ์‹œ์˜ค.

์ถœ์ฒ˜ : habr.com

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