SLI SLO - 100-hours-a-week/9-team-Devths-WIKI GitHub Wiki

๋ณธ ๋ฌธ์„œ๋Š” ํ˜„์žฌ V1 ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑํ•œ ์ดˆ์•ˆ์ด๋ฉฐ, 1์ฐจ ์™„์„ฑ ๋ฐฐํฌ, V2~ ์ดํ›„ ์ž‘์„ฑ์„ ์ง„ํ–‰ ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

์„œ๋น„์Šค ์ˆ˜์ค€ ๋ชฉํ‘œ(SLO) / ์„œ๋น„์Šค ์ˆ˜์ค€ ์ง€ํ‘œ(SLI)

์ค‘์  ์„œ๋น„์Šค ๊ธฐ์ค€ ์„œ๋น„์Šค ์ˆ˜์ค€ ๋ชฉํ‘œ ์„ค์ • ๋„ˆ๋ฌด ๋†’๊ฒŒ ์žก์œผ๋ฉด ์„œ๋น„์Šค ์šด์˜ ๋น„์šฉ ํญ์ฆ, ๋„ˆ๋ฌด ๋‚ฎ๊ฒŒ ์žก์œผ๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ๋– ๋‚จ.

1. ์ด๋ ฅ์„œ ๋ถ„์„ ์„œ๋น„์Šค

๊ธฐ๋‹ค๋ฆผ์ด ์ง€๋ฃจํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.

  • ์ค‘์š” ํ‚ค์›Œ๋“œ: ์„ฑ๊ณต ์—ฌ๋ถ€ ์ฒด๊ฐ ๋Œ€๊ธฐ์‹œ๊ฐ„
  • SLO ๋ชฉํ‘œ: ์ด๋ ฅ์„œ๋ฅผ ์˜ฌ๋ฆฌ๋ฉด ์˜ค๋ฅ˜ ์—†์ด ๋ถ„์„๋˜์–ด์•ผ ํ•˜๊ณ , ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ธฐ๋‹ค๋ฆฌ๋ฉด ์•ˆ๋œ๋‹ค.
    • ์ด๋ ฅ์„œ ๋ถ„์„์—์„œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์‹œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ์ €ํ•˜
    • ์˜ค๋ž˜ ๊ธฐ๋‹ค๋ฆด ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž ์ดํƒˆ ๋ฐœ์ƒ
    • 99%์˜ ์œ ํšจํ•œ ์ด๋ ฅ์„œ๋Š” ์—…๋กœ๋“œ ์‹คํŒจ ์—†์ด ๋ถ„์„๋˜์–ด์•ผํ•œ๋‹ค.
    • 90%์˜ ์‚ฌ์šฉ์ž๋Š” 30์ดˆ ์ด๋‚ด์— ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•„์•ผํ•œ๋‹ค.
  • SLI ์ธก์ • ๋ฐฉ์‹
    • ์ด๋ ฅ์„œ ์ฒ˜๋ฆฌ ์„ฑ๊ณต๋ฅ : (๋ถ„์„ ์™„๋ฃŒ ๋กœ๊ทธ ์ˆ˜ / ์—…๋กœ๋“œ ์š”์ฒญ ๋กœ๊ทธ ์ˆ˜) * 100
    • E2E ์ฒ˜๋ฆฌ ์‹œ๊ฐ„: ์ด๋ ฅ์„œ ์—…๋กœ๋“œ ํ›„ ์ข…ํ•ฉ ๋ถ„์„ํ•˜๊ธฐ ๋ฒ„ํŠผ ํด๋ฆญํ•˜์—ฌ ๋ถ„์„ ์‹œ๊ฐ„ ํ›„, ๋ถ„์„ ์™„๋ฃŒ ๊ฒฐ๊ณผ DB ์—…๋ฐ์ดํŠธ ์‹œ๊ฐ„ (ํ˜„์žฌ ์•Œ๋ฆผ์ด ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๋‚˜, ํ‘ธ์‹œ ์•Œ๋ฆผ ๋“ฑ์˜ ์‹œ์Šคํ…œ ์•Œ๋ฆผ์€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, DB ๊ธฐ์ค€์œผ๋กœ ๋กœ๊ทธ ์ˆ˜์ง‘)

2. AI ๋ชจ์˜ ๋ฉด์ ‘ ์„œ๋น„์Šค

๋Œ€ํ™”๊ฐ€ ๋Š๊ธฐ์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.

  • ์ค‘์š” ํ‚ค์›Œ๋“œ: ์ฒซ ๋ฐ˜์‘ ์†๋„
  • SLO ๋ชฉํ‘œ: ๋ง์„ ๊ฑธ๊ฑฐ๋‚˜, ์‘๋‹ต์„ ํ•˜๋ฉด ์ฆ‰๊ฐ์ ์œผ๋กœ ๋ฐ˜์‘ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋А๊ปด์•ผ ํ•œ๋‹ค.
    • ๋ฉด์ ‘์˜ ํ˜ธํก์ด ๋Š์–ด์ง€๋ฉด ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์ด ์ €ํ•˜
    • ๋ฉด์ ‘ ์ง„ํ–‰ ์ค‘ ์˜ค๋ฅ˜๋กœ ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง€๋ฉด, ์‚ฌ์šฉ์ € ๊ฒฝํ—˜์ด ์ €ํ•˜๋˜๊ณ , ์ดํƒˆ ๋ฐœ์ƒ
    • 95%์˜ ๋Œ€ํ™”์—์„œ AI๋Š” 2์ดˆ ์ด๋‚ด์— ์‘๋‹ต์„ ์‹œ์ž‘ํ•ด์•ผํ•œ๋‹ค.
    • ๋ฉด์ ‘ ์ง„ํ–‰ ์ค‘ ์˜ค๋ฅ˜๋กœ ๋Œ€ํ™”๊ฐ€ ์ค‘๋‹จ๋˜๋Š” ๊ฒฝ์šฐ๋Š” 1% ๋ฏธ๋งŒ์ด์–ด์•ผํ•œ๋‹ค.
  • SLI ์ธก์ • ๋ฐฉ์‹
    • TTFT(Time To First Token): FastAPI ์—์„œ ์š”์ฒญ ์ˆ˜์‹  ์‹œ๊ฐ ~ ์ฒซ ์ŠคํŠธ๋ฆฌ๋ฐ ์ฒญํฌ ๋ฐœ์†ก ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ ์ธก์ •
    • ์„ธ์…˜ ๋น„์ •์ƒ ์ข…๋ฃŒ์œจ: (์ „์ฒด ์ฑ„ํŒ… ์š”์ฒญ ์ˆ˜ - "incomplete": true ์ธ ๋ฉ”์‹œ์ง€ ์ˆ˜) / ์ „์ฒด ์ฑ„ํŒ… ์š”์ฒญ ์ˆ˜ * 100 . DB์˜ย ai_chat_messagesย ํ…Œ์ด๋ธ”์„ ์กฐํšŒํ–ˆ์„ ๋•Œ,ย metadataย ์ปฌ๋Ÿผ(JSON)์—ย "incomplete": trueย ๊ฐ’์ด ๋“ค์–ด์žˆ๋‹ค๋ฉด ์ค‘๊ฐ„์— ๋Š๊ธด ์‹คํŒจํ•œ ๋Œ€ํ™”

3. ์›น ์‚ฌ์ดํŠธ ๋ฐ˜์‘ ์†๋„

์‚ฌ์šฉ์ด ๋‹ต๋‹ตํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.

  • ์ค‘์š” ํ‚ค์›Œ๋“œ: ๋น ๋ฅธ ๋ฐ˜์‘
  • SLO ๋ชฉํ‘œ: ๋งํฌ ๋ฐ ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ, ํ™”๋ฉด์˜ ์ฃผ์š” ๋‚ด์šฉ์ด ๋ฐ”๋กœ ๋ณด์—ฌ์•ผํ•œ๋‹ค.
    • ํ™”๋ฉด ์š”์†Œ๊ฐ€ ๋กœ๋”ฉ์ค‘์— ๋ฐ”๋€Œ๋ฉด ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ์ €ํ•˜
    • ํ™”๋ฉด ๋กœ๋”ฉ์ด ๋А๋ ค์ง€๊ฑฐ๋‚˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์‚ฌ์šฉ์ž ์ดํƒˆ ๋ฐœ์ƒ
    • 90%์ด์ƒ์˜ ํŽ˜์ด์ง€ ๋กœ๋”ฉ์€ 2.5์ดˆ ์ด๋‚ด์— ์™„๋ฃŒํ•ด์•ผํ•œ๋‹ค.
    • ํด๋ฆญ, ์ž…๋ ฅ ์‹œ 100ms ์ด๋‚ด์— ๋ฐ˜์‘ํ•ด์•ผํ•œ๋‹ค.
  • SLI ์ธก์ • ๋ฐฉ์‹
    • LCP (Largest Contentful Paint)
    • FID (First Input Delay)

4. ๋กœ๊ทธ์ธ / ํšŒ์›๊ฐ€์ž… ์‘๋‹ต

์„œ๋น„์Šค ์ ‘์†์ด ์ •์ƒ์ ์ด์–ด์•ผ ํ•œ๋‹ค.

  • ์ค‘์š” ํ‚ค์›Œ๋“œ: ์ •์ƒ ์ž‘๋™
  • SLO ๋ชฉํ‘œ: ๋กœ๊ทธ์ธ, ๋ฐ ํšŒ์›๊ฐ€์ž… ๊ณผ์ •์ด ์ •์ƒ์ ์œผ๋กœ ์ง„ํ–‰๋˜์–ด์•ผํ•œ๋‹ค.
    • ์„œ๋น„์Šค์˜ ์ง„์ž… ์ง€์ ์ด๋ฏ€๋กœ, ์—๋Ÿฌ ๋ฐœ์ƒ์‹œ ์‚ฌ์šฉ์ž ์œ ์ž…์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
    • ์—„๊ฒฉํ•œ ์—๋Ÿฌ ๊ด€๋ฆฌ๊ฐ€ ์ง„ํ–‰๋˜์–ด์•ผํ•œ๋‹ค.
    • 99.9%์˜ ์‚ฌ์šฉ์ž๋Š” ํšŒ์›๊ฐ€์ž…/๋กœ๊ทธ์ธ ๊ณผ์ •์—์„œ ์‹œ์Šคํ…œ ์—๋Ÿฌ๋ฅผ ๊ฒฝํ—˜ํ•˜์ง€ ์•Š์•„์•ผํ•œ๋‹ค.
  • SLI ์ธก์ • ๋ฐฉ์‹
    • ์ธ์ฆ ํ”„๋กœ์„ธ์Šค ์„ฑ๊ณต๋ฅ : (๋กœ๊ทธ์ธ ์„ฑ๊ณต 200 OK ์ˆ˜ / ์ „์ฒด ๋กœ๊ทธ์ธ ์‹œ๋„ ์ˆ˜) * 100ย (401 ์ธ์ฆ ์‹คํŒจ๋Š” ์‹œ์Šคํ…œ ์‹คํŒจ๋กœ ์น˜์ง€ ์•Š์•„์•ผ ํ•จ)

5. AI ์‘๋‹ต ํ’ˆ์งˆ

AI ์˜ ์‘๋‹ต์ด ์ €ํ’ˆ์งˆ์ด ์•„๋‹ˆ์–ด์•ผํ•œ๋‹ค.

  • ์ค‘์š” ํ‚ค์›Œ๋“œ: ์ ์ ˆํ•œ ์‘๋‹ต, ์‘๋‹ต ํ’ˆ์งˆ ๊ด€๋ฆฌ
  • SLO ๋ชฉํ‘œ: AI ๊ฐ€ ์งˆ๋ฌธ์— ๋งž๋Š” ์ ์ ˆํ•œ ์‘๋‹ต์„ ํ•ด์•ผํ•œ๋‹ค.
    • 200 OK๊ฐ€ ๋‚˜์™€๋„ ์—‰๋šฑํ•œ ์†Œ๋ฆฌ๋ฅผ ํ•˜๋Š” ๊ฒฝ์šฐ ์„œ๋น„์Šค ๋ฌธ์ œ๋ผ๊ณ  ์ธ์‹
    • 200 OK ํ›„ ์‘๋‹ต์ด ์ œ๋Œ€๋กœ ์˜ค์ง€ ์•Š๋Š” ๊ฒฝ์šฐ(๋นˆ ์‘๋‹ต) ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ์ €ํ•˜
    • ์‘๋‹ต์€ ํ•˜์˜€์œผ๋‚˜, ๋งฅ๋ฝ์— ๋งž์ง€ ์•Š๋Š” ์‘๋‹ต์„ ํ•˜๋Š”๊ฒฝ์šฐ, ์‚ฌ์šฉ์ž ์ดํƒˆ
    • ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ต๋ณ€์— ๋งŒ์กฑํ•˜์ง€ ์•Š์•„ ๋‹ต๋ณ€ ์žฌ ์ƒ์„ฑ์„ ์‹œ๋„ํ•˜๋Š” ๋น„์œจ์ด 15% ๋ฏธ๋งŒ์ด์–ด์•ผ ํ•œ๋‹ค.
  • SLI ์ธก์ • ๋ฐฉ์‹
    • ์žฌ์ƒ์„ฑ ์š”์ฒญ ๋น„์œจ: FE ์—์„œ ๋‹ค์‹œ ์ƒ์„ฑ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋Š” ์ด๋ฒคํŠธ ์ˆ˜์ง‘ (RUM Custom event)