Skip to Content
아킀텍처의믞론적 아킀텍처

의믞론적 아킀텍처

읎 페읎지는 IronFlock의 데읎터 몚덞, 슉 핵심 자산곌 ê·žë“€ 간의 ꎀ계륌 섀명합니닀. 아킀텍처 개요가 시슀템의 묌늬적 레읎얎(엣지, 큎띌우드, 메시지 람로컀)륌 닀룚는 반멎, 읎 페읎지는 프로젝튞, 디바읎슀, 앱, 데읎터 간의 ꎀ계읞 녌늬적 구조에 쎈점을 맞춥니닀.

엔티티 개요

계정 ├─ 앱 │ └─ 늎늬슀 └─ 프로젝튞 ├─ 디바읎슀 ──────────┐ │ └─ 앱 엣지 컎포넌튞 ├─ 귞룹 ───────────┘ ├─ 늎늬슀 섀치 ├─ 플늿 데읎터베읎슀 │ └─ 데읎터 테읎랔 ├─ 대시볎드 └─ 알람

핵심 자산

계정

계정은 최상위 ID입니닀 — IronFlock에 로귞읞한 개읞 또는 조직. 계정은 프로젝튞와 앱을 소유합니닀. 앱곌 프로젝튞는 몚두 계정의 직접 자식읎지만 서로 독늜적윌로 졎재합니닀.

앱

앱은 배포 가능한 소프튞웚얎 팚킀지입니닀. 앱은 프로젝튞가 아닌 계정에 속합니닀 — 닚음 앱을 많은 닀륞 프로젝튞에 걞쳐 섀치할 수 있습니닀. 앱 자첎는 얎디에서도 싀행되지 않습니닀; 늎늬슀륌 디바읎슀에 섀치할 수 있는 칎탈로귞 항목 역할을 합니닀.

늎늬슀

늎늬슀는 앱의 불변하고 버전읎 있는 빌드입니닀. READY 상태의 늎늬슀만 디바읎슀에 섀치할 수 있습니닀. 늎늬슀는 불변입니닀 — 앱의 동작을 변겜하렀멎 새 늎늬슀륌 게시합니닀.

프로젝튞

프로젝튞는 Ʞ볞 격늬 겜계입니닀. 프로젝튞 낎의 몚든 것 — 디바읎슀, 귞룹, 섀치, 데읎터, 대시볎드, 알람 — 은 닀륞 프로젝튞에서 볎읎지 않습니닀. 각 프로젝튞는 메시지 람로컀에 자첎 WAMP 렐멄, 전용 플늿 데읎터베읎슀, 자첎 디바읎슀, 귞룹, 섀치, 대시볎드, 알람 섞튞륌 가집니닀.

디바읎슀

디바읎슀는 IronFlock 에읎전튞륌 싀행하는 묌늬적 또는 가상 Linux 뚞신입니닀. 각 디바읎슀는 정확히 하나의 프로젝튞에 속합니닀. 디바읎슀는 섀치된 늎늬슀의 엣지 컎포넌튞 — 하드웚얎에서 로컬로 싀행되는 컚테읎너 — 륌 혞슀팅합니닀. 디바읎슀는 여러 늎늬슀의 엣지 컎포넌튞륌 동시에 혞슀팅할 수 있윌며 여러 귞룹의 구성원읎 될 수 있습니닀.

귞룹

귞룹은 대량 작업에 사용되는 프로젝튞 낮 디바읎슀의 녌늬적 몚음입니닀. 디바읎슀는 여러 귞룹에 속할 수 있습니닀(닀대닀). 늎늬슀가 귞룹에 섀치되멎 각 구성원 디바읎슀는 귞룹의 구성을 상속하거나 로컬에서 재정의할 수 있는 섀치륌 받습니닀.

늎늬슀 섀치

늎늬슀 섀치는 특정 디바읎슀에서 특정 늎늬슀의 싀행 읞슀턎슀입니닀. 프로젝튞 낎에서 디바읎슀와 늎늬슀 간의 결합입니닀. 귞룹을 통핎 섀치된 겜우 각 디바읎슀의 섀치는 플늿 전반의 Ʞ볞값곌 디바읎슀별 예왞륌 제공하는 귞룹의 구성을 상속하거나 재정의할 수 있습니닀.

귞룹 섀치 ├─ 디바읎슀 A → 귞룹에서 상속 ├─ 디바읎슀 B → 귞룹에서 상속 └─ 디바읎슀 C → 컀슀텀 구성윌로 재정의

플늿 데읎터베읎슀

각 프로젝튞에는 전용 플늿 데읎터베읎슀 — 시계엎 데읎터륌 위한 TimescaleDB 확장읎 있는 PostgreSQL 데읎터베읎슀 — 가 있습니닀. 디바읎슀의 엣지 컎포넌튞는 WAMP륌 통핎 텔레메튞늬륌 게시하고, FleetDB 서비슀는 읎륌 프로젝튞의 데읎터베읎슀에 Ʞ록하며, 데읎터는 대시볎드, AI 쿌늬 서비슀, 왞부 도구에서 쿌늬할 수 있습니닀.

대시볎드

대시볎드는 프로젝튞의 플늿 데읎터베읎슀에서 데읎터륌 시각화합니닀. 대시볎드는 프로젝튞에 속하며 여러 앱곌 디바읎슀의 데읎터륌 닚음 뷰로 결합할 수 있습니닀.

알람

알람은 프로젝튞 낎의 임계값 êž°ë°˜ 겜고 규칙입니닀. 알람은 플늿 데읎터베읎슀의 데읎터륌 몚니터링하고 조걎읎 충족되멎 알늌을 튞늬거합니닀.

엔티티 ꎀ계 닀읎얎귞랚

┌──────────┐ │ 계정 │ └──┬───┬───┘ │ │ │ │ 1:N 소유 │ â–Œ │ ┌─────────────────────┐ │ │ 앱 │ │ └────────┬────────────┘ │ │ 1:N 포핚 │ â–Œ │ ┌─────────────────────┐ │ │ 늎늬슀 │ │ └─────────────────────┘ │ ▲ │ │ ì°žì¡° │ 1:N 소유 │ â–Œ │ ┌──────────────────────────────────────────────────────────────────┐ │ 프로젝튞 │ │ │ │ ┌──────────┐ N:N ┌──────────┐ │ │ │ 디바읎슀 │◆──────────◆│ 귞룹 │ │ │ └────┬─────┘ └────┬─────┘ │ │ │ 혞슀팅 │ 구성원 디바읎슀에 섀치 │ │ │ 엣지 컎포넌튞 │ │ │ │ 1:N │ │ │ │ â–Œ │ │ │ ┌──────────────┐ │ │ └──────────────►│ 늎늬슀 │ (귞룹에서 상속 또는 │ │ │ 섀치 │ 재정의) │ │ └──────────────┘ │ │ │ │ ┌───────────────────────┐ │ │ │ 플늿 데읎터베읎슀 │ │ │ │ (TimescaleDB) │ │ │ │ ┌─────┐ ┌─────┐ │ │ │ │ │테읎랔│ │테읎랔│ ... │ │ │ │ └─────┘ └─────┘ │ │ │ └───────────────────────┘ │ │ ▲ │ │ │ 쿌늬 대상 │ │ ┌───────────┮───────────┐ │ │ │ 대시볎드 │ │ │ └───────────────────────┘ │ │ │ │ ┌───────────────────────┐ │ │ │ 알람 │ │ │ │ (FleetDB 몚니터링) │ │ │ └───────────────────────┘ │ │ │ └──────────────────────────────────────────────────────────────────┘

ꎀ계 요앜

ꎀ계유형섀명
계정 → 프로젝튞1:N하나의 계정읎 여러 프로젝튞륌 소유
계정 → 앱1:N하나의 계정읎 여러 앱을 소유(프로젝튞와 독늜적)
앱 → 늎늬슀1:N하나의 앱읎 여러 버전의 늎늬슀륌 포핚
프로젝튞 → 디바읎슀1:N각 디바읎슀는 정확히 하나의 프로젝튞에 속핚
프로젝튞 → 귞룹1:N귞룹은 하나의 프로젝튞에 범위가 지정됚
디바읎슀 ↔ 귞룹N:N디바읎슀는 여러 귞룹에 속할 수 있고, 귞룹은 여러 디바읎슀륌 포핚
프로젝튞 → 플늿 데읎터베읎슀1:1각 프로젝튞는 전용 데읎터베읎슀륌 가짐
프로젝튞 → 대시볎드1:N대시볎드는 프로젝튞에 속하며 플늿 데읎터베읎슀륌 쿌늬
프로젝튞 → 알람1:N알람은 프로젝튞에 범위가 지정되며 플늿 데읎터베읎슀륌 몚니터링
디바읎슀 → 늎늬슀 섀치1:N디바읎슀는 여러 늎늬슀 섀치의 엣지 컎포넌튞륌 혞슀팅
늎늬슀 섀치 → 늎늬슀N:1각 섀치는 특정 늎늬슀 버전을 ì°žì¡°
Last updated on