๋ฉ”์„ธ์ง€์— ์‘๋‹ตํ•˜๊ณ  ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌํ•˜๊ธฐ  

๋ฉ”์‹œ์ง€ ์ŠคํŠธ๋ฆผ์— ๋Œ€์‘ํ•˜์—ฌ ์˜คํ† ์Šค์ผ€์ผ๋˜๋Š” ์•ก์…˜ ์ƒ์„ฑํ•˜๊ธฐ

Last updated

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


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

By Daniel Krook

Overview

์ด ์ฝ”๋“œ ํŒจํ„ด์€ ๋ฉ”์„ธ์ง€์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ ๋ ˆ์ฝ”๋“œ์— ๋Œ€ํ•œ ์ŠคํŠธ๋ฆผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์„œ๋ฒ„๋ฆฌ์Šค, ์ด๋ฒคํŠธ ์ค‘์‹ฌ ์•„ํ‚คํ…์ฒ˜์˜ ์žฅ์ ์„ ๋ช…ํ™•ํ•˜๊ฒŒ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์ด ๊ณผ์ •์—์„œ๋Š” Apache Kafka ๊ธฐ๋ฐ˜์˜ IBM Message Hub์— ๋ฉ”์‹œ์ง€๋ฅผ ์“ฐ๊ณ  ์ฝ๋Š” JavaScript๋กœ ์ž‘์„ฑ๋œ ๋‘ ๊ฐœ์˜ OpenWhisk ์•ก์…˜์„ ๋ณด์—ฌ์ฃผ๋ฉฐ, ์•ก์…˜์ด ๋ฐ์ดํ„ฐ ์„œ๋น„์Šค์™€ ํ•จ๊ป˜ ๋™์ž‘ํ•˜๋Š”์ง€ ๋ฉ”์„ธ์ง€ ์ด๋ฒคํŠธ์— ์‘๋‹ตํ•˜์—ฌ ๋กœ์ง์„ ์‹คํ–‰ํ•˜๋Š”์ง€ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์ฒซ๋ฒˆ์งธ ์•ก์…˜์€ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฉ”์„ธ์ง€ ์ŠคํŠธ๋ฆผ์„ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ ˆ์ฝ”๋“œ๋Š” OpenWhisk ์‹œํ€€์Šค(์ฒด์ธ์—์„œ ์„ ์–ธ์ ์œผ๋กœ ์•ก์…˜์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•)์—์„œ ๋‹ค๋ฅธ ์•ก์…˜์œผ๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ๋‘๋ฒˆ์งธ ์•ก์…˜์€ ๋ฉ”์„ธ์ง€๋ฅผ ์ทจํ•ฉํ•˜๊ณ  ๋ณ€ํ™”๋œ ์š”์•ฝ ๋ฉ”์‹œ์ง€๋ฅผ ๋‹ค๋ฅธ ํ† ํ”ฝ์— ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค.

Flow

  1. ๊ฐœ๋ฐœ์ž๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋ฅผ ๊ฒŒ์‹œํ•˜๊ณ  Apache Kafka ํ† ํ”ฝ์— ์ƒˆ๋กœ์šด JSON ๊ฐ์ฒด ๋ฐฐ์—ด์„ ๋†“์Šต๋‹ˆ๋‹ค.
  2. ๋ฉ”์‹œ์ง€๋Š” ํ•ด๋‹น ํ† ํ”ฝ์œผ๋กœ ๋ณด๋‚ด์ง„ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•˜๋Š” ํŠธ๋ฆฌ๊ฑฐ๋กœ ๋ถˆ๋ฆฌ๋Š” ์ด๋ฒคํŠธ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
  3. ์ด ํŠธ๋ฆฌ๊ฑฐ๋Š” ๋ฉ”์‹œ์ง€ ๋ฐฐ์—ด์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ํŒŒ์‹ฑํ•˜๋Š” ๋ฃฐ์— ๋”ฐ๋ผ ์ฒซ ๋ฒˆ์งธ ์•ก์…˜์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
  4. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ฉ”์‹œ์ง€ ๋ฐฐ์—ด์„ ๋‹จ์ผ ๋ฉ”์‹œ์ง€๋กœ ์ง‘๊ณ„ํ•˜๊ฑฐ๋‚˜ ์ถ•์†Œํ•˜๊ธฐ ์œ„ํ•ด ์ด์–ด์„œ ๋‹ค๋ฅธ ์•ก์…˜์œผ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
  5. ๋‘ ๋ฒˆ์งธ ์•ก์…˜์€ ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ฒ˜๋ฆฌ๋˜๋„๋ก ํ•ด๋‹น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ๋˜ ๋‹ค๋ฅธ ๋ฉ”์‹œ์ง€ ํ—ˆ๋ธŒ ํ์— ๋ฉ”์‹œ์ง€๋ฅผ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค.

Components

IBM Cloud Functions

ํ™•์žฅ์„ฑ์ด ๋›ฐ์–ด๋‚œ ์„œ๋ฒ„๋ฆฌ์Šค ํ™˜๊ฒฝ์ด๋ฉฐ, ์˜จ๋””๋งจ๋“œ ๋ฐฉ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. (FaaS - Function as a service๋กœ๋„ ๋ถˆ๋ฆผ)

Message Hub

ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ณ  ์ฒ˜๋ฆฌ๋Ÿ‰์ด ๋งŽ์€ ๋ฉ”์‹œ์ง€ ๋ฒ„์Šค๋กœ์„œ ๊ฐœ๋ฐฉํ˜• ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

Technologies

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

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

Messaging

Communication between systems by exchanging messages.

Serverless Computing

์ด๋ฒคํŠธ์— ๋Œ€์‘ํ•ด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ํ•˜๋Š” ์ด๋ฒคํŠธ-์•ก์…˜ ํ”Œ๋žซํผ(FaaS, Function as a service๋กœ๋„ ๋ถˆ๋ฆผ)์ž…๋‹ˆ๋‹ค.

Related Blogs

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

Related Links

์„œ๋ฒ„๋ฆฌ์Šค ์•„ํ‚คํ…์ณ๊ฐ€ ๊ฐ€์ง„ ๋งค๋ ฅ์ด ๋ฌด์—‡์ผ๊นŒ์š”?(์˜๋ฌธ)

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

์˜คํ”ˆ์†Œ์Šค, ์ด๋ฒคํŠธ ์ค‘์‹ฌ, ์„œ๋ฒ„๋ฆฌ์Šค ํ”Œ๋žซํผ์„ ๊ฐ–์ถ˜ ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ์•„ํ‚คํ…์ณ(์˜๋ฌธ)

์„œ๋ฒ„๋ฆฌ์Šค ์•„ํ‚คํ…์ฒ˜๋กœ ๊ตฌํ˜„๋œ ์ƒˆ๋กœ์šด ํด๋ผ์šฐ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ชจ๋ธ์ด ๋“ฑ์žฅํ•˜๋ฉด์„œ ๊ฐœ๋ฐœ์ž๋Š” ์ž์‹ ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“œ๋Š”๊ฒƒ์—๋Š” ๋” ์ง‘์ค‘ํ•˜๊ณ  ์ธํ”„๋ผ๋ฅผ ๊ด€๋ฆฌ๋Š” ์ข€ ๋œ ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. IBM์ด ์‹œ์ž‘ํ•œ OpenWhisk ํ”„๋กœ์ ํŠธ๋Š” ํด๋ผ์šฐ๋“œ ๊ณ ์œ ์˜ ์ด๋ฒคํŠธ ์ค‘์‹ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์˜คํ”ˆ ์†Œ์Šค ํ”Œ๋žซํผ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.