cb dragonfly features - cloud-barista/cb-dragonfly GitHub Wiki

CB-Dragonfly ๊ธฐ๋Šฅ

  ๋ฉ€ํ‹ฐํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ ๋ชจ๋‹ˆํ„ฐ๋ง ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์„ธ๋ถ€ ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

1. ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ๊ธฐ๋Šฅ

  ๋ฉ€ํ‹ฐํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ ์—ฐ๋™ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋Š” CB-Dragonfly ์‚ฌ์šฉ์ž์˜ ์‘์šฉ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ API์™€ ํ™œ์šฉ์„ ์œ„ํ•œ ๋ช…๋ น์–ด๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

  • CB-Dragonfly REST API ์ œ๊ณต
    REST(Representational State Transfer) ํ™˜๊ฒฝ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ REST API ๋Ÿฐํƒ€์ž„ ์„œ๋ฒ„ ๋ฐ ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฒฝ์šฐ ๋ณ„๋„ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๊ฐœ๋ฐœ ์–ธ์–ด๋ณ„ REST ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  • CB-Dragonfly gRPC API ์ œ๊ณต
    Go ์–ธ์–ด ํ™˜๊ฒฝ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ gRP ์„œ๋ฒ„ ๋ฐ ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. Go ์–ธ์–ด ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์‚ฌ์šฉ์ž๋Š” gRPC ์„œ๋ฒ„ ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  • CB-Dragonfly CLI ๋„๊ตฌ ์ œ๊ณต
    ํ„ฐ๋ฏธ๋„ ํ™˜๊ฒฝ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ CLI ํด๋ผ์ด์–ธํŠธ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ํ„ฐ๋ฏธ๋„ ํ™˜๊ฒฝ ์‚ฌ์šฉ์ž๋Š” CLI ํด๋ผ์ด์–ธํŠธ ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ CB-Dragonfly์˜ ๊ธฐ๋Šฅ๋“ค์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

2. ๋ชจ๋‹ˆํ„ฐ๋ง ์—์ด์ „ํŠธ ์ž๋™ ์„ค์น˜ ๊ธฐ๋Šฅ

  ๋ชจ๋‹ˆํ„ฐ๋ง ์—์ด์ „ํŠธ ์ž๋™ ์„ค์น˜ ๊ธฐ๋Šฅ์€ CB-Dragonfly์˜ API๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฉ€ํ‹ฐํด๋ผ์šฐ๋“œ VM์— ๋ชจ๋‹ˆํ„ฐ๋ง ์—์ด์ „ํŠธ๋ฅผ ์ž๋™์œผ๋กœ ์„ค์น˜ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.

3. ๋ฉ€ํ‹ฐํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ ๋ชจ๋‹ˆํ„ฐ๋ง ๊ธฐ๋Šฅ

  ๋ฉ€ํ‹ฐํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ ๋ชจ๋‹ˆํ„ฐ๋ง ๊ธฐ๋Šฅ์€ ์ด์ข…์˜ ์—ฌ๋Ÿฌ ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ๋ฅผ Pull ๋˜๋Š” Push ๋ฐฉ์‹์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ CB-Dragonfly ๋‹จ์ผ API๋ฅผ ํ†ตํ•ด ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฉ”ํŠธ๋ฆญ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ํŽธ์˜์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค. ๋ชจ๋‹ˆํ„ฐ๋ง ์ง€ํ‘œ๋Š” VM ๋ชจ๋‹ˆํ„ฐ๋ง ์ง€ํ‘œ ๋ฐ MCIS ๋ชจ๋‹ˆํ„ฐ๋ง ์ง€ํ‘œ๋ฅผ ํฌํ•จํ•˜์—ฌ ์ด 62๊ฐ€์ง€์ด๋ฉฐ ๋ฉ€ํ‹ฐํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ ๋ชจ๋‹ˆํ„ฐ๋ง ๊ฐœ๋…๋„๋Š” ๊ทธ๋ฆผ 5๊ณผ ๊ฐ™๊ณ  ์„ธ๋ถ€ ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค


๊ทธ๋ฆผ 5: ๋ฉ€ํ‹ฐํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ ๋ชจ๋‹ˆํ„ฐ๋ง ๊ฐœ๋…๋„

  • Pull ๋ฐฉ์‹ ๊ธฐ๋ฐ˜ ๋ฉ€ํ‹ฐํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ ๋ชจ๋‹ˆํ„ฐ๋ง
    ํŠน์ • ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•œ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฉ”ํŠธ๋ฆญ ์ˆ˜์ง‘ ๋ฐ ์ €์žฅํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ์„ธ๋ถ€ ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

    • ๋ชจ๋‹ˆํ„ฐ๋ง ์ง€ํ‘œ๊ฐ’ ์ˆ˜์ง‘
      • ๊ทธ๋ฆผ 6์˜ Pull ๋ฐฉ์‹๊ณผ ๊ฐ™์ด ๋ชจ๋‹ˆํ„ฐ๋ง ์—์ด์ „ํŠธ์—๊ฒŒ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฉ”ํŠธ๋ฆญ ์ˆ˜์ง‘ ๋ฐ ์‘๋‹ต ์š”์ฒญ
      • ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฉ”ํŠธ๋ฆญ, MICS ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฉ”ํŠธ๋ฆญ ์ˆ˜์ง‘
    • ๋ชจ๋‹ˆํ„ฐ๋ง ์ง€ํ‘œ๊ฐ’ ๊ฐ€๊ณต
      • ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฉ”ํŠธ๋ฆญ, ์ผ์ • ์‹œ๊ฐ„ ์ˆ˜์ง‘ํ•œ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฉ”ํŠธ๋ฆญ ํ†ต๊ณ„์น˜(Min, Max, Avg), MICS ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฉ”ํŠธ๋ฆญ ๊ฐ€๊ณต
      • ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์‹œ์ (On-demand)์˜ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฉ”ํŠธ๋ฆญ ๊ฐ’ ์ˆ˜์ง‘ ๋ฐ ์ œ๊ณต ๊ฐ€๋Šฅ
    • ๊ฐ€๊ณตํ•œ ๋ชจ๋‹ˆํ„ฐ๋ง ์ง€ํ‘œ๊ฐ’ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ €์žฅ
  • Push ๋ฐฉ์‹ ๊ธฐ๋ฐ˜ ๋ฉ€ํ‹ฐํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ ๋ชจ๋‹ˆํ„ฐ๋ง
    ํŠน์ • ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•œ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฉ”ํŠธ๋ฆญ ์ˆ˜์ง‘ ๋ฐ ์ €์žฅํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ์„ธ๋ถ€ ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

    • CB-Dragonfly์˜ ๋ชจ๋‹ˆํ„ฐ๋ง ์ •์ฑ… ์„ค์ •
      • CSP๋ณ„ ๋ชจ๋‹ˆํ„ฐ๋ง, VM๋ณ„ ๋ชจ๋‹ˆํ„ฐ๋ง ๊ธฐ๋Šฅ ์ง€์›
    • ๋ชจ๋‹ˆํ„ฐ๋ง ์ง€ํ‘œ๊ฐ’ ์ˆ˜์ง‘
      • ๊ทธ๋ฆผ 6์˜ Push ๋ฐฉ์‹๊ณผ ๊ฐ™์ด ๋ชจ๋‹ˆํ„ฐ๋ง ์—์ด์ „ํŠธ๋กœ๋ถ€ํ„ฐ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋ง ์ง€ํ‘œ๊ฐ’์„ ์ „๋‹ฌ๋ฐ›์Œ
    • ์ผ์ • ์‹œ๊ฐ„ ์ˆ˜์ง‘ํ•œ ๋ชจ๋‹ˆํ„ฐ๋ง ์ง€ํ‘œ๊ฐ’ ํ†ต๊ณ„์น˜(Min, Max, Avg) ๊ฐ€๊ณต
    • ๋ชจ๋‹ˆํ„ฐ๋ง ์—์ด์ „ํŠธ์˜ ๊ฐœ์ˆ˜์— ๋”ฐ๋ผ ๋ชจ๋‹ˆํ„ฐ๋ง ์ง€ํ‘œ ํ†ต๊ณ„ ๊ฐ€๊ณต ๋ชจ๋“ˆ์ด ์œ ์—ฐํ•˜๊ฒŒ ํ™•์žฅ ๋ฐ ์ถ•์†Œ
    • ๊ฐ€๊ณตํ•œ ๋ชจ๋‹ˆํ„ฐ๋ง ์ง€ํ‘œ๊ฐ’ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ €์žฅ


๊ทธ๋ฆผ 6: ๋ชจ๋‹ˆํ„ฐ๋ง Pull ๋ฐฉ์‹๊ณผ Push ๋ฐฉ์‹ ๊ฐœ๋…๋„

4. ์ด์ƒ์น˜ ๋ฉ”ํŠธ๋ฆญ ์‚ฌ์šฉ์ž ์•Œ๋ฆผ ๊ธฐ๋Šฅ

  ์ด์ƒ์น˜ ๋ฉ”ํŠธ๋ฆญ ์‚ฌ์šฉ์ž ์•Œ๋ฆผ ๊ธฐ๋Šฅ์€ ๋ฉ€ํ‹ฐํด๋ผ์šฐ๋“œ ๋ชจ๋‹ˆํ„ฐ๋ง ์ด์ƒ์น˜ ๋ฉ”ํŠธ๋ฆญ ์•Œ๋ฆผ ๋ฉ€ํ‹ฐํด๋ผ์šฐ๋“œ VM ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฉ”ํŠธ๋ฆญ ์ค‘ ์ด์ƒ์น˜๊ฐ€ ๊ฐ์ง€(์•Œ๋žŒ ์ง„๋‹จ)๋  ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž์—๊ฒŒ Slack ๋˜๋Š” SMTP๋กœ ์•Œ๋ฆผ์„ ์ œ๊ณตํ•œ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์•Œ๋ฆผ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ž˜ ๊ทธ๋ฆผ 7๊ณผ ๊ฐ™์ด CB-Dragonfly API๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์•Œ๋ฆผ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋ฐ ์•Œ๋ฆผ ํƒœ์Šคํฌ๋ฅผ ์ƒ์„ฑํ•ด์•ผํ•œ๋‹ค.


๊ทธ๋ฆผ 7: CB-Dragonfly ์•Œ๋ฆผ ๊ธฐ๋Šฅ ํ™œ์šฉ์„ ์œ„ํ•œ ๋™์ž‘ ํ๋ฆ„๋„

  • ์•Œ๋ฆผ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ
    ์‚ฌ์šฉ์ž๊ฐ€ ์•Œ๋ฆผ์„ ๋ฐ›์„ ๋ฐฉ๋ฒ•์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์„ธ๋ถ€ ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

    • ์•Œ๋žŒ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋“ฑ๋ก
      • Slack, SMTP ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ์ง€์›
  • ์•Œ๋ฆผ ํƒœ์Šคํฌ
    ์‚ฌ์šฉ์ž๊ฐ€ ์›Œ์น˜ํ•  ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฉ”ํŠธ๋ฆญ ๋ฐ ์•Œ๋žŒ ๋ฐœ์ƒ ์ž„๊ณ„์น˜ ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์„ธ๋ถ€ ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

    • ์›Œ์น˜ํ•  ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฉ”ํŠธ๋ฆญ ์ง€ํ‘œ๊ฐ’ ์„ค์ •
      • CpuUtilization ๋“ฑ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฉ”ํŠธ๋ฆญ ์„ธ๋ถ€ ์ง€ํ‘œ๊ฐ’์„ ์ง€์ •
    • ์•Œ๋žŒ ๋ ˆ๋ฒจ ์„ค์ •
      • warning, critical ์•Œ๋žŒ ๋ ˆ๋ฒจ ์ง€์›
  • ์•Œ๋ฆผ ์ง„๋‹จ

    • ์•Œ๋ฆผ ํƒœ์Šคํฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฉ”ํŠธ๋ฆญ ์„ธ๋ถ€ ์ง€ํ‘œ ์›Œ์น˜
    • ์•Œ๋ฆผ ๋ฐœ์ƒ ์‹œ ์•Œ๋ฆผ ๋ฐœ์ƒ ๋กœ๊ทธ ์ƒ์„ฑ
  • ์•Œ๋ฆผ ์ƒ์„ฑ

    • ์•Œ๋ฆผ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์•Œ๋ฆผ ๋ฉ”์„ธ์ง€ ์ „์†ก
โš ๏ธ **GitHub.com Fallback** โš ๏ธ