๋ถ์ฐ ์ถ์ ์ ๋ํ ์ฌ์ธต ๊ฐ์ด๋. ๋ณต์กํ ๋ถ์ฐ ์์คํ ์์ ์์ฒญ ํ๋ฆ ๋ถ์์ ์ํ ์ด์ , ๊ตฌํ, ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๋ค๋ฃน๋๋ค.
๋ถ์ฐ ์ถ์ : ์ต์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ์์ฒญ ํ๋ฆ ๋ถ์
์ค๋๋ ์ ๋ณต์กํ๊ณ ๋ถ์ฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ์์ ์ฌ๋ฌ ์๋น์ค์ ๊ฑธ์น ์์ฒญ์ ํ๋ฆ์ ์ดํดํ๋ ๊ฒ์ ์ฑ๋ฅ, ์์ ์ฑ, ํจ์จ์ ์ธ ๋๋ฒ๊น ์ ๋ณด์ฅํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๋ถ์ฐ ์ถ์ ์ ์์ฒญ์ด ๋ค์ํ ์๋น์ค๋ฅผ ํต๊ณผํ ๋ ์ด๋ฅผ ์ถ์ ํ์ฌ ํ์ํ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํ๋ฉฐ, ์ด๋ฅผ ํตํด ๊ฐ๋ฐ ๋ฐ ์ด์ํ์ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์ ํํ ์ฐพ์๋ด๊ณ , ์ข ์์ฑ์ ์๋ณํ๋ฉฐ, ๋ฌธ์ ๋ฅผ ์ ์ํ๊ฒ ํด๊ฒฐํ ์ ์์ต๋๋ค. ์ด ๊ฐ์ด๋์์๋ ๋ถ์ฐ ์ถ์ ์ ๊ฐ๋ , ์ด์ , ๊ตฌํ ์ ๋ต ๋ฐ ์ค์ ์ฌ์ฉ ์ฌ๋ก์ ๋ํด ์์ธํ ์์๋ด ๋๋ค.
๋ถ์ฐ ์ถ์ ์ด๋ ๋ฌด์์ธ๊ฐ?
๋ถ์ฐ ์ถ์ ์ ๋ถ์ฐ ์์คํ ์ ํตํด ์์ฒญ์ด ์ ํ๋ ๋ ์ด๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ํ๋กํ์ผ๋งํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ธฐ์ ์ ๋๋ค. ์ด๋ ์์ฒญ ์๋ช ์ฃผ๊ธฐ์ ๋ํ ์ ์ฒด์ ์ธ ๋ทฐ๋ฅผ ์ ๊ณตํ์ฌ, ์ด๊ธฐ ์ง์ ์ ์์ ์ต์ข ์๋ต๊น์ง์ ๊ฒฝ๋ก๋ฅผ ๋ณด์ฌ์ค๋๋ค. ์ด๋ฅผ ํตํด ํน์ ์์ฒญ ์ฒ๋ฆฌ์ ์ด๋ค ์๋น์ค๊ฐ ๊ด๋ จ๋์ด ์๋์ง, ๊ฐ ์๋น์ค์์ ๋ฐ์ํ๋ ์ง์ฐ ์๊ฐ์ ์ผ๋ง์ธ์ง, ๊ทธ๋ฆฌ๊ณ ๊ทธ ๊ณผ์ ์์ ๋ฐ์ํ๋ ๋ชจ๋ ์ค๋ฅ๋ฅผ ์๋ณํ ์ ์์ต๋๋ค.
๊ธฐ์กด์ ๋ชจ๋ํฐ๋ง ๋๊ตฌ๋ ๊ฐ๋ณ ์๋น์ค๋ฅผ ๊ฒฉ๋ฆฌํ์ฌ ์ง์คํ๊ธฐ ๋๋ฌธ์ ๋ถ์ฐ ํ๊ฒฝ์์๋ ์ข ์ข ๋ถ์กฑํจ์ด ์์ต๋๋ค. ๋ถ์ฐ ์ถ์ ์ ์ ์ฒด ์์คํ ์ ๋ํ ํตํฉ๋ ๋ทฐ๋ฅผ ์ ๊ณตํ์ฌ ์ด๋ฌํ ๊ฒฉ์ฐจ๋ฅผ ํด์ํ๊ณ , ์ฌ๋ฌ ์๋น์ค์ ๊ฑธ์น ์ด๋ฒคํธ๋ฅผ ์ฐ๊ด์ํค๊ณ ๊ทธ๋ค ๊ฐ์ ๊ด๊ณ๋ฅผ ์ดํดํ ์ ์๊ฒ ํด์ค๋๋ค.
์ฃผ์ ๊ฐ๋
- ์คํฌ(Span): ์คํฌ์ ์ถ์ ๋ด์ ๋จ์ผ ์์ ๋จ์๋ฅผ ๋ํ๋ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์๋น์ค ๋ด์ ํน์ ์์ ์ด๋ ํจ์ ํธ์ถ์ ํด๋นํฉ๋๋ค. ์คํฌ์๋ ์์ ๋ฐ ์ข ๋ฃ ํ์์คํฌํ, ์์ ์ด๋ฆ, ์๋น์ค ์ด๋ฆ, ํ๊ทธ์ ๊ฐ์ ๋ฉํ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ฉ๋๋ค.
- ์ถ์ (Trace): ์ถ์ ์ ์์ฒญ์ด ๋ถ์ฐ ์์คํ ์ ํต๊ณผํ๋ ์ ์ฒด ๊ฒฝ๋ก๋ฅผ ๋ํ๋ ๋๋ค. ์ด๋ ์คํฌ๋ค์ ํธ๋ฆฌ๋ก ๊ตฌ์ฑ๋๋ฉฐ, ๋ฃจํธ ์คํฌ์ ์์ฒญ์ ์ด๊ธฐ ์ง์ ์ ์ ๋ํ๋ ๋๋ค.
- ์ถ์ ID(Trace ID): ์ถ์ ์ ํ ๋น๋ ๊ณ ์ ์๋ณ์๋ก, ๋์ผํ ์์ฒญ์ ์ํ๋ ๋ชจ๋ ์คํฌ์ ์ฐ๊ด์ํฌ ์ ์์ต๋๋ค.
- ์คํฌ ID(Span ID): ์ถ์ ๋ด์ ์คํฌ์ ํ ๋น๋ ๊ณ ์ ์๋ณ์์ ๋๋ค.
- ๋ถ๋ชจ ID(Parent ID): ๋ถ๋ชจ ์คํฌ์ ์คํฌ ID๋ก, ์ถ์ ๋ด ์คํฌ๋ค ๊ฐ์ ์ธ๊ณผ ๊ด๊ณ๋ฅผ ์ค์ ํฉ๋๋ค.
- ์ปจํ ์คํธ ์ ํ(Context Propagation): ์ถ์ ID, ์คํฌ ID ๋ฐ ๊ธฐํ ์ถ์ ๋ฉํ๋ฐ์ดํฐ๊ฐ ์์คํ ์ ํตํด ์์ฒญ์ด ์ ํ๋ ๋ ์๋น์ค ๊ฐ์ ์ ๋ฌ๋๋ ๋ฉ์ปค๋์ฆ์ ๋๋ค. ์ด๋ ์ผ๋ฐ์ ์ผ๋ก HTTP ํค๋๋ ๋ค๋ฅธ ๋ฉ์์ง ํ๋กํ ์ฝ์ ์ถ์ ์ปจํ ์คํธ๋ฅผ ์ฃผ์ ํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค.
๋ถ์ฐ ์ถ์ ์ ์ด์
๋ถ์ฐ ์ถ์ ์ ๊ตฌํํ๋ฉด ๋ณต์กํ ๋ถ์ฐ ์์คํ ์ ์ด์ํ๋ ์กฐ์ง์ ๋ค์๊ณผ ๊ฐ์ ๋ช ๊ฐ์ง ์ฃผ์ ์ด์ ์ ์ ๊ณตํฉ๋๋ค:
- ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง ๊ฐ์ : ์ฌ๋ฌ ์๋น์ค์ ๊ฑธ์น ์ฑ๋ฅ ๋ณ๋ชฉ ํ์๊ณผ ์ง์ฐ ์๊ฐ ๋ฌธ์ ๋ฅผ ์๋ณํ์ฌ ๋ ๋น ๋ฅธ ๊ทผ๋ณธ ์์ธ ๋ถ์ ๋ฐ ์ต์ ํ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
- ๋๋ฒ๊น ํฅ์: ์์ฒญ ํ๋ฆ์ ํฌ๊ด์ ์ผ๋ก ์ดํดํ์ฌ ์ฌ๋ฌ ์๋น์ค์ ๊ฑธ์ณ ๋ฐ์ํ๋ ์ค๋ฅ๋ฅผ ์ง๋จํ๊ณ ํด๊ฒฐํ๊ธฐ๊ฐ ๋ ์ฌ์์ง๋๋ค.
- ํ๊ท ํด๊ฒฐ ์๊ฐ(MTTR) ๋จ์ถ: ๋ฌธ์ ์ ์์ธ์ ์ ์ํ๊ฒ ํ์ ํ์ฌ ๋ค์ดํ์์ ์ต์ํํ๊ณ ์ ์ฒด ์์คํ ์์ ์ฑ์ ํฅ์์ํต๋๋ค.
- ์ข ์์ฑ์ ๋ํ ๋ ๋์ ์ดํด: ์๋น์ค ๊ฐ์ ๊ด๊ณ๋ฅผ ์๊ฐํํ์ฌ ์จ๊ฒจ์ง ์ข ์์ฑ๊ณผ ์ ์ฌ์ ์ธ ์ฅ์ ์ง์ ์ ๋๋ฌ๋ ๋๋ค.
- ๋ฆฌ์์ค ํ ๋น ์ต์ ํ: ํ์ฉ๋๊ฐ ๋ฎ๊ฑฐ๋ ๊ณผ๋ถํ๊ฐ ๊ฑธ๋ฆฐ ์๋น์ค๋ฅผ ์๋ณํ์ฌ ๋ ํจ์จ์ ์ธ ๋ฆฌ์์ค ํ ๋น ๋ฐ ์ฉ๋ ๊ณํ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
- ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ(Observability) ํฅ์: ์์คํ ๋์์ ๋ํ ๋ ๊น์ ์ดํด๋ฅผ ์ป์ด ์ฌ์ฉ์์๊ฒ ์ํฅ์ ๋ฏธ์น๊ธฐ ์ ์ ์ ์ฌ์ ์ธ ๋ฌธ์ ๋ฅผ ์ฌ์ ์ ์๋ณํ๊ณ ํด๊ฒฐํ ์ ์์ต๋๋ค.
๋ถ์ฐ ์ถ์ ๊ตฌํํ๊ธฐ
๋ถ์ฐ ์ถ์ ์ ๊ตฌํํ๋ ค๋ฉด ์ถ์ ๋ฐฑ์๋ ์ ํ, ์ฝ๋ ๊ณ์ธก(instrumenting), ์ปจํ ์คํธ ์ ํ ๊ตฌ์ฑ ๋ฑ ์ฌ๋ฌ ๋จ๊ณ๊ฐ ํฌํจ๋ฉ๋๋ค.
1. ์ถ์ ๋ฐฑ์๋ ์ ํ
์ฌ๋ฌ ์คํ ์์ค ๋ฐ ์์ฉ ์ถ์ ๋ฐฑ์๋๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ๊ฐ๊ฐ ๊ณ ์ ํ ์ฅ๋จ์ ์ด ์์ต๋๋ค. ์ธ๊ธฐ ์๋ ๋ช ๊ฐ์ง ์ต์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ์๊ฑฐ(Jaeger): ์๋ ์ฐ๋ฒ(Uber)์์ ๊ฐ๋ฐํ ์คํ ์์ค ์ถ์ ์์คํ ์ ๋๋ค. ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ์ ์ ํฉํ๋ฉฐ ์ถ์ ์ ์๊ฐํํ๊ธฐ ์ํ ์ฌ์ฉ์ ์นํ์ ์ธ ์น UI๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์งํจ(Zipkin): ์๋ ํธ์ํฐ(Twitter)์์ ๊ฐ๋ฐํ ์คํ ์์ค ์ถ์ ์์คํ ์ ๋๋ค. ํ์ฅ์ฑ๊ณผ ๋ค์ํ ์คํ ๋ฆฌ์ง ๋ฐฑ์๋ ์ง์์ผ๋ก ์ ๋ช ํฉ๋๋ค.
- ์คํํ ๋ ๋ฉํธ๋ฆฌ(OpenTelemetry): ์ฝ๋๋ฅผ ๊ณ์ธกํ๊ณ ์๊ฒฉ ์ธก์ ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ธฐ ์ํ ๋ฒค๋ ์ค๋ฆฝ์ ์ธ API๋ฅผ ์ ๊ณตํ๋ ์คํ ์์ค ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ ํ๋ ์์ํฌ์ ๋๋ค. ์๊ฑฐ, ์งํจ ๋ฑ ๋ค์ํ ์ถ์ ๋ฐฑ์๋๋ฅผ ์ง์ํฉ๋๋ค. ์คํํ ๋ ๋ฉํธ๋ฆฌ๋ ์ ๊ณ ํ์ค์ด ๋๊ณ ์์ต๋๋ค.
- ์์ฉ ์๋ฃจ์ : ๋ฐ์ดํฐ๋ (Datadog), ๋ด๋ ๋ฆญ(New Relic), ๋ค์ด๋ํธ๋ ์ด์ค(Dynatrace) ๋ฐ ๊ธฐํ ์์ฉ ๋ชจ๋ํฐ๋ง ํ๋ซํผ๋ ๋ถ์ฐ ์ถ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ์๋ฃจ์ ์ ์ข ์ข ๋ก๊ทธ ์ง๊ณ, ๋ฉํธ๋ฆญ ๋ชจ๋ํฐ๋ง ๋ฐ ์๋ฆผ๊ณผ ๊ฐ์ ์ถ๊ฐ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
์ถ์ ๋ฐฑ์๋๋ฅผ ์ ํํ ๋๋ ํ์ฅ์ฑ, ์ฑ๋ฅ, ์ฌ์ฉ ์ฉ์ด์ฑ, ๊ธฐ์กด ์ธํ๋ผ์์ ํตํฉ ๋ฐ ๋น์ฉ๊ณผ ๊ฐ์ ์์๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
2. ์ฝ๋ ๊ณ์ธก(Instrumenting)
์ฝ๋๋ฅผ ๊ณ์ธกํ๋ ๊ฒ์ ์คํฌ์ ์์ฑํ๊ณ ์ถ์ ์ปจํ ์คํธ๋ฅผ ์ ํํ๊ธฐ ์ํด ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ ์์ ์ ํฌํจํฉ๋๋ค. ์ด๋ ์ถ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์๋์ผ๋ก ์ํํ๊ฑฐ๋ ๊ณ์ธก ์์ด์ ํธ๋ฅผ ์ฌ์ฉํ์ฌ ์๋์ผ๋ก ์ํํ ์ ์์ต๋๋ค. ์๋ ๊ณ์ธก์ ์ฝ๋ ๋ณ๊ฒฝ์ด ์ ๊ณ ์ ์ง ๊ด๋ฆฌ๊ฐ ๋ ์ฌ์ ์ ์ ๋ ์ธ๊ธฐ๋ฅผ ์ป๊ณ ์์ต๋๋ค.
์๋ ๊ณ์ธก: ์ด๋ ์ถ์ ํ๋ ค๋ ๊ฐ ์์ ์ ์์๊ณผ ๋์ ์คํฌ์ ์์ฑํ๊ธฐ ์ํด ์ถ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ๋ํ ์๋น์ค ๊ฐ์ ์ถ์ ์ปจํ ์คํธ๋ฅผ ์๋์ผ๋ก ์ ํํด์ผ ํฉ๋๋ค. ๋ค์์ ํ์ด์ฌ์์ ์คํํ ๋ ๋ฉํธ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ณธ ์์ ์ ๋๋ค:
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.sdk.trace.export import ConsoleSpanExporter
# Configure the tracer provider
tracer_provider = TracerProvider()
processor = BatchSpanProcessor(ConsoleSpanExporter())
tracer_provider.add_span_processor(processor)
trace.set_tracer_provider(tracer_provider)
# Get the tracer
tracer = trace.get_tracer(__name__)
# Create a span
with tracer.start_as_current_span("my_operation") as span:
span.set_attribute("key", "value")
# Perform the operation
print("Performing my operation")
์๋ ๊ณ์ธก: ๋ง์ ์ถ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์๋ ์ฝ๋ ๋ณ๊ฒฝ ์์ด ์ฝ๋๋ฅผ ์๋์ผ๋ก ๊ณ์ธกํ ์ ์๋ ์์ด์ ํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ์์ด์ ํธ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ดํธ์ฝ๋ ์กฐ์์ด๋ ๋ค๋ฅธ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ๋ฐํ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ถ์ ์ฝ๋๋ฅผ ์ฃผ์ ํฉ๋๋ค. ์ด๋ ์ถ์ ์ ๊ตฌํํ๋ ํจ์ฌ ๋ ํจ์จ์ ์ด๊ณ ๋ ์นจํด์ ์ธ ๋ฐฉ๋ฒ์ ๋๋ค.
3. ์ปจํ ์คํธ ์ ํ(Context Propagation) ๊ตฌ์ฑ
์ปจํ ์คํธ ์ ํ๋ ์ถ์ ๋ฉํ๋ฐ์ดํฐ๊ฐ ์๋น์ค ๊ฐ์ ์ ๋ฌ๋๋ ๋ฉ์ปค๋์ฆ์ ๋๋ค. ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ์ถ์ ์ปจํ ์คํธ๋ฅผ HTTP ํค๋๋ ๋ค๋ฅธ ๋ฉ์์ง ํ๋กํ ์ฝ์ ์ฃผ์ ํ๋ ๊ฒ์ ๋๋ค. ์ปจํ ์คํธ ์ ํ์ ์ฌ์ฉ๋๋ ํน์ ํค๋๋ ์ฌ์ฉ ์ค์ธ ์ถ์ ๋ฐฑ์๋์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ์คํํ ๋ ๋ฉํธ๋ฆฌ๋ ๋ค๋ฅธ ์ถ์ ์์คํ ๊ฐ์ ์ํธ ์ด์ฉ์ฑ์ ์ฆ์งํ๊ธฐ ์ํด ํ์ค ํค๋(์: `traceparent`, `tracestate`)๋ฅผ ์ ์ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ์๊ฑฐ๋ฅผ ์ฌ์ฉํ ๋ HTTP ์์ฒญ์ `uber-trace-id` ํค๋๋ฅผ ์ฃผ์ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ์์ ์๋น์ค๋ ํค๋์์ ์ถ์ ID์ ์คํฌ ID๋ฅผ ์ถ์ถํ๊ณ ์์ ์คํฌ์ ์์ฑํฉ๋๋ค. ์ด์คํฐ์ค(Istio)๋ ๋ง์ปค๋(Linkerd)์ ๊ฐ์ ์๋น์ค ๋ฉ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ปจํ ์คํธ ์ ํ๋ฅผ ์๋์ผ๋ก ์ฒ๋ฆฌํ ์๋ ์์ต๋๋ค.
4. ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ๋ถ์
์ถ์ ๋ฐ์ดํฐ๋ฅผ ์์งํ ํ์๋ ์ด๋ฅผ ์ ์ฅํ๊ณ ๋ถ์ํด์ผ ํฉ๋๋ค. ์ถ์ ๋ฐฑ์๋๋ ์ผ๋ฐ์ ์ผ๋ก ์ถ์ ๋ฐ์ดํฐ๋ฅผ ์๊ตฌ ์ ์ฅํ๊ธฐ ์ํ ์คํ ๋ฆฌ์ง ๊ตฌ์ฑ ์์์ ์ถ์ ์ ๊ฒ์ํ๊ณ ๋ถ์ํ๊ธฐ ์ํ ์ฟผ๋ฆฌ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์๊ฑฐ๋ ์นด์ฐ๋๋ผ(Cassandra), ์๋ผ์คํฑ์์น(Elasticsearch) ๋๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค. ์งํจ์ ์๋ผ์คํฑ์์น, MySQL ๋ฐ ๊ธฐํ ์คํ ๋ฆฌ์ง ์ต์ ์ ์ง์ํฉ๋๋ค. ์คํํ ๋ ๋ฉํธ๋ฆฌ๋ ๋ค์ํ ๋ฐฑ์๋๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ์ ์๋ ์ต์คํฌํฐ(exporters)๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋ถ์ ๋๊ตฌ๋ ์ข ์ข ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค:
- ์ถ์ ์๊ฐํ: ๊ฐ ์คํฌ์ ์ง์ ์๊ฐ๊ณผ ๊ทธ๋ค ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ณด์ฌ์ฃผ๋ ํญํฌ ์ฐจํธ๋ก ์ถ์ ์ ํ์ํฉ๋๋ค.
- ์๋น์ค ์ข ์์ฑ ๊ทธ๋ํ: ์ถ์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋น์ค ๊ฐ์ ์ข ์์ฑ์ ์๊ฐํํฉ๋๋ค.
- ๊ทผ๋ณธ ์์ธ ๋ถ์: ์ถ์ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ์ฌ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ด๋ ์ค๋ฅ์ ๊ทผ๋ณธ ์์ธ์ ์๋ณํฉ๋๋ค.
- ์๋ฆผ: ์ง์ฐ ์๊ฐ ์๊ณ๊ฐ์ด๋ ์ค๋ฅ์จ๊ณผ ๊ฐ์ ์ถ์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ฆผ์ ๊ตฌ์ฑํฉ๋๋ค.
์ค์ฉ์ ์ธ ์ฌ์ฉ ์ฌ๋ก
๋ถ์ฐ ์ถ์ ์ ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ์ ๊ด๋ฒ์ํ ์ฌ์ฉ ์ฌ๋ก์ ์ ์ฉ๋ ์ ์์ต๋๋ค:
- ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ: ๋ง์ดํฌ๋ก์๋น์ค ํ๊ฒฝ์์๋ ์์ฒญ์ด ์ข ์ข ์ฌ๋ฌ ์๋น์ค๋ฅผ ํต๊ณผํฉ๋๋ค. ๋ถ์ฐ ์ถ์ ์ ์๋น์ค ๊ฐ์ ์์ฒญ ํ๋ฆ์ ์ดํดํ๊ณ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์๋ณํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ ์์๊ฑฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฃผ๋ฌธ ์๋น์ค, ๊ฒฐ์ ์๋น์ค, ๋ฐฐ์ก ์๋น์ค๋ฅผ ํตํด ํ๋ฅด๋ ์์ฒญ์ ์ถ์ ํ๊ธฐ ์ํด ๋ถ์ฐ ์ถ์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ์ ํ๋ฆฌ์ผ์ด์ : ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ข ์ข ์ฌ๋ฌ ์ปจํ ์ด๋์ ๊ฐ์ ๋จธ์ ์ ๋ฐฐํฌ๋ฉ๋๋ค. ๋ถ์ฐ ์ถ์ ์ ์ด๋ฌํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ๋ชจ๋ํฐ๋งํ๊ณ ๋คํธ์ํน ๋๋ ๋ฆฌ์์ค ํ ๋น๊ณผ ๊ด๋ จ๋ ๋ฌธ์ ๋ฅผ ์๋ณํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
- ์๋ฒ๋ฆฌ์ค ํจ์: ์๋ฒ๋ฆฌ์ค ํจ์๋ ์๋ช ์ด ์งง๊ณ ์ข ์ข ์ํ๊ฐ ์์ต๋๋ค. ๋ถ์ฐ ์ถ์ ์ ์ด๋ฌํ ํจ์์ ์คํ์ ์ถ์ ํ๊ณ ์ฑ๋ฅ ๋ฌธ์ ๋ ์ค๋ฅ๋ฅผ ์๋ณํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. ์๋ฒ๋ฆฌ์ค ์ด๋ฏธ์ง ์ฒ๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ํด ๋ณด์ญ์์ค. ์ถ์ ์ ํตํด ์ฌ๋ฌ ์ฒ๋ฆฌ ๋จ๊ณ์ ๋ณ๋ชฉ ํ์์ ๋ฐ๊ฒฌํ ์ ์์ต๋๋ค.
- ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ : ๋ถ์ฐ ์ถ์ ์ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ๋ชจ๋ํฐ๋งํ๊ณ ๋คํธ์ํฌ ์ฐ๊ฒฐ ๋๋ ๋ฐฑ์๋ ์๋น์ค์ ๊ด๋ จ๋ ๋ฌธ์ ๋ฅผ ์๋ณํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ๋ชจ๋ฐ์ผ ์ฅ์น์ ๋ฐ์ดํฐ๋ฅผ ๋ฐฑ์๋ ์ถ์ ๊ณผ ์ฐ๊ด์์ผ ์ ์ฒด์ ์ธ ๊ทธ๋ฆผ์ ํ์ ํ ์ ์์ต๋๋ค.
- ๋ ๊ฑฐ์ ์ ํ๋ฆฌ์ผ์ด์ : ๋ชจ๋๋ฆฌ์ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ๋ถ์ฐ ์ถ์ ์ ๋ณต์กํ ์ฝ๋ ๊ฒฝ๋ก๋ฅผ ์ดํดํ๊ณ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์๋ณํ๋ ๋ฐ ์ ์ฉํ ์ ์์ต๋๋ค. ์ค์ํ ํธ๋์ญ์ ์ ๋ํด ์ ํ์ ์ผ๋ก ์ถ์ ์ ํ์ฑํํ ์ ์์ต๋๋ค.
์์ ์๋๋ฆฌ์ค: ์ ์์๊ฑฐ๋ ์ ํ๋ฆฌ์ผ์ด์
๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ถ๋ ์ ์์๊ฑฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๊ฐํด ๋ณด๊ฒ ์ต๋๋ค. ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์๊ณผ ๊ฐ์ ์ฌ๋ฌ ์๋น์ค๋ก ๊ตฌ์ฑ๋ฉ๋๋ค:
- ํ๋ก ํธ์๋ ์๋น์ค: ์ฌ์ฉ์ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋ ๋๋งํฉ๋๋ค.
- ์ ํ ์๋น์ค: ์ ํ ์นดํ๋ก๊ทธ๋ฅผ ๊ด๋ฆฌํ๊ณ ์ ํ ์ ๋ณด๋ฅผ ๊ฒ์ํฉ๋๋ค.
- ์ฃผ๋ฌธ ์๋น์ค: ๊ณ ๊ฐ ์ฃผ๋ฌธ์ ์์ฑํ๊ณ ๊ด๋ฆฌํฉ๋๋ค.
- ๊ฒฐ์ ์๋น์ค: ๊ฒฐ์ ๋ฅผ ์ฒ๋ฆฌํ๊ณ ํธ๋์ญ์ ์ ์ฒ๋ฆฌํฉ๋๋ค.
- ๋ฐฐ์ก ์๋น์ค: ์ฃผ๋ฌธ ์ํ์ ๋ฐฐ์ก์ ์ค๋นํฉ๋๋ค.
์ฌ์ฉ์๊ฐ ์ฃผ๋ฌธ์ ํ๋ฉด ํ๋ก ํธ์๋ ์๋น์ค๋ ์ฃผ๋ฌธ ์๋น์ค๋ฅผ ํธ์ถํ๊ณ , ์ฃผ๋ฌธ ์๋น์ค๋ ๋ค์ ์ ํ ์๋น์ค, ๊ฒฐ์ ์๋น์ค, ๋ฐฐ์ก ์๋น์ค๋ฅผ ํธ์ถํฉ๋๋ค. ๋ถ์ฐ ์ถ์ ์ด ์์ผ๋ฉด ์ด ๋ณต์กํ ์์คํ ์์ ์์ฒญ์ ํ๋ฆ์ ์ดํดํ๊ณ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์๋ณํ๊ธฐ๊ฐ ์ด๋ ค์ธ ์ ์์ต๋๋ค.
๋ถ์ฐ ์ถ์ ์ ์ฌ์ฉํ๋ฉด ๊ฐ ์๋น์ค๋ฅผ ํต๊ณผํ๋ ์์ฒญ์ ์ถ์ ํ๊ณ ๊ฐ ์๋น์ค๊ฐ ๊ธฐ์ฌํ๋ ์ง์ฐ ์๊ฐ์ ์๊ฐํํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ด๋ค ์๋น์ค๊ฐ ๋ณ๋ชฉ ํ์์ ์ผ์ผํค๋์ง ์๋ณํ๊ณ ์์ ์กฐ์น๋ฅผ ์ทจํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋๋ฌด ์ค๋ ๊ฑธ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ๋ก ์ธํด ๊ฒฐ์ ์๋น์ค๊ฐ ๋๋ฆฌ๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ์ฟผ๋ฆฌ๋ฅผ ์ต์ ํํ๊ฑฐ๋ ์บ์ฑ์ ์ถ๊ฐํ์ฌ ์ฑ๋ฅ์ ๊ฐ์ ํ ์ ์์ต๋๋ค.
๋ถ์ฐ ์ถ์ ์ ์ํ ๋ชจ๋ฒ ์ฌ๋ก
๋ถ์ฐ ์ถ์ ์ ์ต๋ํ ํ์ฉํ๋ ค๋ฉด ๋ค์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด์ญ์์ค:
- ๊ฐ์ฅ ์ค์ํ ์๋น์ค๋ถํฐ ์์ํ์ญ์์ค: ๋น์ฆ๋์ค์ ๊ฐ์ฅ ์ค์ํ๊ฑฐ๋ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ์ผ๋ก ์๋ ค์ง ์๋น์ค์ ๊ณ์ธก์ ์ง์คํ์ญ์์ค.
- ์ผ๊ด๋ ์ด๋ฆ ์ง์ ๊ท์น ์ฌ์ฉ: ์คํฌ๊ณผ ํ๊ทธ์ ์ผ๊ด๋ ์ด๋ฆ ์ง์ ๊ท์น์ ์ฌ์ฉํ์ฌ ์ถ์ ๋ฐ์ดํฐ๋ฅผ ๋ ์ฝ๊ฒ ๋ถ์ํ ์ ์๋๋ก ํ์ญ์์ค.
- ์๋ฏธ ์๋ ํ๊ทธ ์ถ๊ฐ: ์คํฌ์ ํ๊ทธ๋ฅผ ์ถ๊ฐํ์ฌ ์ํ ์ค์ธ ์์ ์ ๋ํ ์ถ๊ฐ ์ปจํ ์คํธ๋ฅผ ์ ๊ณตํ์ญ์์ค. ์๋ฅผ ๋ค์ด, HTTP ๋ฉ์๋, URL ๋๋ ์ฌ์ฉ์ ID์ ๋ํ ํ๊ทธ๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค.
- ์ถ์ ์ํ๋ง: ํธ๋ํฝ์ด ๋ง์ ํ๊ฒฝ์์๋ ์์ง๋๋ ๋ฐ์ดํฐ์ ์์ ์ค์ด๊ธฐ ์ํด ์ถ์ ์ ์ํ๋งํด์ผ ํ ์ ์์ต๋๋ค. ๊ฒฐ๊ณผ์ ํธํฅ์ด ์๊ธฐ์ง ์๋ ๋ฐฉ์์ผ๋ก ์ถ์ ์ ์ํ๋งํ๋๋ก ํ์ญ์์ค. ํค๋ ๊ธฐ๋ฐ ๋๋ ํ ์ผ ๊ธฐ๋ฐ ์ํ๋ง๊ณผ ๊ฐ์ ์ ๋ต์ด ์์ผ๋ฉฐ, ํ ์ผ ๊ธฐ๋ฐ ์ํ๋ง์ ์ค๋ฅ ๋ถ์์ ์ํ ๋ ์ ํํ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์ถ์ ์ธํ๋ผ ๋ชจ๋ํฐ๋ง: ์ถ์ ๋ฐฑ์๋์ ์ฑ๋ฅ์ ๋ชจ๋ํฐ๋งํ๊ณ ๋ณ๋ชฉ ํ์์ด ๋์ง ์๋๋ก ํ์ญ์์ค.
- ๊ณ์ธก ์๋ํ: ๊ฐ๋ฅํ๋ฉด ์๋ ๊ณ์ธก ์์ด์ ํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋ ๊ณ์ธก์ ํ์ํ ๋ ธ๋ ฅ์ ์ค์ด์ญ์์ค.
- ๋ค๋ฅธ ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ ๋๊ตฌ์ ํตํฉ: ๋ถ์ฐ ์ถ์ ์ ๋ก๊ทธ ์ง๊ณ ๋ฐ ๋ฉํธ๋ฆญ ๋ชจ๋ํฐ๋ง๊ณผ ๊ฐ์ ๋ค๋ฅธ ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ ๋๊ตฌ์ ํตํฉํ์ฌ ์์คํ ์ ๋ํ ๋ ์์ ํ ๋ทฐ๋ฅผ ์ ๊ณตํ์ญ์์ค.
- ํ ๊ต์ก: ํ์ด ๋ถ์ฐ ์ถ์ ์ ์ด์ ๊ณผ ๋๊ตฌ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ดํดํ๋๋ก ํ์ญ์์ค.
๋ถ์ฐ ์ถ์ ์ ๋ฏธ๋
๋ถ์ฐ ์ถ์ ์ ์๋ก์ด ๋๊ตฌ์ ๊ธฐ์ ์ด ๊ณ์ ๋ฑ์ฅํ๋ฉด์ ๋น ๋ฅด๊ฒ ๋ฐ์ ํ๊ณ ์์ต๋๋ค. ๋ถ์ฐ ์ถ์ ์ ์ฃผ์ ๋ํฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ์คํํ ๋ ๋ฉํธ๋ฆฌ(OpenTelemetry): ์คํํ ๋ ๋ฉํธ๋ฆฌ๋ ๋ถ์ฐ ์ถ์ ์ ์ ๊ณ ํ์ค์ด ๋๊ณ ์์ผ๋ฉฐ, ์ฝ๋๋ฅผ ๊ณ์ธกํ๊ณ ์๊ฒฉ ์ธก์ ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ธฐ ์ํ ๋ฒค๋ ์ค๋ฆฝ์ ์ธ API๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด์ ๊ด๋ฒ์ํ ์ฑํ์ ์ฌ๋ฌ ๋ค๋ฅธ ์์คํ ๊ฐ์ ํตํฉ์ ๋จ์ํํฉ๋๋ค.
- eBPF: ํ์ฅ ๋ฒํด๋ฆฌ ํจํท ํํฐ(eBPF)๋ ๋ฆฌ๋ ์ค ์ปค๋์์ ์๋๋ฐ์ค ํ๋ก๊ทธ๋จ์ ์คํํ ์ ์๊ฒ ํด์ฃผ๋ ๊ธฐ์ ์ ๋๋ค. eBPF๋ ์ฝ๋ ๋ณ๊ฒฝ ์์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋์ผ๋ก ๊ณ์ธกํ๊ณ ์ถ์ ๋ฐ์ดํฐ๋ฅผ ์์งํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
- AI ๊ธฐ๋ฐ ๋ถ์: ๋จธ์ ๋ฌ๋ ์๊ณ ๋ฆฌ์ฆ์ด ์ถ์ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ์ฌ ์ด์ ํ์์ ์๋์ผ๋ก ์๋ณํ๊ณ , ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์์ธกํ๋ฉฐ, ์ต์ ํ๋ฅผ ๊ถ์ฅํ๋ ๋ฐ ์ฌ์ฉ๋๊ณ ์์ต๋๋ค.
- ์๋น์ค ๋ฉ์ ํตํฉ: ์ด์คํฐ์ค(Istio) ๋ฐ ๋ง์ปค๋(Linkerd)์ ๊ฐ์ ์๋น์ค ๋ฉ์๋ ๋ถ์ฐ ์ถ์ ์ ์ํ ๋ด์ฅ ์ง์์ ์ ๊ณตํ์ฌ ๋ง์ดํฌ๋ก์๋น์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ์ฝ๊ฒ ๊ณ์ธกํ๊ณ ๋ชจ๋ํฐ๋งํ ์ ์๋๋ก ํฉ๋๋ค.
๊ฒฐ๋ก
๋ถ์ฐ ์ถ์ ์ ๋ณต์กํ ๋ถ์ฐ ์์คํ ์ ์ดํดํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐ ํ์์ ์ธ ๋๊ตฌ์ ๋๋ค. ์์ฒญ ํ๋ฆ์ ๋ํ ์ ์ฒด์ ์ธ ๋ทฐ๋ฅผ ์ ๊ณตํจ์ผ๋ก์จ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์๋ณํ๊ณ , ์ค๋ฅ๋ฅผ ๋๋ฒ๊น ํ๋ฉฐ, ๋ฆฌ์์ค ํ ๋น์ ์ต์ ํํ ์ ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ๊ฐ ์ ์ ๋ ๋ณต์กํด์ง์ ๋ฐ๋ผ ๋ถ์ฐ ์ถ์ ์ ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ, ์์ ์ฑ ๋ฐ ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ์ ๋ณด์ฅํ๋ ๋ฐ ๋์ฑ ์ค์ํด์ง ๊ฒ์ ๋๋ค.
ํต์ฌ ๊ฐ๋ ์ ์ดํดํ๊ณ , ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๊ตฌํํ๋ฉฐ, ์ฌ๋ฐ๋ฅธ ๋๊ตฌ๋ฅผ ์ ํํจ์ผ๋ก์จ ์กฐ์ง์ ๋ถ์ฐ ์ถ์ ์ ํ์ฉํ์ฌ ์์คํ ์ ๋ํ ๊ท์คํ ํต์ฐฐ๋ ฅ์ ์ป๊ณ ๋ ๋์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ์คํํ ๋ ๋ฉํธ๋ฆฌ๋ ํ์คํ๋ฅผ ํฅํ ์ ๋ ์ฃผ์๋ก์ ๋ถ์ฐ ์ถ์ ์ ๊ทธ ์ด๋ ๋๋ณด๋ค ์ฝ๊ฒ ์ ๊ทผํ ์ ์๋๋ก ๋ง๋ค๊ณ ์์ต๋๋ค. ๋ถ์ฐ ์ถ์ ์ ๋์ ํ์ฌ ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ฌ๋ ฅ์ ์ต๋ํ ๋ฐํํ์ญ์์ค.