alpyrithm_알파이리즘
RudderStack Architecture 알아보기!! 본문
RudderStack
- The most secure customer data infrastructure solution
- Open-source for collecting, storing, and routing customer event data to your data warehouse
- 고객 이벤트 데이터를 수집, 저장, 데이터 웨어하우스로 라우팅 하는 오픈 소스
RudderStack Architecture
- database에만 의존하는 독립적인 시스템
- 주요 구성 요소 : Control Plane, Data Plane
- Control Plane : 이벤트 데이터의 소스 및 목적지를 구성하는 UI(Tracking Event의 정보를 보여준다.)
- Web App : 데이터 라우팅을 설정할 수 있는 프런트 엔드 응용 프로그램
- Configuration Backend : 이벤트 데이터 소스, 목적지 및 연결을 구성하는 옵션을 제공
- Data Plane : 핵심 엔진(Event 처리)
- 이벤트 데이터 수신 및 버퍼링
- 요구되는 목적지의 형식으로 변환
- 목적지로 전송
+) Transformation(변환 모듈) : 수신된 이벤트 데이터를 목적지의 특정 형식으로 알맞게 변환한다.
RudderStack's Data Plane Architecture
- 변환된 이벤트 데이터를 수신, 변환, 목적지에서 요구되는 특정 형식으로 라우팅한다.
- web apps, Android/iOS devices에서 이벤트 데이터를 수신한다.
- RudderStack Backend의 구성 요소
- Gateway : 변환할 이벤트 데이터를 수신하고 전달한다.
- 이벤트 요청을 승인하고 이벤트 데이터의 승인(HTTP 200 응답) 또는 거부에 따라 소스에 다시 승인을 보낸다.
- 이벤트 데이터가 거절되는 경우 : Invalid JSON, Invalid write key, Improper Request size
- 데이터의 수신이 성공하면 이벤트는 변환을 위해 전달된다.
- 성공적인 수신 확인을 보내기 전에 수신된 모든 이벤트 데이터를 PostgreSQL에 임시로 저장한다.
- 이벤트 데이터가 변환되어 목적지로 전송되면, Processor에 의해 데이터베이스에 저장된 데이터가 삭제된다.
- Processor : Gateway에서 데이터를 가져와서 변환 모듈로 전달한다.
- 이벤트 데이터가 변환되면, 변환된 데이터를 요구되는 목적지로 보낼 수 있도록 Router로 전달한다.
- Router : Processor에서 수신한 처리하고 변환된 이벤트 데이터를 원하는 목적지(분석기/저장소)로 보낸다.
+) Transformation Module : Processor에서 이벤트 데이터를 가져와서 요구되는 목적지의 형식으로 이벤트 데이터를 변환한다. 그리고 변환된 이벤트 데이터를 Processor로 다시 전송하여, Router와 원하는 목적지로 전달할 수 있도록 한다.
The Backend Workflow 정리
- Client SDK는 이벤트를 Gateway로 보낸다.
- Gateway :
- 데이터베이스에 이벤트 데이터를 저장한다.(PostgreSQL)
- 데이터 수신을 확인하는 HTTP 200 상태를 보낸다.
- Processor는 Gateway에서 데이터를 선택하고 이벤트 데이터를 변환 모듈로 전달한다.
- 변환 모듈을 변환된 데이터를 Processor로 다시 보낸다.
- Processor는 변환된 데이터를 Router 데이터베이스에 저장하고 Gateway 데이터베이스에서 삭제한다.
- Router :
- 변환된 이벤트 데이터를 원하는 목적지로 전달
- 데이터베이스의 별도 테이블에 정보를 저장한다.
- 변환된 데이터가 목적지에 도달하면, Router 데이터베이스에서 이벤트 데이터가 삭제된다.
참고 사이트 : https://docs.rudderstack.com/
참고 용어
1. 라우터(router) : 패킷(데이터의 형식화된 블록으로 제어 정보와 사용자 데이터, 목적지 주소 등을 포함)의 위치를 추출하여, 그 위치에 대한 최적의 경로를 지정하며, 이 경로를 따라 데이터 패킷을 다음 장치로 전향시키는 장치로 서로 다른 네트워크 간에 중계 역할을 한다.
- 네트워크와 네트워크 간 데이터 전송을 위해 최적 경로를 설정해주며 데이터를 해당 경로를 따라 한 통신망에서 다른 통신망으로 통신할 수 있도록 도와주는 인터넷 접속 장비
2. 데이터 웨어하우스(data warehouse, DW) : 사용자의 의사 결정에 도움 주기 위하여, 기간 시스템의 데이터베이스에 축적된 데이터를 공통의 형식으로 변환해서 관리하는 데이터베이스
* 혹시 잘못된 내용이 있을 경우 편하게 알려주세요!(저도 완전 초보자입니다.)
'SM공부' 카테고리의 다른 글
API 정리 - RESTful API, GraphQL (0) | 2020.09.04 |
---|---|
HTTP 프로토콜 및 상태 코드 정리 (0) | 2020.09.04 |
VPN(Virtual Private Network)이란? (0) | 2020.07.15 |
비전공자의 CS 공부, SM 프로젝트 공부 목록 (0) | 2020.06.19 |
스크럼(Scrum) 공부 및 정리 (0) | 2020.06.10 |