Skip to content

Commit c961954

Browse files
committed
docs(drafts): add GPU sharing guide and Dify draft
1 parent 8f460b5 commit c961954

File tree

5 files changed

+279
-22
lines changed

5 files changed

+279
-22
lines changed
107 KB
Loading
379 KB
Loading

src/content/drafts/dify.md

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
---
2+
# description: 검색 결과 스니펫 (120-160자), 핵심 키워드 + 가치 제안
3+
# title: 검색 노출 핵심 (50-60자), 키워드 앞쪽 배치
4+
# tags: 주요 키워드 + 상위 카테고리 + 관련 기술
5+
description: ''
6+
pubDate: '2026-01-06'
7+
tags:
8+
-
9+
title: ''
10+
---
11+
12+
## TL;DR
13+
14+
> 3~4문장 핵심 결론. 이것만 읽어도 글의 가치를 파악할 수 있게.
15+
> Featured Snippet 후보이므로 핵심 키워드 포함.
16+
17+
<!-- 도입부: 1~2문단. 이 글을 쓰게 된 배경, 독자가 공감할 문제 상황 -->
18+
19+
최근 Agent에 대한 관심이 많아지면서, 두 갈래로 나눠지는 것 같다.
20+
21+
흔히 말하는 바이브 코딩이란 걸 이용한 코드 기반의 Agent 시스템 구축과, 노코드 기반의 Agent 워크플로우 구축이다. 노코드 툴의 한계는 존재하지만 Agent를 코드 없이 구현한다는 부분에서 진입장벽은 확실히 낮다. 오늘 살펴볼 내용은, 후자인 노코드 툴 [dify](https://github.com/langgenius/dify)이다.
22+
23+
dify는 LangGenius 라는 회사에서 운영중인 오픈소스 플랫폼이다.
24+
25+
The name Dify comes from **D**o **I**t **F**or **Y**ou.
26+
27+
![image-20260107210940555](../../../public/img/dify/image-20260107210940555.png)
28+
29+
일단 dify는 다음과 같은 Key features 가 존재한다고 소개한다.
30+
31+
1. workflow: 시각적 캔버스에서 강력한 AI 워크플로를 구축하고 테스트할 수 있따.
32+
2. Comprehensive model support: GPT, Mistral, Llama3 및 모든 OpenAI API 호환 모델을 포괄하는 수십 개의 추론 제공업체 및 자체 호스팅 솔루션 등 수백 개의 오픈소스 LLM과 원활하게 통합
33+
3. Prompt IDE: 프롬프트 작성, 모델 성능 비교, TTS과 같은 추가 기능을 채팅 기반 앱에 추가하기 위한 직관적인 인터페이스
34+
4. RAG Pipeline: PDF, PPT 및 기타 일반적인 문서 형식에서 텍스트 추출, 문서 수집부터 검색까지 포괄적인 RAG
35+
5. Agent capabilities: LLM 함수 호출 또는 ReAct 기반으로 에이전트를 정의하고 에이전트에 대한 사전 구축된 도구나 사용자 정의 도구 추가
36+
6. LLMOps: 시간 경과에 따른 애플리케이션 로그와 성능을 모니터링, 이를 통한 생산 데이터와 주석을 기반으로 프롬프트, 데이터세트, 모델을 지속적으로 개선
37+
7. Backend-as-a-Service: Dify의 모든 제품에는 해당 API가 함께 제공되므로 Dify를 자신의 비지니스 로직에 쉽게 통합
38+
39+
위에 내용들이 실제로 얼마나 유용한지 테스트해보는게 본 글의 목적이다.
40+
41+
42+
43+
그 전에 Dify에 대해 조금 더 알아보면, 일단, Managed서비스로 Cloud환경과, Self-hosted 옵션이 존재한다.
44+
45+
![image-20260107211713742](../../../public/img/dify/image-20260107211713742.png)
46+
47+
가격 정책은 위의 사진과 같다. 가격은 사실 싼건지 비싼건지 잘 모르겠다.
48+
49+
50+
51+
---
52+
53+
dify는 AgentOps를 대체할 수 있는가?
54+
55+
56+
57+
https://www.linkedin.com/posts/petrituomola_dify-leading-agentic-workflow-builder-activity-7324263717674590208-drLz?utm_source=share&utm_medium=member_desktop&rcm=ACoAADTtEIgBaRhOOmWcUXTxiIwUPzSj9QrJ4ek
58+
59+
60+
61+
https://www.reddit.com/r/difyai/comments/1owtwj5/struggling_with_dify_should_i_stick_with_it_or/
62+
63+
64+
65+
https://skywork.ai/blog/dify-review-2025-workflows-agents-rag-ai-apps/?utm_source=chatgpt.com
66+
67+
68+
69+
70+
71+
## **⚠️**
72+
73+
## **하지만 여전히 남아 있는 한계**
74+
75+
### **🛠 1)**
76+
77+
### **실질적인 운영·거버넌스 제어는 제한적**
78+
79+
- Dify가 엔터프라이즈용 배포 옵션을 제공하는 건 사실이나,
80+
81+
*진정한 의미의 운영 정책(토큰 예산, 완전한 RBAC, 실패 정책, SLAs, SLO 적용 등)* 은 문서상 명시적으로 깊게 제공되지는 않음.
82+
83+
→ 기능이 *존재하는 것처럼 보일 수 있으나*, **운영 정책 자동화 레벨은 여전히 낮음**.
84+
85+
86+
87+
👉 📌 Enterprise 페이지가 “옵션이 있다”일 뿐, 실제 **정책 거버넌스/운영 자동화까지 완전하진 않음.
88+
89+
90+
91+
------
92+
93+
94+
95+
96+
97+
### **🧪 2)**
98+
99+
### **운영 모니터링·Metrics가 완전하지 않음**
100+
101+
- observability/logging은 여전히 **사용자 입력/출력 중심 정도**이고,
102+
103+
*agent/tool 단위 metric 집계, 롤백 트리거, 비용/지연 평가 지표가 실시간으로 정책화되는 수준*은 아님.
104+
105+
👉 📌 모니터링은 “있다고 말할 수 있으나”,
106+
107+
정책 기반 운영 자동화로 보기엔 제한적.
108+
109+
110+
111+
------
112+
113+
114+
115+
116+
117+
### **📐 3)**
118+
119+
### **이벤트 기반·Trigger 시스템 제한**
120+
121+
- 최신 릴리즈에서는 **워크플로우 트리거(스케줄/Webhook/SaaS Event)** 지원이 강화되긴 했지만,
122+
123+
*챗플로우/Agent 자체는 트리거 지원이 아직 제한적*이라고 명시됨.
124+
125+
👉 📌 이벤트 기반 자동화는 Workflow 중심이고, 전체 Agent 기능이 아니라는 한계.
126+
127+
128+
129+
------
130+
131+
132+
133+
134+
135+
### **📚 4)**
136+
137+
### **엔터프라이즈 컴플라이언스/보안 스펙 불명확**
138+
139+
- Enterprise 문서에서 보안/접근 컨트롤을 이야기는 하지만 구체적인 **ISO/SOC2 같은 인증 레벨, 감사 로그 수준, 감사 추적 정책** 등은 상세하게 다루어지지 않음.
140+
141+
👉 📌 보안·규제 준수 요구가 높은 산업에서는 별도 평가가 필요.

src/content/drafts/gpu-sharing.md

Lines changed: 131 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,143 @@
11
---
2-
description: 설명
3-
pubDate: '2025-12-19'
2+
# description: 검색 결과 스니펫 (120-160자), 핵심 키워드 + 가치 제안
3+
# title: 검색 노출 핵심 (50-60자), 키워드 앞쪽 배치
4+
# tags: 주요 키워드 + 상위 카테고리 + 관련 기술
5+
description: ''
6+
pubDate: '2026-01-06'
47
tags:
5-
- LLMOps
6-
- MCP
7-
- Agent
8-
title: template
8+
-
9+
title: ''
910
---
1011

1112
## TL;DR
1213

13-
> 요약
14+
> Kubernetes 환경에서 GPU Sharing은 **Time‑Sharing, MPS, MIG** 세 가지로 나뉜다.
15+
> **MIG만이 컨테이너 단위에서 여러 GPU(slices)를 동시에 요청**할 수 있고,
16+
> **MPS / Time‑Sharing은 컨테이너당 GPU 요청이 1개로 제한**된다.
17+
> 이 제한은 CUDA가 아니라 **Kubernetes 스케줄링 정책** 때문이다.
1418
15-
Intro
19+
GPU Sharing 방법으로 대표적인 전략은 **Time‑Sharing, MPS, MIG** 세 가지다.
20+
이 글에서는 *Kubernetes 기준*으로 각 방식의 **리소스 모델, 제약, 실무에서 헷갈리는 포인트**를 정리한다.
1621

17-
## 소제목
22+
---
23+
24+
## 왜 GPU Sharing을 쓰는가?
25+
26+
GPU가 충분하다면 굳이 Sharing을 할 필요는 없다.
27+
GPU를 분할하거나 공유하면 다음과 같은 비용이 발생한다.
28+
29+
- Context switching / scheduling 오버헤드
30+
- 메모리 및 연산 자원 간섭
31+
- 성능 예측성 저하 (특히 latency‑sensitive workload)
32+
33+
그럼에도 GPU Sharing을 사용하는 이유는 다음과 같다.
34+
35+
- 추론(workload)이 가볍고 GPU utilization이 낮은 경우
36+
- GPU 비용을 최대한 효율적으로 쓰고 싶은 경우
37+
- 다수의 소형 워크로드를 동시에 실행해야 하는 경우
38+
39+
---
40+
41+
## GPU Time‑Sharing
42+
43+
### 개념
44+
- **GPU 전체를 여러 워크로드가 시간 분할로 공유**
45+
- Context switching 기반
46+
- 하드웨어 파티셔닝 없음
47+
48+
### Kubernetes에서의 동작
49+
- 여러 파드가 **같은 물리 GPU를 동시에 공유**
50+
- 하지만 **컨테이너당 GPU 요청은 최대 1개**
51+
- `nvidia.com/gpu: 2` 같은 요청은 **스케줄러에서 reject**
52+
53+
```yaml
54+
resources:
55+
limits:
56+
nvidia.com/gpu: 1 # 허용
57+
```
58+
59+
### 특징 요약
60+
- 격리 ❌
61+
- 성능 예측성 ❌
62+
- 설정 간단
63+
- 경량 추론에 적합
64+
65+
---
66+
67+
## NVIDIA MPS (Multi‑Process Service)
68+
69+
### 개념
70+
- **하나의 물리 GPU를 여러 CUDA 프로세스가 공유**
71+
- MPS 서버가 CUDA context / kernel 실행을 중재
72+
- 소프트웨어 레벨 공유 (MIG 아님)
1873
19-
## 장점
74+
### Kubernetes에서의 핵심 제약
75+
> **MPS 활성화 노드에서는 컨테이너당 GPU 요청이 1개로 제한됨**
76+
77+
- 여러 파드가 **같은 GPU를 동시에 사용** 가능
78+
- 하지만 **한 파드가 GPU 2개 이상을 요청하는 것은 불가**
79+
- `gpu per client = 8` 같은 설정은
80+
→ *GPU 개수*가 아니라 **GPU 내부 리소스 비율 제어**
81+
82+
```yaml
83+
resources:
84+
limits:
85+
nvidia.com/gpu: 2 # ❌ reject
86+
```
87+
88+
### 중요한 오해 포인트
89+
- MPS는 **멀티 GPU 스케줄러가 아니다**
90+
- Kubernetes가 여러 GPU를 “합쳐서” 한 컨테이너에 주지 않는다
91+
- 이 제약은 CUDA가 아니라 **Kubernetes 리소스 모델의 정책**
92+
93+
---
94+
95+
## MIG (Multi‑Instance GPU)
96+
97+
### 개념
98+
- GPU를 **하드웨어 단위로 물리 분할**
99+
- 각 MIG 인스턴스는:
100+
- 독립된 메모리
101+
- 독립된 SM
102+
- 강한 오류 격리
103+
104+
### Kubernetes에서의 동작
105+
- MIG 인스턴스는 **독립 GPU 리소스처럼 노출**
106+
- 하나의 컨테이너가 **여러 MIG slice를 동시에 요청 가능**
107+
108+
```yaml
109+
resources:
110+
limits:
111+
nvidia.com/gpu: 3
112+
```
113+
114+
> 단, **노드에 실제로 존재하는 MIG 인스턴스 수를 초과하면 스케줄 불가**
115+
116+
### 특징 요약
117+
- 격리 ✅
118+
- 성능 예측성 ✅
119+
- 설정/운영 복잡도 높음
120+
- 안정성이 중요한 워크로드에 적합
121+
122+
---
123+
124+
## 핵심 비교 요약
125+
126+
| 구분 | Time‑Sharing | MPS | MIG |
127+
|----|----|----|----|
128+
| 공유 방식 | 시간 분할 | 프로세스 공유 | 하드웨어 분할 |
129+
| 격리 | ❌ | ❌ | ✅ |
130+
| 컨테이너당 GPU 요청 | 1개 제한 | 1개 제한 | 여러 개 가능 |
131+
| 여러 파드 동시 사용 | ✅ | ✅ | ✅ |
132+
| 성능 예측성 | 낮음 | 낮음 | 높음 |
133+
| 실무 추천 용도 | 경량 추론 | 경량 추론 | 안정성/멀티 GPU |
134+
135+
---
20136

21-
## 단점
137+
## 한 문장 요약
22138

23-
## 마무리
139+
> **Kubernetes에서 GPU Sharing을 쓸 때,
140+
> 컨테이너가 여러 GPU를 동시에 가져가야 한다면 선택지는 MIG뿐이다.**
24141

25-
## 참고 링크
142+
MPS와 Time‑Sharing은 “GPU를 나눠 쓰는 방법”이지
143+
“GPU 개수를 늘려주는 방법”이 아니다.

src/content/drafts/template.md

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11
---
2-
# description: 검색 결과 스니펫 (120-160자)
3-
# title: 검색 노출 핵심 (50-60자), 키워드 포함
2+
# description: 검색 결과 스니펫 (120-160자), 핵심 키워드 + 가치 제안
3+
# title: 검색 노출 핵심 (50-60자), 키워드 앞쪽 배치
44
# tags: 주요 키워드 + 상위 카테고리 + 관련 기술
55
description: ''
6-
pubDate: '2025-12-19'
6+
pubDate: '2026-01-06'
77
tags:
8-
-
8+
-
99
title: ''
1010
---
1111

12-
## 요약
13-
14-
<!-- 본문 첫 단락: 검색엔진이 중요시함. 핵심 내용 + 키워드 자연스럽게 -->
15-
1612
## TL;DR
1713

18-
<!-- 3-4문장 핵심 결론. 이것만 읽어도 글의 가치 파악 가능하게 -->
14+
> 3~4문장 핵심 결론. 이것만 읽어도 글의 가치를 파악할 수 있게.
15+
> Featured Snippet 후보이므로 핵심 키워드 포함.
16+

0 commit comments

Comments
 (0)