์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์— MicroProfile ๊ธฐ๋ฐ˜์˜ Java ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ๊ตฌ์ถ•ํ•˜๊ธฐ  

MicroProfile๊ณผ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์ด์šฉํ•œ Java ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค์˜ ์ƒ์„ฑ ๋ฐ ๊ตฌ์ถ•

Last updated

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ๋นŒ๋“œ์™€ ์ง€์†์ ์ธ ์ œ๊ณต์„ ์œ„ํ•œ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ ๊ณผ ๋ฐ๋ธŒ์˜ต์Šค(DevOps)๋Š” ๊ธ‰๋ณ€ํ•˜๋Š” ์˜ค๋Š˜๋‚ ์˜ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์— ์žˆ์–ด์„œ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. ์ด ์ฝ”๋“œ ํŒจํ„ด์—์„œ๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด ์ด๋ฏธ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ธฐ์ˆ ๊ณผ ๊ฒฝํ—˜์„ ํ† ๋Œ€๋กœ MicroProfile๊ณผ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ํ™œ์šฉํ•˜์—ฌ Java 8 ๊ธฐ๋ฐ˜์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์‰ฝ๊ฒŒ ์ƒ์„ฑํ•˜๊ณ  ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.


‘์ฝ”๋“œ ๋ณด๊ธฐ’ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด GitHub์—์„œ ํ•œ๊ธ€ README ํŒŒ์ผ์„ ์„ ํƒํ•˜์—ฌ ๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

By Animesh Singh, Ishan Gulhane

Overview

Java ๊ฐœ๋ฐœ์ž๋Š” Java ์–ธ์–ด์˜ ํž˜์„ ์ด์šฉํ•˜๊ณ , ๋™์‹œ์— ์ตœ์‹  ํˆด๊ณผ ๊ฐœ๋ฐœ ๋ฐฉ์‹์„ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ฝ”๋“œ ํŒจํ„ด์€ MicroProfile์„ ์ด์šฉํ•œ Java ๊ธฐ๋ฐ˜์˜ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค์™€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ตฌ์ถ• ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

MicroProfile์€ Enterprise Java๋ฅผ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜์— ์ตœ์ ํ™”ํ•˜๊ณ  ๋‹ค์–‘ํ•œ MicroProfile ๋Ÿฐํƒ€์ž„์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด์‹์„ฑ์„ ์ œ๊ณตํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค ๋ฒ ์ด์Šค๋ผ์ธ ํ”Œ๋žซํผ์˜ ์ •์˜์ž…๋‹ˆ๋‹ค. ์ƒ˜ํ”Œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ปจํผ๋Ÿฐ์Šค ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์˜ˆ๋กœ, ๋‹ค์–‘ํ•œ ์ด์‚ฐํ˜• ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋“ค์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋ก ํŠธ์—”๋“œ๋Š” Angular๋กœ ์ž‘์„ฑ๋˜์—ˆ๊ณ , ๋ฐฑ์—”๋“œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” Java๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์„œ๋น„์Šค๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜๋Š” ๋„์ปค(Docker) ์ปจํ…Œ์ด๋„ˆ์˜ WebSphere Liberty์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

Flow

  1. ์ปจํผ๋Ÿฐ์Šค ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‚ฌ์šฉ์ž๊ฐ€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ ‘์†ํ•ด ๋ฐœํ‘œ์ž(speaker) ๋ชฉ๋ก์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  2. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๊ฐ€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๋ฐœํ‘œ์ž(speaker)์™€ ์—ฐ๊ฒฐํ•ด ๋ฐœํ‘œ์ž ๋ชฉ๋ก์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
  3. ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐœํ‘œ์ž๋ฅผ ์„ ํƒํ•˜๊ณ , ๋ฐœํ‘œ์ž ์ด๋ฆ„์„ ํด๋ฆญํ•ด ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  4. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๊ฐ€ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ์„ธ์…˜(session)๊ณผ ์—ฐ๊ฒฐํ•ด ๋ฐœํ‘œ์ž์˜ ์„ธ์…˜ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
  5. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ์ผ์ •(schedule)๊ณผ ์—ฐ๊ฒฐํ•ด ๋ฐœํ‘œ์ž์˜ ์ผ์ •์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
  6. ์‚ฌ์šฉ์ž๋Š” ํˆฌํ‘œ(vote) ์„น์…˜์„ ๊ฒ€์ƒ‰ํ•ด ์„ธ์…˜ ์ˆœ์œ„๋ฅผ ํ™•์ธํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Components

IBM Cloud Kubernetes Service

IBM Cloud ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์„œ๋น„์Šค๋Š” IBM ํด๋ผ์šฐ๋“œ ์ƒ์—์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ(Kubernetes Cluster) ๋ฐ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ(Docker Container) ๊ธฐ๋ฐ˜์˜ ๊ณ ๊ฐ€์šฉ์„ฑ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ด€๋ฆฌ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Kubernetes Cluster

๋‚˜๋งŒ์˜ ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ๋ฅผ ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌํ•˜๊ณ , ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ์—”์ง„์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

IBM Cloud DevOps Toolchain Service

๊ฐœ๋ฐœ, ๋ฐฐํฌ ๋ฐ ์šด์˜ ์ž‘์—…์„ ์ง€์›ํ•˜๋Š” ๋„๊ตฌ ํ†ตํ•ฉ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

MicroProfile

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ ์ž๋ฐ”๋ฅผ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜์— ์ตœ์ ํ™”์‹œํ‚ต๋‹ˆ๋‹ค

Microservice Builder

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐ์šฐ๊ณ , ๋นŒ๋“œํ•˜๊ณ , ์šด์˜ํ•˜๋ฉฐ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค

WebSphere Liberty

๋™์ ์ด๋ฉฐ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด Java EE ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋กœ์„œ ๊ธฐ๋™ ์‹œ๊ฐ„์ด ๋น ๋ฅด๊ณ , ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ฐ€์ ธ ์˜ค๊ธฐ ์œ„ํ•œ ์„œ๋ฒ„ ์žฌ์‹œ์ž‘์ด ์—†์œผ๋ฉฐ, ๊ฐ„๋‹จํ•œ XML ์„ค์ •์˜ ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Technologies

ํด๋ผ์šฐ๋“œ

์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ์ปดํ“จํŒ… ๋ฐ IT ๋ฆฌ์†Œ์Šค์— ์—‘์„ธ์Šคํ•ฉ๋‹ˆ๋‹ค

์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜

์ปจํ…Œ์ด๋„ˆํ˜• ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐฐํฌ, ์Šค์ผ€์ผ๋ง ๋ฐ ๊ด€๋ฆฌ์˜ ์ž๋™ํ™”.

Java

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์•ˆ์ „ํ•œ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด.

Microservices

ํด๋ผ์šฐ๋“œ ๋‚ด ์ตœ์‹  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์„ฑ์˜ ๊ตฌ์„ฑ์š”์†Œ ์ œ๊ณต์„ ์œ„ํ•ด ๊ฒฝ๋Ÿ‰ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋Š” ์„ธ๋ถ„ํ™”๋œ ์•ฝ๊ฒฐํ•ฉ ์„œ๋น„์Šค๋“ค์˜ ์ง‘ํ•ฉ.

Related Blogs

๊ท€ํ•˜๊ฐ€ ์ž…๋ ฅํ•œ ์‡ผํŠธ์ฝ”๋“œ ๊ฒ€์ƒ‰์กฐ๊ฑด์— ๋งค์น˜๋˜๋Š” ํฌ์ŠคํŒ…์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Related Links

์ด์ œ Kubernetes๋ฅผ IBM Cloud Container Service์—์„œ ์‚ฌ์šฉํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜๋ฌธ)

IBM Cloud Container Service๋Š” ์ด์ œ Docker์™€ Kubernetes๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ๊ฐ•๋ ฅํ•œ ํˆด, ์ง๊ด€์ ์ธ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ๋ฐ ๋นŒํŠธ์ธ ๋ณด์•ˆ๊ณผ ์™„๋ฒฝํ•œ isolation ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์™€ ๋„์ปค๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ถ„์‚ฐํ˜• GitLab ๊ตฌ์ถ•ํ•˜๊ธฐ

์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ปจํ…Œ์ด๋„ˆ์˜ ์ „์ฒด ์—ญ๋Ÿ‰์„ ์†Œ๊ฐœํ•˜๊ณ , ๊ธฐ์กด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํด๋ผ์šฐ๋“œ๋กœ ์™„๋ฒฝํ•˜๊ฒŒ ์ด๋™์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.