-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathworkflow.py
More file actions
53 lines (45 loc) · 1.86 KB
/
workflow.py
File metadata and controls
53 lines (45 loc) · 1.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
from diagrams import Cluster, Diagram, Edge
from diagrams.aws.database import RDS, Elasticache
from diagrams.aws.storage import S3
from diagrams.aws.network import CloudFront
from diagrams.programming.framework import React
from diagrams.programming.language import Java, Python
from diagrams.onprem.client import Users
from diagrams.onprem.compute import Server
from diagrams.onprem.ci import GithubActions
# 스타일 프리셋
REQ = Edge(color="#2563eb", style="solid", penwidth="2", label="요청")
RESP = Edge(color="#94a3b8", style="dashed", penwidth="2", label="응답")
with Diagram("Online Service Architecture", filename="workflow_final", show=False, outformat="png"):
user = Users("사용자")
# Frontend
with Cluster("Frontend"):
fe = React("React + Tailwind\nWeb App")
# Backend
with Cluster("Backend API"):
be = Java("Spring Boot\nAPI Server")
# Data Layer
with Cluster("Data Layer"):
db = RDS("MySQL (Amazon RDS)")
cache = Elasticache("Redis (ElastiCache)")
# Worker
with Cluster("Worker (Async)"):
py = Python("FastAPI + Celery")
llm = Server("LLM Parser")
plan = Server("Layout & Animation Planner")
rend = Server("GIF/MP4 Renderer")
# Delivery
with Cluster("Delivery"):
s3 = S3("Amazon S3")
cdn = CloudFront("Amazon CloudFront")
# CI/CD
cicd = GithubActions("GitHub Actions")
# Connections
user >> REQ >> fe >> REQ >> be
be >> db
be >> cache
be >> Edge(color="#16a34a", penwidth="2", label="잡 등록") >> py
py >> llm >> plan >> rend >> Edge(color="#22c55e", penwidth="2", label="업로드") >> s3
s3 >> Edge(color="#f59e0b", penwidth="2", label="배포") >> cdn >> RESP >> user
cicd >> Edge(label="CI/CD 배포", color="#9333ea") >> be
cicd >> Edge(label="CI/CD 배포", color="#9333ea") >> py