๋””์ž์ธ ์”ฝํ‚น์ด๋ž€ ๊ณต๊ฐ์˜ ๊ณผ์ •์„ ํ†ตํ•ด ๋ฌธ์ œ์ ์„ ์ฐพ์•„๋‚ด๊ณ , ์•„์ด๋””์–ด๋ฅผ ๋ฐœ์‚ฐํ•˜๊ณ , ํ”„๋กœํ† ํƒ€์ž…์„ ๋งŒ๋“ค์–ด ๊ฒ€์ฆ ๊ณผ์ •์„ ๊ฑฐ์น˜๋Š”, ๋ฐ˜๋ณต์  ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ๋ฐฉ๋ฒ•๋ก  ๋ฐ ์‚ฌ๊ณ ๋ฐฉ์‹ ๋””์ž์ธ ์”ฝํ‚น ํ”„๋กœ์„ธ์Šค ๊ณต๊ฐ - ๋ฌธ์ œ ์ •์˜ - ์•„์ด๋””์–ด ๋„์ถœ - ํ”„๋กœํ† ํƒ€์ดํ•‘ - ํ…Œ์ŠคํŒ… 1. ๊ณต๊ฐ ๊ณต๊ฐ ํ”„๋กœ์„ธ์Šค ๋ฉด๋‹ดํ•˜๊ธฐ ๊ด€์ฐฐํ•˜๊ธฐ ๊ฒฝํ—˜ํ•˜๊ธฐ ๋ฉด๋‹ด์ง€ ์ค€๋น„ํ•˜๊ธฐ ์ˆœ์ฐจ์  ๊ฒฝํ—˜ ์งˆ๋ฌธ : ์–ด๋–ค ์ˆœ์„œ๋กœ ํ–‰๋™ํ•˜๊ณ  ๊ฒฝํ—˜ํ•˜๋Š”์ง€ ๋ฌผ์–ด๋ณด์ž ๊ฐ์ • ์งˆ๋ฌธ ์ด์œ  ์งˆ๋ฌธ : ํ–‰๋™ ๋˜๋Š” ๊ฐ์ •์— ๋Œ€ํ•œ ์ด์œ ๋ฅผ ๋ฌผ์–ด๋ณด์ž ๋˜ ์งˆ๋ฌธ : “๋˜…“๋ผ๋Š” ์งˆ๋ฌธ์„ ๋งŽ์ด ํ•˜์ž ๊ตฌ์ฒดํ™” ์งˆ๋ฌธ ๊ด€์ฐฐํ•˜๊ธฐ | ๋ชจ๋‹ˆํ„ฐ๋ง ํ˜„์žฅ ์ค‘์‹ฌ ๊ด€์ฐฐ : ์„ธ์ƒ์„ ๋„“๊ณ  ๊นŠ๊ฒŒ ๋ฐ”๋ผ๋ณด๊ธฐ ๊ด€์ฐฐํ•˜๊ธฐ | ์‰๋„์ž‰ ์‚ฌ๋žŒ์˜ ์ฒดํ—˜์ด๋‚˜ ํ–‰๋™์„ ๊ทธ์ž๋ฆฌ์—์„œ ๊ด€์ฐฐํ•˜๊ธฐ ๊ด€์ฐฐํ•˜๊ธฐ | ๋งฅ๋ฝ ์งˆ์˜๋ฒ• ํ˜„์žฅ์—์„œ ๊ด€์ฐฐ ๋ฐ ๋ฉด๋‹ด์„ ํ†ตํ•ด ๋Œ€์ƒ์ž์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ํ•˜๋Š” ๋ฐฉ๋ฒ•
MSA๋ž€ ๋ฌด์—‡์ธ๊ฐ€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฐœ๋… ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค(microservice)๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋Š์Šจํ•˜๊ฒŒ ๊ฒฐํ•ฉ๋œ ์„œ๋น„์Šค์˜ ๋ชจ์ž„์œผ๋กœ ๊ตฌ์กฐํ™”ํ•˜๋Š” ์„œ๋น„์Šค ์ง€ํ–ฅ ์•„ํ‚คํ…์ฒ˜(SOA) ์Šคํƒ€์ผ์˜ ์ผ์ข…์ธ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๊ธฐ๋ฒ•์ด๋‹ค ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜์—์„œ ์„œ๋น„์Šค๋“ค์€ ์„ฌ์„ธ(fine-grained)ํ•˜๊ณ  ํ”„๋กœํ† ์ฝœ์€ ๊ฐ€๋ฒผ์šด ํŽธ์ด๋‹ค. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ํŠน์ง• ์ž์œจ์„ฑ : ๊ฐ ๊ตฌ์„ฑ ์š”์†Œ ์„œ๋น„์Šค๋Š” ๋‹ค๋ฅธ ์„œ๋น„์Šค์˜ ๊ธฐ๋Šฅ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์œผ๋ฉด์„œ ๊ฐœ๋ฐœ, ๋ฐฐํฌ, ์šด์˜ํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅ ์ „๋ฌธ์„ฑ : ๊ฐ ์„œ๋น„์Šค๋Š” ์ผ๋ จ์˜ ๊ธฐ๋Šฅ์„ ์œ„ํ•ด ์„ค๊ณ„๋˜๋ฉฐ ํŠน์ • ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘”๋‹ค ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ๊ธฐ์ˆ ์  ํŠน์ง• ๊ฐ๊ฐ์˜ ์„œ๋น„์Šค๋Š” ๊ทธ ํฌ๊ธฐ๊ฐ€ ์ž‘์„ ๋ฟ, ์„œ๋น„์Šค ์ž์ฒด๋Š” ํ•˜๋‚˜์˜ ๋ชจ๋…ธ๋ฆฌ์‹ ์•„ํ‚คํ…์ฒ˜์™€ ์œ ์‚ฌํ•œ ๊ตฌ์กฐ๋ฅผ ๊ฐ–๋Š”๋‹ค ๊ฐ๊ฐ์˜ ์„œ๋น„์Šค๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค ๊ฐ๊ฐ์˜ ์„œ๋น„์Šค๋Š” ๋‹ค๋ฅธ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์˜์กด์„ฑ์ด ์ž‘์•„์•ผ ํ•œ๋‹ค ๊ฐ ์„œ๋น„์Šค๋Š” ๊ฐœ๋ณ„ ํ”„๋กœ์„ธ์Šค๋กœ ๊ตฌ๋™๋˜๋ฉฐ, REST API์™€ ๊ฐ™์€ ๊ฐ€๋ฒผ์šด ๋ฐฉ์‹์œผ๋กœ ํ†ต์‹ ๋˜์–ด์•ผ ํ•œ๋‹ค ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์ด์  ๋ฏผ์ฒฉ์„ฑ : ์†Œ๊ทœ๋ชจ ์ปจํ…์ŠคํŠธ ๋‚ด์—์„œ ํ™œ๋™ํ•˜๋ฉฐ ๋” ๋…๋ฆฝ์ ์ด๋ฉด์„œ ์‹ ์†ํ•˜๊ฒŒ ์—…๋ฌด๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค ์œ ์—ฐํ•œ ํ™•์žฅ์„ฑ : ์„œ๋น„์Šค๊ฐ€ ์ง€์›ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ธฐ๋Šฅ์˜ ์ˆ˜์š”๋ฅผ ์ถฉ์กฑํ•˜๋„๋ก ํ•ด๋‹น ์„œ๋น„์Šค๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค ์†์‰ฌ์šด ๋ฐฐํฌ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์œ„ํ•œ ์กฐ๊ฑด ๋น„์šฉ ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ ์šด์˜ ์ธํ”„๋ผ ๋ฐฐํฌ ์ฃผ๊ธฐ
๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ ๊ตฌ์ถ• ์‹ค์Šต (ELK) ELK๋ž€ ELK๋Š” Elasticsearch, Logstash ๋ฐ Kibana : ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ ์„ธ ๊ฐœ์˜ ๋จธ๋ฆฌ๊ธ€ Elasticserach๋Š” ๊ฒ€์ƒ‰ ๋ฐ ๋ถ„์„ ์—”์ง„ Logstash๋Š” ์—ฌ๋Ÿฌ ์†Œ์Šค์—์„œ ๋™์‹œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ ๋ณ€ํ™˜ํ•œ ํ›„ Elasticsearch ๊ฐ™์€ “stash"๋กœ ์ „์†กํ•˜๋Š” ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํŒŒ์ดํ”„๋ผ์ธ Kibana๋Š” ์‚ฌ์šฉ์ž๊ฐ€ Elasticsearch์—์„œ ์ฐจํŠธ์™€ ๊ทธ๋ž˜ํ”„๋ฅผ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™” Kibana Elasticsearch์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์›น ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ฐ˜์˜ ์‹œ๊ฐํ™” ํ”Œ๋žซํผ Elasticsearch์— ์žˆ๋Š” ์ธ๋ฑ์Šค์˜ ํŒจํ„ด์„ ์ฐพ์•„์„œ, ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•˜๊ฑฐ๋‚˜, ์‹œ๊ฐํ™”ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค Logstash ์„œ๋ฒ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘, ๋ณ€ํ™˜, ์ „์†กํ•˜๋Š” ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํŒŒ์ดํ”„๋ผ์ธ์œผ๋กœ, Jruby(JVM ๊ธฐ๋ฐ˜ Ruby)๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ๋‹ค
Docker ์‹ค์Šต Docker๋ž€ ๋ฌด์—‡์ธ๊ฐ€ Docker๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹ ์†ํ•˜๊ฒŒ ๊ตฌ์ถ•, ํ…Œ์ŠคํŠธ ๋ฐ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ํ”Œ๋žซํผ Docker๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ๊ฐœ์„ ๋˜๊ณ  ์™„๋ฒฝํ•œ ์ด์‹์„ฑ ๊ฒฝ๋Ÿ‰์˜ ์ค‘๋Ÿ‰, ๋ฏธ์„ธํ•œ ์—…๋ฐ์ดํŠธ ์ž๋™ํ™”๋œ ์ปจํ…Œ์ด๋„ˆ ์ž‘์„ฑ ์ปจํ…Œ์ด๋„ˆ ๋ฒ„์ „ํ™” ์ปจํ…Œ์ด๋„ˆ ์žฌ์‚ฌ์šฉ ๊ณต์œ  ์ปจํ…Œ์ด๋„ˆ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ Docker ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ - Kubernetes Kubernetes๋Š” Google์—์„œ ๋‚ด๋ถ€์šฉ์œผ๋กœ ๊ฐœ๋ฐœ๋œ ํ”„๋กœ์ ํŠธ์—์„œ ํŒŒ์ƒ๋œ ์˜คํ”ˆ์†Œ์Šค ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํ”Œ๋žซํผ Docker์— ์ž์ฒด ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํˆด (Docker Swarm)์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€๋งŒ, ๋Œ€๋ถ€๋ถ„์˜ ๊ฐœ๋ฐœ์ž๋Š” ๊ทธ ๋Œ€์‹  Kubernetes๋ฅผ ์„ ํƒํ•œ๋‹ค Kubernetes๋Š” ์ปจํ…Œ์ด๋„ˆ ๋ฐฐ์น˜, ์—…๋ฐ์ดํŠธ, ์„œ๋น„์Šค๊ฐ์ง€, ์Šคํ† ๋ฆฌ์ง€ ํ”„๋กœ๋น„์ €๋‹, ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ, ์ƒํƒœ ๋ชจ๋‹ˆํ„ฐ๋ง ๋“ฑ์„ ํฌํ•จํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜์˜ ๊ด€๋ฆฌ์— ํ•„์ˆ˜์ ์ธ ํƒœ์Šคํฌ๋ฅผ ์Šค์ผ€์ค„๋งํ•˜๊ณ  ์ž๋™ํ™”ํ•œ๋‹ค
ํด๋ผ์šฐ๋“œ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜๊ธฐ ํด๋ผ์šฐ๋“œ๋ž€ ๊ฐœ์ธ์ด ๊ฐ€์ง„ ๋‹จ๋ง๊ธฐ๋ฅผ ํ†ตํ•ด์„œ๋Š” ์ฃผ๋กœ ์ž…/์ถœ๋ ฅ ์ž‘์—…๋งŒ ์ด๋ฃจ์–ด์ง€๊ณ , ์ •๋ณด๋ถ„์„ ๋ฐ ์ฒ˜๋ฆฌ, ์ €์žฅ, ๊ด€๋ฆฌ ์œ ํ†ต ๋“ฑ์˜ ์ž‘์—…์€ ํด๋ผ์šฐ๋“œ๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์ œ3์˜ ๊ณต๊ฐ„์—์„œ ์ด๋ฃจ์–ด์ง€๋Š” ์ปดํ“จํŒ… ์‹œ์Šคํ…œ ํ˜•ํƒœ ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…์ด ํ•„์š”ํ•œ ์ด์œ  ๋น„์šฉ์ ˆ๊ฐ ์†๋„ํ–ฅ์ƒ ํ™•์žฅ์„ฑ ์ƒ์‚ฐ์„ฑ ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ์„œ๋น„์Šค๋ชจ๋ธ Infrastructure as a Service (IaaS) : IT๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์œ ์—ฐ์„ฑ๊ณผ ๊ด€๋ฆฌ ์ œ์–ด ๊ธฐ๋Šฅ์„ ์ œ๊ณต GCE, AWS, Azure Platform as a Service (Paas) : ๋นŒ๋“œ ๋ฐ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ํ™˜๊ฒฝ์ด ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณต Openshift, Github, docker, kubernetes Software as a a Service (Saas) : ์™„์ „ํ•œ ์ œํ’ˆ ์ œ๊ณต GShift ๋น„๊ต On-site < Iaas < Paas < Saas