platform classDef boundary fill:none,stroke-dasharray: 5 5 public:::boundary private:::boundary cloud:::boundary data_pipeline:::boundary "> platform classDef boundary fill:none,stroke-dasharray: 5 5 public:::boundary private:::boundary cloud:::boundary data_pipeline:::boundary "> platform classDef boundary fill:none,stroke-dasharray: 5 5 public:::boundary private:::boundary cloud:::boundary data_pipeline:::boundary ">
flowchart TD
user(이용자)
platform(통합 플랫폼)
lb((Load\\nBalancer))
was((WAS))
kafka((로그 수집기\\nKafka))
airflow((로그 분석기\\nAirflow))
db[|borders:tb|관계형 데이터베이스\\nCloudDB]
fs[|borders:tb|네트워크 파일 시스템\\nNAS]
s3[|borders:tb|미디어 저장소\\nObjectStorage]
s3_log[|borders:tb|데이터레이크\\nObjectStorage]
user--미디어 업로드-->s3
user<--수업자료,교실정보,학습기록-->lb
lb--학습로그-->kafka
subgraph cloud [Naver Cloud]
subgraph public [Public]
lb
s3
end
subgraph private [Private]
lb<-->was
db<--관계형 데이터-->was
s3--미디어 조회-->was
was<--파일-->fs
db-->airflow
subgraph data_pipeline [데이터 파이프라인]
kafka-->s3_log
s3_log-->airflow
end
end
end
airflow--"xAPI"-->platform
classDef boundary fill:none,stroke-dasharray: 5 5
public:::boundary
private:::boundary
cloud:::boundary
data_pipeline:::boundary