-
[빅데이터 플랫폼]Lambda & Kappa Architecture개발 2021. 7. 28. 21:00
Intro
대용량 빅데이터를 스크래핑 하고, 그를 정제 및 저장할 빅데이터 분석 플랫폼을 설계 및 구축해야 하는 과제가 있었습니다.
그러나 스크래핑 될 데이터의 형태, 볼륨, 종류 등이 정해지지 않은 상태에서 아키텍처를 구상하기에는 한계가 있습니다. 특히 이전 프로젝트의 아키텍처(MSA)를 참고하기에는 새로 시작하려는 플랫폼의 목적이 달랐다는 것이 큰 문제였습니다.
구축하려는 시스템의 요구 사항이 명확하지 않은 상태에서 기술 스택을 정하는 것은 사실 불가능한 일이죠.
따라서 이후 정해질 요구 사항에 맞추어 빠른 의사 결정을 내리기 위해서는 최대한 다양한 상황을 가정하고 꼼꼼하게 기술들을 리서치한 후, 장점과 단점을 각각 비교 하여 문서화 해 둘 필요가 있습니다.
트렌디한 기술도 좋지만, 실제 프로덕션 환경에서 쓰이고 있으면서 오랫동안 검증 되어 바로 사용할 수 있는 기술 / 혹은 개념이면 좋겠습니다. 또한 사내에 빅데이터 인프라를 구축해 본 경험자들이 없기 때문에 그만 큼 기술 생태계가 넓을 수록 좋습니다.
그 첫번째는 Lambda & Kappa 아키텍처 입니다
Lambda 와 Kappa 는 개념적인 아키텍처입니다.
Lambda Architecture
In Lambda architecture we have both stream processing layer and batch processing layer, where stream layer is used to compute the real-time data and batch layer stores the raw data as it arrives and computes it after some interval of time i.e it is not continuous like stream processing.
- Kafka(데이터 모으는 메시지큐)
- HDFS(하둡 파일 시스템)
- Apache Storm (Streaming Data 정제)
- Cassandra / Voldemort (NoSql, 정제 데이터 저장) 으로 구성한 Lambda Architecture System 예제
Kappa Architecture
- Lambda Architecture 에서 Batch Layer 가 빠진 것
- 주로 실시간 스트림 데이터 프로세싱에 초점을 맞춤
- Kafka 로 토픽을 모으고, Storm 이나 Spark Streaming 에서 실시간으로 데이터를 처리한 후 그 결과를 서빙 DB에 저장
'개발' 카테고리의 다른 글
Http 파라미터 방식과 멱등성 (0) 2021.10.28 @Transactional 태그 안에서 Exception Handling 시 유의 할 점 (0) 2021.08.27 [JPA] Entity를 통해서 변경한 데이터를 DB는 어떻게 알아먹을까? → 영속성 관리 (0) 2021.07.28 [Spring Security] Stateless 서버를 위한 JWT 인증 방식 (0) 2021.07.28 [메시지큐] Kafka, RabbitMQ 비교 및 쓰는 이유 (0) 2021.07.21