Microservices Architecture Style

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•„์š”

References: microsoft docs, aws docs

What are Microservices?

  • ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ์ž‘๊ณ , ๋…๋ฆฝ์ ์ด๋ฉฐ, ๋Š์Šจํ•˜๊ฒŒ ๊ฒฐํ•ฉ๋˜์–ด ์žˆ๋‹ค

    • ํ•˜๋‚˜์˜ ์†Œ๊ทœ๋ชจ ๊ฐœ๋ฐœ์ž ํŒ€์ด ์ž‘์„ฑํ•˜๊ณ  ์œ ์ง€/๊ด€๋ฆฌ ํ•  ์ˆ˜ ์žˆ๋‹ค

  • ๊ฐ ์„œ๋น„์Šค๋Š” ์ž‘์€ ๊ฐœ๋ฐœ ํŒ€์ด ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋ฐœ ์ฝ”๋“œ ๋ฒ ์ด์Šค์ด๋‹ค

  • ์„œ๋น„์Šค๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‹ค

    • ํŒ€์ด ์ „์ฒด application์„ ๋‹ค์‹œ ๋นŒ๋“œํ•œ ํ›„ ์žฌ๋ฐฐ์น˜ ํ•˜์ง€ ์•Š๊ณ ๋„ ๊ธฐ์กด ์„œ๋น„์Šค๋ฅผ ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜ ์žˆ๋‹ค

  • ์„œ๋น„์Šค๊ฐ€ ํ•ด๋‹น ๋ฐ์ดํ„ฐ or ์™ธ๋ถ€ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค

    • ๋ณ„๋„์˜ ๋ฐ์ดํ„ฐ ๋ ˆ์ด์–ด๊ฐ€ ๋ฐ์ดํ„ฐ ์ง€์†์„ฑ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ์กด ๋ชจ๋ธ๊ณผ์˜ ์ฐจ์ด์ !

  • ์„œ๋น„์Šค๊ฐ€ ์ž˜ ์ •์˜๋œ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋กœ ํ†ต์‹ ํ•œ๋‹ค

    • ๊ฐ ์„œ๋น„์Šค ๋‚ด๋ถ€ ๊ตฌํ˜„ ์„ธ๋ถ€ ์ •๋ณด๋Š” ๋‹ค๋ฅธ ์„œ๋น„์Šค์— ์˜ํ•ด ์ˆจ๊ฒจ์ง„๋‹ค

  • ์„œ๋น„์Šค๊ฐ€ ๋™์ผํ•œ ๊ธฐ์ˆ  ์Šคํƒ, library, ๋˜๋Š” framework๋ฅผ ๊ณต์œ ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค

Benefits of Microservices

  • ๋ฏผ์ฒฉ์„ฑ

    • ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐฐํฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ๊ฐ€ ๋” ์‰ฝ๋‹ค

  • ์ง‘์ค‘ํ™”๋œ ์†Œ๊ทœ๋ชจ ํŒ€

    • ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋Š” ๊ทœ๋ชจ๊ฐ€ ์ž‘์•„์„œ ํ•œ ๊ธฐ๋Šฅ ํŒ€์—์„œ ์ถฉ๋ถ„ํžˆ ๊ตฌ์ถ•, ํ…Œ์ŠคํŠธ ๋ฐ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‹ค

      • ์†Œ๊ทœ๋ชจ ํŒ€์€ ๋ฏผ์ฒฉ์„ฑ์ด ๋†’๋‹ค!

  • ์†Œ๊ทœ๋ชจ ์ฝ”๋“œ ๊ธฐ์ค€

    • ๋ชจ๋†€๋ฆฌ์‹ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฒฝ์šฐ ์‹œ๊ฐ„์ด ๊ฒฝ๊ณผํ•˜๋ฉด์„œ ์ฝ”๋“œ ์ข…์†์„ฑ์ด ์–ฝํžˆ๋Š” ๊ฒฝํ–ฅ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋งŽ์€ ๋ถ€๋ถ„์—์„œ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค

      • but, ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋Š” ์ฝ”๋“œ๋‚˜ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋ฅผ ๊ณต์œ ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ข…์†์„ฑ์ด ์ตœ์†Œํ™”๋˜๋ฉฐ ๊ทธ ๊ฒฐ๊ณผ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์‰ฝ๋‹ค

  • ๊ธฐ์ˆ ์˜ ํ˜ผํ•ฉ

    • ํŒ€์€ ํ˜ผํ•ฉ๋œ ๊ธฐ์ˆ  ์Šคํƒ์„ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๊ธฐ์ˆ ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค

  • ๊ฒฐํ•จ ๊ฒฉ๋ฆฌ

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

  • ํ™•์žฅ์„ฑ

    • ์„œ๋น„์Šค๋Š” ๋ณ„๋„๋กœ ํ™•์žฅ๋  ์ˆ˜ ์žˆ์–ด ์ „์ฒด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ทœ๋ชจ๋ฅผ ํ™•์žฅํ•˜์ง€ ์•Š๊ณ ๋„ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋” ๋งŽ์ด ํ•„์š”ํ•œ ํ•˜์œ„ ์‹œ์Šคํ…œ์˜ ๊ทœ๋ชจ๋ฅผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค

  • ๋ฐ์ดํ„ฐ ๊ฒฉ๋ฆฌ

    • ๋‹จ์ผ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋งŒ ์˜ํ–ฅ์„ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ์Šคํ‚ค๋งˆ ์—…๋ฐ์ดํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ์‰ฝ๋‹ค

      • but, ๋ชจ๋†€๋ฆฌ์‹ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ์Šคํ‚ค๋งˆ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋งค์šฐ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ๋‹ค!

        • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋‹ค์–‘ํ•œ ๋ถ€๋ถ„์ด ๋ชจ๋‘ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์–ด์„œ ์Šคํ‚ค๋งˆ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ์œ„ํ—˜ํ•˜๊ธฐ ๋•Œ๋ฌธ!

Challenges of Microservices

  • ๋ณต์žก์„ฑ

    • Microservice application์—๋Š” ๋™๋“ฑํ•œ monolithic application ๋ณด๋‹ค ์ž‘๋™ํ•˜๋Š” part๊ฐ€ ๋” ๋งŽ๋‹ค

      • ๊ฐ๊ฐ์˜ ์„œ๋น„์Šค๋Š” ๋” ๋‹จ์ˆœํ•˜์ง€๋งŒ ์ „์ฒด ์‹œ์Šคํ…œ์€ ๋” ๋ณต์žกํ•˜๋‹ค

  • ํ†ต์ œ์˜ ์–ด๋ ค์›€

    • Microservice build์— ๋Œ€ํ•œ ๋ถ„์‚ฐ ์ ‘๊ทผ ๋ฐฉ์‹์—๋Š” ์žฅ์ ์ด ์žˆ์ง€๋งŒ, ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์—ฌ์ง€๊ฐ€ ์žˆ๋‹ค

    • ์‚ฌ์šฉ๋˜๋Š” ์–ธ์–ด์™€ framework๊ฐ€ ๋งŽ์•„์„œ application์˜ ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ค์›Œ์งˆ ์ˆ˜ ์žˆ๋‹ค

      • ๊ทธ๋ž˜์„œ ํ”„๋กœ์ ํŠธ์— ๋ช‡ ๊ฐ€์ง€ ํ‘œ์ค€์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค!

        • ex) logging ๊ณผ ๊ฐ™์€ cross-cutting ๊ธฐ๋Šฅ

  • ๋„คํŠธ์›Œํฌ ์ •์ฒด & ๋Œ€๊ธฐ ์‹œ๊ฐ„

    • ๋‹ค์ˆ˜์˜ ์ž‘๊ณ  ์„ธ๋ถ„ํ™”๋œ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹ ์ด ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค

    • ๋˜ํ•œ ์„œ๋น„์Šค์˜ ์ข…์†์„ฑ ์ฒด์ธ (์„œ๋น„์Šค A๊ฐ€ B๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , B๊ฐ€ C๋ฅผ ํ˜ธ์ถœํ•˜๊ณ ......) ์ด ๋„ˆ๋ฌด ๊ธธ์–ด์งˆ ๊ฒฝ์šฐ ์ถ”๊ฐ€ ๋Œ€๊ธฐ ์‹œ๊ฐ„์— ๋Œ€ํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ ํ•  ์ˆ˜ ์žˆ๋‹ค

      • ๊ทธ๋Ÿฌ๋ฏ€๋กœ API๋ฅผ ์‹ ์ค‘ํ•˜๊ฒŒ ์„ค๊ณ„ํ•ด์•ผ ํ•œ๋‹ค!

  • ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ

    • ๊ฐ Microservice๋Š” ์ž์ฒด์ ์œผ๋กœ ๋ฐ์ดํ„ฐ์˜ ์ง€์†์„ฑ์„ ๊ด€๋ฆฌํ•œ๋‹ค

      • ๊ทธ๋ž˜์„œ ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ์ด ๋ฌธ์ œ๋  ์ˆ˜ ์žˆ๋‹ค

  • ๋ฒ„์ „ ๊ด€๋ฆฌ

    • ์„œ๋น„์Šค์˜ ์—…๋ฐ์ดํŠธ๋กœ ์ธํ•ด ์ข…์†๋œ ์„œ๋น„์Šค๊ฐ€ ์†์ƒ๋˜์ง€ ์•Š๋„๋ก ํ•ด์•ผํ•œ๋‹ค

    • ์–ธ์ œ๋“  ์—ฌ๋Ÿฌ ์„œ๋น„์Šค๊ฐ€ ์—…๋ฐ์ดํŠธ ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์‹ ์ค‘ํ•˜๊ฒŒ ๋””์ž์ธ ํ•˜์ง€ ์•Š์œผ๋ฉด ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค

Last updated