[Daily morning study] Microservice Architecture (MSA)์˜ ์žฅ๋‹จ์ 

#daily morning study

Image


Microservice Architecture (MSA)์˜ ์žฅ๋‹จ์ 

Microservice Architecture (MSA)๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ฐ ๋ฐฐํฌ์˜ ํ˜„๋Œ€์ ์ธ ์ ‘๊ทผ๋ฒ•์œผ๋กœ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐฐํฌ ๊ฐ€๋Šฅํ•œ ์ž‘์€ ์„œ๋น„์Šค๋“ค๋กœ ๋‚˜๋ˆ„๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด ์ž๋ฃŒ์—์„œ๋Š” MSA์˜ ์žฅ๋‹จ์ ์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

MSA์˜ ์žฅ์ 

1. ๋…๋ฆฝ์ ์ธ ๋ฐฐํฌ ๊ฐ€๋Šฅ์„ฑ

MSA์—์„œ๋Š” ๊ฐ ์„œ๋น„์Šค๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํ•˜๋‚˜์˜ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ์ด ์ „์ฒด ์‹œ์Šคํ…œ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ๋ฆด๋ฆฌ์Šค ์ฃผ๊ธฐ๋ฅผ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ๊ธฐ์ˆ  ์Šคํƒ์˜ ๋‹ค์–‘์„ฑ

๊ฐ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐœ๋ฐœ๋˜๋ฏ€๋กœ, ๊ฐœ๋ฐœํŒ€์€ ๊ฐ ์„œ๋น„์Šค์— ์ ํ•ฉํ•œ ๊ธฐ์ˆ  ์Šคํƒ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํŒ€์˜ ์ „๋ฌธ์„ฑ์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

3. ํ™•์žฅ์„ฑ

MSA๋Š” ํŠน์ • ์„œ๋น„์Šค์˜ ์‚ฌ์šฉ๋Ÿ‰์ด ์ฆ๊ฐ€ํ•  ๋•Œ ํ•ด๋‹น ์„œ๋น„์Šค๋งŒ ๋ณ„๋„๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํŠธ๋ž˜ํ”ฝ์ด ๋งŽ์€ ๊ธฐ๋Šฅ๋งŒ ๋”ฐ๋กœ ์Šค์ผ€์ผ ์•„์›ƒํ•˜์—ฌ ๋น„์šฉ์„ ์ ˆ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4. ๋†’์€ ๊ฐ€์šฉ์„ฑ

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

5. ํŒ€์˜ ์ž์œจ์„ฑ

๊ฐ ํŒ€์€ ์ž์‹ ๋“ค์˜ ์„œ๋น„์Šค์— ๋Œ€ํ•ด ๋…๋ฆฝ์ ์œผ๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํŒ€์ด ๋” ๋น ๋ฅด๊ฒŒ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ , ํ˜์‹ ์„ ์ถ”๊ตฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

6. ์ง€์†์ ์ธ ๋ฐฐํฌ ๋ฐ ํ†ตํ•ฉ

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋Š” CI/CD(์ง€์†์  ํ†ตํ•ฉ ๋ฐ ์ง€์†์  ๋ฐฐํฌ) ํ”„๋กœ์„ธ์Šค์™€ ๋งค์šฐ ์ž˜ ์–ด์šธ๋ฆฝ๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐœ๋ฐœ ์ฃผ๊ธฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ , ๋น ๋ฅธ ํ”ฝ์Šค๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

MSA์˜ ๋‹จ์ 

1. ์‹œ์Šคํ…œ์˜ ๋ณต์žก์„ฑ ์ฆ๊ฐ€

MSA๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์„œ๋น„์Šค๋กœ ๊ตฌ์„ฑ๋˜๊ธฐ ๋•Œ๋ฌธ์—, ์‹œ์Šคํ…œ์˜ ๋ณต์žก์„ฑ์ด ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์„ค๊ณ„, ๋ฐฐํฌ, ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๋””๋ฒ„๊น…์ด ๋” ์–ด๋ ค์›Œ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ ๋ฌธ์ œ

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

3. ๋„คํŠธ์›Œํฌ ์ง€์—ฐ

MSA์—์„œ๋Š” ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹ ์ด ๋นˆ๋ฒˆํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋„คํŠธ์›Œํฌ ์ง€์—ฐ ๋ฐ ๋„คํŠธ์›Œํฌ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์„œ๋น„์Šค ๊ฐ„์˜ ์•ˆ์ •์ ์ธ ํ†ต์‹  ๋ฐฉ๋ฒ•์„ ํ™•๋ฆฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

4. ๋ฐฐํฌ ๋ฐ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๋„๊ตฌ ํ•„์š”

MSA ํ™˜๊ฒฝ์—์„œ๋Š” Kubernetes, Docker์™€ ๊ฐ™์€ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๋„๊ตฌ๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋„๊ตฌ๋“ค์˜ ์‚ฌ์šฉ์ด ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ํŒ€์€ ์ดˆ๊ธฐ ํ•™์Šต ๊ณก์„ ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

5. ํ…Œ์ŠคํŠธ์˜ ๋ณต์žก์„ฑ

์„œ๋น„์Šค ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์ด ์ฆ๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ๋‚˜ E2E(End to End) ํ…Œ์ŠคํŠธ๊ฐ€ ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์„œ๋น„์Šค์˜ ๋งˆ์ดํฌ๋กœ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•ด์•ผ ํ•ด์„œ ์‹œ๊ฐ„๊ณผ ์ž์›์ด ๋งŽ์ด ์†Œ๋ชจ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

6. ๋ณด์•ˆ ์ด์Šˆ

์—ฌ๋Ÿฌ ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•  ๊ฒฝ์šฐ, ๊ฐ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ๋ณด์•ˆ ์ „๋žต์„ ์„ธ์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค. API๋ฅผ ํ†ตํ•œ ํ†ต์‹ ์ด ๋งŽ์•„์ง€๋ฏ€๋กœ, ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๋ถ€์—ฌ์— ๋Œ€ํ•œ ์ฒด๊ณ„๋ฅผ ์ž˜ ๊ตฌ์ถ•ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

Microservice Architecture (MSA)๋Š” ํ˜„๋Œ€ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์—์„œ ๋งŽ์€ ์ด์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ ๋ณต์žก์„ฑ๊ณผ ๊ด€๋ฆฌ์˜ ์–ด๋ ค์›€๋„ ํ•จ๊ป˜ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. MSA์˜ ๋„์ž… ์—ฌ๋ถ€๋Š” ํ”„๋กœ์ ํŠธ์˜ ์š”๊ตฌ ์‚ฌํ•ญ, ํŒ€์˜ ์—ญ๋Ÿ‰ ๋ฐ ์กฐ์ง์˜ ๋ชฉํ‘œ์— ๋”ฐ๋ผ ์‹ ์ค‘ํ•˜๊ฒŒ ๊ฒฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ณธ ์ž๋ฃŒ๋ฅผ ํ†ตํ•ด MSA์˜ ์žฅ๋‹จ์ ์„ ๋ช…ํ™•ํžˆ ์ดํ•ดํ•˜๊ณ , ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ ์ ˆํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ ํƒํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.