시스템 아키텍처
전체 아키텍처
3-Layer AI 파이프라인
Medallion 데이터 레이크 구조 (Bronze / Silver / Gold)
GenD는 Databricks Medallion 아키텍처 개념을 차용해 데이터를 3개 계층으로 구분한다. 내부 구현 용어(Zone / DataMart)와 Medallion 용어는 다음과 같이 대응한다 — 한 줄 요약:
- Bronze = 원천 그대로 (CDC landing, 문서
zone=raw, 외부 DB passthrough) - Silver = 정제·PII 마스킹 완료 (문서
zone=cleaned, conformed staging) - Gold = 비즈니스 집계·소비 준비 완료 (DataMart, 분석 마트, 문서
zone=parsed)
| 외부 소스 | Bronze | Silver | Gold |
|---|---|---|---|
| PostgreSQL (CDC) | iceberg.cdc.* | iceberg.<domain>.stg_* | iceberg.datax_analytics.* |
| 문서 업로드 | zone=raw | zone=cleaned (PII) | zone=parsed (RAG 소비) |
| 외부 DB | sourcedb.* | — | data_mart 테이블 |
상세 매핑 표·Dagster 자산명·Iceberg 속성 규약 등 단일 소스 정의는 저장소의
docs/architecture.md §5.3 Medallion Layer Mapping에서 관리된다. 본 페이지는 요약이며, 구현 세부가 변경되면 설계 문서를 우선 갱신한다.
주요 컴포넌트
| 컴포넌트 | 기술 | 역할 |
|---|---|---|
| GenD UI | React 19 + Vite + shadcn/ui | 웹 프론트엔드 |
| GenD API | FastAPI + uvicorn | REST API 서버 |
| Trino | Trino 435+ | Federation SQL 엔진 |
| PostgreSQL | PostgreSQL 15 | 메타데이터 + 운영 DB |
| Weaviate | Weaviate 1.24+ | 벡터 검색 (RAG) |
| ArangoDB | ArangoDB 3.11+ | 스키마 지식 그래프 |
| Iceberg | Apache Iceberg | 테이블 포맷 (데이터 레이크) |
| SeaweedFS | SeaweedFS 3.x | S3 호환 오브젝트 스토리지 |
| Keycloak | Keycloak 24+ | SSO / OIDC 인증 |
| Vault | HashiCorp Vault | 시크릿 + HMAC 서명 |
| Dagster | Dagster 1.6+ | 파이프라인 오케스트레이션 |
| MLflow | MLflow 2.x | ML 실험 추적 |
| Presidio | Microsoft Presidio | PII 자동 탐지 |
| Grafana | Grafana 10+ | 모니터링 대시보드 |
| OpenSearch | OpenSearch 2.x | 감사 로그 검색 |
고가용성 (HA Baseline)
Stateless 4종(gend-api / gend-ui / gend-relay / dagster-webserver)은 노드 1대 voluntary disruption(드레인·업그레이드)에서도 무중단 서비스를 보장한다.
| 컴포넌트 | HPA min/max | PDB minAvailable | Pod 분산 |
|---|---|---|---|
| gend-api | 2 / 6 | 1 | preferred podAntiAffinity (hostname) |
| gend-ui | 2 / 5 | 1 | preferred podAntiAffinity (hostname) |
| gend-relay (DMZ) | 2 / 4 | 1 | preferred podAntiAffinity (hostname) |
| dagster-webserver | 2 / 3 | 1 | preferred podAntiAffinity (hostname) |
- 검수 시연:
scripts/ha-drill.sh(노드 cordon+drain 순회) +scripts/check-slo.sh+ k6 baseline - 2026-05-20 AKS prod 실측: 4 노드 순차 drain · 113 pods evicted · 외부 traffic 99.5% uptime
- 자세히는 docs/DESIGN_HA_PHASE0.md (이슈 #827 / PR #879)
- 후속 stateful HA (PostgreSQL / Vault / Keycloak / OpenSearch 등): Phase 1–8 별도 진행, multi-AZ 는 #828 epic 후 적용